web-dev-qa-db-ja.com

初期化されていない定数Rake :: DSL in Ruby Gem

私はgem( https://github.com/ivanoats/whm_xml_api_Ruby のwhm_xml)を更新してRuby 1.9.2、latest rubygems、最新のバンドル、最新のrdoc、最新のrake。1.8.7では正常に動作しますが、1.9.2でのみ「初期化されていない定数Rake :: DSL」エラーが発生しました。 StackOverflowでたくさん読んだのですが、まだ行き詰まっています。

ivan:~/Development/Ruby/whm_xml_api_Ruby [git:master+]  → bundle exec rake -T
(in /Users/ivan/Development/Ruby/whm_xml_api_Ruby)
rake aborted!
uninitialized constant Rake::DSL
/Users/ivan/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/1.9.1/rake.rb:2482:in `const_missing'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module:Rake>'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (required)>'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in `require'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in `<top (required)>'
/Users/ivan/Development/Ruby/whm_xml_api_Ruby/Rakefile:3:in `require'
/Users/ivan/Development/Ruby/whm_xml_api_Ruby/Rakefile:3:in `<top (required)>'
/Users/ivan/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/1.9.1/rake.rb:2373:in `load'
/Users/ivan/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/Users/ivan/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/Users/ivan/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/1.9.1/rake.rb:2058:in    `standard_exception_handling'
/Users/ivan/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/Users/ivan/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/1.9.1/rake.rb:1991:in `run'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/gems/rake-0.9.2/bin/rake:32:in `<top (required)>'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/bin/rake:19:in `load'
/Users/ivan/.rvm/gems/Ruby-1.9.2-p180/bin/rake:19:in `<main>'
33
Ivan

これSO質問 が役立つかもしれません。追加する提案がありますrequire 'rake/dsl_definition'上記require 'rake'Rakefileに入れます。

55
Caley Woods

これは、rake 0.9.0リリースで起こったことだと思います。これをGemfileに入れてみてください:gem 'rake', '0.8.7'

更新

追加してみてください

include Rake::DSL if defined?(Rake::DSL)

あなたのアプリに;それは私のRailsアプリで一度に機能しました。

3
Abe Voelker

Include Rake :: DSLなどをだまして、他のエラーが発生しました。

追加

宝石「レーキ」、「0.8.7」

gemfileは私のために働くようです

3
Bob Gustafson

0.9.1でも同じ問題があり、0.9.2をインストールして動作しましたが、db:migrateコマンドがメッセージを送信しました警告:Rake DSLメソッドへのグローバルアクセスは廃止されました。お願い... rakeファイルモジュールに追加することで解決しました:: yourappname class Application include Rake :: DSL end end and require 'rake/dsl_definition' before .. LoadTask entry

1
Arrumaco