Ruby 如何使用RVM创建包含三个宝石的宝石集?

Ruby 如何使用RVM创建包含三个宝石的宝石集?,ruby,rubygems,rvm,Ruby,Rubygems,Rvm,我想玩三个类似的红宝石,叫做“yahoofinance”、“yahoo finance”和“yahoo_stock”。我对每个创业板如何与雅虎金融合作很感兴趣。所以我从创建rvm gemset开始 [sandbox]$ rvm gemset create finance 'finance' gemset created (/Users/milktrader/.rvm/gems/ruby-1.9.2-p0@finance). 然后我就用它, [sandbox]$ rvm gemset use f

我想玩三个类似的红宝石,叫做“yahoofinance”、“yahoo finance”和“yahoo_stock”。我对每个创业板如何与雅虎金融合作很感兴趣。所以我从创建rvm gemset开始

[sandbox]$ rvm gemset create finance
'finance' gemset created (/Users/milktrader/.rvm/gems/ruby-1.9.2-p0@finance).
然后我就用它,

[sandbox]$ rvm gemset use finance
Now using gemset 'finance'
然后我把它贴在红宝石上

[sandbox]$ rvm 1.9.2-head@finance
然后我安装了上面的三颗宝石

[sandbox]$ gem install yahoo-finance yahoofinance yahoo_stock
Successfully installed yahoo-finance-0.0.2
Successfully installed yahoofinance-1.2.2
Successfully installed yahoo_stock-1.0.2
3 gems installed
.
.
.
Installing RDoc documentation for yahoo_stock-1.0.2...
现在我错误地假设我可以在irb会话中要求所有三个gem。其中只有一个返回true

ruby-1.9.2-head > require 'yahoofinance'
=> true 
而另外两个抛出错误

ruby-1.9.2-head > require 'yahoo-finance'
LoadError: no such file to load -- yahoo-finance

ruby-1.9.2-head > require 'yahoo_stock'  
SyntaxError: ...
gems或我的安装有问题吗

注意:我对rvm gemset use命令不太清楚,上面可能没有正确使用它

[sandbox]$ gem list

*** LOCAL GEMS ***

bundler (1.0.7)
rake (0.8.7)
yahoo-finance (0.0.2)
yahoo_stock (1.0.2) 
yahoofinance (1.2.2)

我最初犯的错误与您相同,因此这不是环境问题

yahoo-finance
的问题是,它必须作为
yahoo\u-finance
来使用


yahoo_stock的问题是语法错误,表明文件正在加载,但解释不正确。在检查之后,我们看到Ruby 1.9.1的
history.rb
中的这个语法错误在1.0.5版本中得到了修复,但中的版本是1.0.2。原来gem的所有者现在调用gem,所以运行
gem install nas-yahoo_stock
应该可以解决这个问题。

这个gems集中
gem list
的输出是什么?@Matchu,我把它放到上面的问题中。非常有启发性。这解决了另一个谜团,因为我以前可以要求“yahoo_finance”,但这仅仅是因为我输入了“yahoo_finance”,这恰好不是一个打字错误。我想我需要联系这些gem维护人员并提醒他们这些问题。非常感谢。@Milktrader:很高兴为您提供帮助:)就联系方式而言,我非常确定
yahoo finance
命名约定不是一个错误,即使这是出乎意料的。gem名称中的破折号和Ruby文件中的下划线是一种相当常见的约定,即使我不确定自己是否完全同意。对于
yahoo_stock
,我不确定他是否会更改任何内容,因为更改名称是有意的,但他仍然需要支持对
yahoo_stock
的旧引用,不过如果他能在页面上添加一个弃用通知就好了。不管怎样,试一试:)