2012-10-23 40 views
0

我剛開始使用茉莉花。rails - jasmine - 「注意:不推薦使用Gem.available?,使用Specification :: find_by_name。」

安裝它後,我們現在在我們的測試套件得到這個:

NOTE: Gem.available? is deprecated, use Specification::find_by_name. 
It will be removed on or after 2011-11-01. 
Gem.available? called from /home/durrantm/.rvm/gems/[email protected]/ 
gems/jasmine-1.0.2.1/lib/jasmine/base.rb:64. 

我不知道該消息來自何方或什麼,我會改變來解決它,並刪除警告?

回答

1

看來您使用的Jasmine寶石的舊版本正在調用現在已棄用的.available?方法。茉莉花1.2.1是最新的穩定寶石版本。它也顯示你沒有使用Bundler,因此請確保使用命令rvm [email protected]切換到您當前用於項目的gemset(看起來像是dmstaffing),然後運行gem install jasmine -v '1.2.1'。我會建議使用Bundler而不是gemsets,因爲我覺得它更加動態和容易進行更改。如果您想使用bundler來管理您的依賴關係,請確保已安裝它,然後在您的項目目錄中創建一個Gemfile。如果你想抓住從rubygems.org你的寶石請確保您有:

source "http://rubygems.org" 

在你的Gemfile的頭,然後明確指定茉莉的最新版本的寶石要使用:

gem "jasmine", "~> 1.2.1" 

或採取從茉莉花源代碼當前穩定寶石:

gem "jasmine", :git => "git://github.com/pivotal/jasmine.git", :branch => "1.2.rc1" 

或如果你感覺勇敢的你總能搶的開發分支:

gem "jasmine", :git => "git://github.com/pivotal/jasmine.git", :branch => "master" 

然後運行bundle install。當前版本的Jasmine不再具有導致您的問題的代碼,因此不應再引發警告。總是指定你的寶石版本以避免以後的依賴性問題是一個好習慣。