如何从文件中将Ruby对象转换为JSON?

时间:2014-05-12 01:22:17

标签: ruby json github-linguist

我试图使用Linguist gem:https://github.com/github/linguist

我的代码是:

require 'linguist'

filePath = ARGV
langDetails = Linguist::FileBlob.new(filePath)
puts langDetails

输出:#<Linguist::FileBlob:0x007faf93b17200>

然而,当我puts langDetails.language时,我得到了

/Users/myuser/.rvm/gems/ruby-1.9.3-p545@linguist/gems/github-linguist-2.10.15/lib/linguist/file_blob.rb:39:in `stat': can't convert Array into String (TypeError)
  from /Users/myuser/.rvm/gems/ruby-1.9.3-p545@linguist/gems/github-linguist-2.10.15/lib/linguist/file_blob.rb:39:in `mode'
  from /Users/myuser/.rvm/gems/ruby-1.9.3-p545@linguist/gems/github-linguist-2.10.15/lib/linguist/blob_helper.rb:294:in `language'
  from ./linguist.rb:9:in `<main>'

我不完全确定我做错了什么。理想情况下,我希望将数据作为JSON对象返回。我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

看看来源。 FileBlog说File.stat(@path).mode.to_s(8)@path是一个数组。 filePath需要是路径字符串,但ARGV是一个数组。

也许你的意思是ARGV[0]