uninitialized constant Rake::DSL in Ruby Gem

20,762

Solution 1

This SO Question might help you out. The suggestion there is to add require 'rake/dsl_definition' above require 'rake' in your Rakefile.

Solution 2

I think this is something that happened with the rake 0.9.0 release. Try putting this in your Gemfile: gem 'rake', '0.8.7'

Update

You could try adding

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

to your app; it worked for my Rails app at one point.

Solution 3

I fooled around with the include Rake::DSL, etc and just got other errors.

adding

gem 'rake', '0.8.7'

to the Gemfile seems to work for me

Solution 4

I had the same problem with 0.9.1, installed the 0.9.2 and it worked but the db:migrate command sent a message WARNING: Global access to Rake DSL methods is deprecated. Please.... it got solved adding to the rake file module ::yourappname class Application include Rake::DSL end end and require 'rake/dsl_definition' before the .. LoadTask entry

Share:
20,762
Ivan
Author by

Ivan

Web (JavaScript, Ruby on Rails) programmer and teacher for Code Fellows, and University of Washington in Seattle Host your static site with us at http://aerobatic.com . See http://ivanstorck.com for more info about me.

Updated on June 30, 2020

Comments

  • Ivan
    Ivan almost 4 years

    I have been working on updating my gem (whm_xml at https://github.com/ivanoats/whm_xml_api_ruby ) to make it work with ruby 1.9.2, latest rubygems, latest bundler, latest rdoc, latest rake. It works fine in 1.8.7 but has the "uninitialized constant Rake::DSL" error only in 1.9.2 . I thought that rake 0.9.2 fixed that but maybe not? I have read a lot on StackOverflow but am still stuck. Any ideas on where to look?

    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>'