Rake abort error - ruby-on-rails

OK, so I'm doing the following Ruby tutorial: https://github.com/alexch/learn_ruby
and I have saved all the files under c:/learn_ruby
When I run rake in the directory: "00_hello" I get the following error:
c:\learn_ruby\00_hello>rake
(in c:/learn_ruby)
rake aborted!
Could not find 'rspec' (~> 2) - did find: [rspec-3.0.0]
Checked in 'GEM_PATH=C:/Users/******/.gem/ruby/1.9.1;C:/Ruby193/lib/ruby/gems/1
.9.1', execute `gem env` for more information
my current gem list is:
bigdecimal (1.1.0)
diff-lcs (1.2.5)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)
rspec (3.0.0)
rspec-core (3.0.2)
rspec-expectations (3.0.2)
rspec-mocks (3.0.2)
rspec-support (3.0.2)
rubygems-update (2.3.0)
I am new at Ruby, so can someone please help a noob out? I tried installing rspec 2.0.0, but got a different error.

The error message
Could not find 'rspec' (~> 2)
means that it is looking for rspec in the 2.x range. Usually this means you have a Gemfile which specifies gem 'rspec', '~> 2'. The ~> ties it to the same version "family"; see the bundler docs for more information.
Usually the solution is to type
bundle install
which will make sure your prerequisites are met.

Related

ruby on the rails rake aborted invalid_date

I am trying to run the Rails app 'Simpsons by the Data' (source: https://github.com/toddwschneider/flim-springfield) however whenever I try to run the command bundle exec rake import_data
the following error is returned:
Called from /Users/XXXX/.rvm/gems/ruby-2.3.8/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:240:in 'load_dependency'
rake aborted!
ArgumentError: invalid date
/Users/XXXX/flim-springfield/app/models/episode.rb:52:in 'parse'
I have PostgreSQL 11.1 on MacOS X installed and I have changed the date style from ISO, MDY to ISO DMY as I stupidly thought this would help but it didn't work.
This is my Gem file:
*** LOCAL GEMS ***
bigdecimal (default: 1.3.0)
bundler (2.0.1, default: 1.17.3)
bundler-unload (1.0.2)
did_you_mean (1.1.0)
executable-hooks (1.6.0)
gem-wrappers (1.4.0)
io-console (default: 0.4.6)
json (default: 2.0.2)
minitest (5.10.1)
net-telnet (0.1.1)
openssl (default: 2.0.2)
pg (1.1.4)
power_assert (0.4.1)
psych (default: 2.2.2)
rake (12.3.2, 12.3.1, 12.0.0)
rdoc (default: 5.0.0)
rubygems-bundler (1.4.5)
rvm (1.11.3.9)
test-unit (3.2.3)
xmlrpc (0.2.1)
Has anyone else run into a problem like this while using this Rails app or could even point me in the right direction? I am completely new to this and as this is the first Rails app that I have ever run, I am not sure how to progress. :(
Any help would be really appreciated!

ERROR: 'rake/rdoctask' is obsolete and no longer supported

Out of the blue, I started getting the following error message:
(in /Users/me/.rvm/gems/ruby-1.9.3-p125#mysql2/gems/rails-0.9.5)
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/Users/me/.rvm/gems/ruby-1.9.3-p125#mysql2/gems/rails-0.9.5/Rakefile:3:in `<top (required)>'
When I do rails s (in my development environment terminal - Mac Mountain Lion). This application is in production, so I went to the production environment, did a bundle show, and modified my Gemfile, to harcode the gems versions.
Here's what I have now on my my local development environment (what's producing the error message).
actionmailer (3.2.3)
actionpack (3.2.3)
activemodel (3.2.3)
activerecord (3.2.3)
activeresource (3.2.3)
activesupport (3.2.3)
annotate (2.4.1.beta1)
arel (3.0.2)
bcrypt-ruby (3.0.1)
bootstrap-datepicker-rails (0.6.15)
bootstrap-sass (2.0.2)
builder (3.0.4)
bundler (1.1.3)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.6.1)
commonjs (0.2.6)
devise (2.0.4)
diff-lcs (1.1.3)
erubis (2.7.0)
execjs (1.4.0)
factory_girl (3.2.0)
factory_girl_rails (3.2.0)
hike (1.2.1)
i18n (0.6.4)
journey (1.0.4)
jquery-rails (2.0.2)
json (1.7.1)
less (2.2.2)
less-rails (2.2.6)
libv8 (3.3.10.4)
mail (2.4.4)
mime-types (1.21)
multi_json (1.6.1)
mysql2 (0.3.11)
nokogiri (1.5.6)
orm_adapter (0.0.7)
polyglot (0.3.3)
rack (1.4.5)
rack-cache (1.2)
rack-ssl (1.3.3)
rack-test (0.6.2)
rails (3.2.3)
railties (3.2.3)
rake (10.0.3)
rdoc (3.4)
rest-client (1.6.7)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
rspec-rails (2.6.1)
sass (3.2.7)
sass-rails (3.2.5)
sprockets (2.1.3)
stripe (1.7.0)
therubyracer (0.10.1)
thor (0.14.6)
tilt (1.3.5)
tinymce-rails (3.4.8)
treetop (1.4.12)
twitter-bootstrap-rails (2.1.0)
tzinfo (0.3.37)
uglifier (1.2.4)
warden (1.1.1)
webrat (0.7.1)
I researched Stackoverflow and the web, and none of the suggestions worked (changing the rake gem version to something different. like 0.8.7, etc., editing my app Rakefile to suppress deprecation errors, etc.). I also added rdoc and in my Rakefile, I required 'rdoc/task'
Still, the same error.
Just to help anyone else who has had this hassle.
If you are like me, then your problem is that the current version of rails is 4 and you are wanting to use an older version like 3.0.7
If you install rails fresh to learn it ,say, and the tutorial you are using is for a 3.0.x version of rails OR your job requires the use of the older version of rails.. then you can get into this hole.
In my case I got a 3.0.7 rails project dumped on me and was told to learn rails and make some enhancements to this code.
so, I just started learning rails and was following the tutorial until I got this error when doing a 'rake db:migrate'
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'
This happened cos I was using an older version of rails.. in my case 3.0.7
If you run a 'bundle show', like I did then, you may see that you are using the rake version 10.0.0 or something like that...and you need to be running rake 0.9.2 ... which is where the problem is coming from..
The solution for me was to (a) add a gem to my gemfile and (b) to a bundle install
So, in my gemfile I added:
gem 'rake', '0.9.2'
Then did a
'bundle install'
Got this message:
You have requested:
rake = 0.9.2
The bundle currently has rake locked at 10.1.0.
Try running `bundle update rake`
And so I did that...
bundle update rake.
And that went fine.
then when I did the'rake db:migrate' it just worked.
Hope this helps somebody.
Vida.
PS: if you are new to rails, like me, and you inherit an older rails app then for gods sake NEVER run 'bundle update' or you will enter a world of pain. That command updates all your gems to the very latest versions and you end up with a load of problems with incompatibilities. The only way out of it is if you are lucky enough to have git installed and can do a 'git checkout' to go back...
I struck with this same problem when try to install gems by the command rake gems:install my rails version is rails2.3.2 and i have rvm installed.
my gem list is,
actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
bundler (1.3.5)
rails (2.3.2)
rake (10.0.4)
rubygems-bundler (1.1.1)
rvm (1.11.3.7)
so uninstalled the rake by the command
rvm use ruby-1.8.7-p371#global && gem uninstall rake -v 10.0.4
then i installed rake of older version
rvm use ruby-1.8.7-p371#global && gem install rake -v 0.8.7
now rake gems:install works fine
hope it may help some one!
Upgrading to rails 4.0.0 I got the same error.
rails -v
(in /Users/oma/.rvm/gems/ruby-2.0.0-p247/gems/rails-0.9.5)
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/Users/oma/.rvm/gems/ruby-2.0.0-p247/gems/rails-0.9.5/Rakefile:3:in `<top (required)>'
(See full trace by running task with --trace)
To upgrade, I removed the version number in Gemfile
source 'https://rubygems.org'
gem 'rails' # NO VERSION
and did bundle update as I thought this would pick the last. But somehow, I got rails 0.9.5. It feels like some practical joke, really, lol
$ gem list rails
rails (4.0.1.rc2, 4.0.0, 0.9.5)
I can't tell you with 100% certainty that this was the cause, but we were two people, working on the same branch and seeing the same error. The fix worked for both of us. Simply
specify rails version!
$gem uninstall rails -v 0.9.5
Gemfile
source 'https://rubygems.org'
gem 'rails', '4.0.0'
then bundle, run rails -v, giggle (or cry) and get back to producing
Take a look at similar problem solution on StackOverflow
Another option is to use (example taken from Redmine Rakefile)
require 'rdoc'
require 'rdoc/task'
Instead of
require 'rake/testtask'
require 'rake/rdoctask'
The following works for me using ruby 1.9.3p448 (2013-06-27 revision 41675):
1) Use rake version 10.1.0 (put following in your Gemfile):
gem 'rake', '10.1.0'
(Note you can likely use another version, but the line number below might change.)
2) Comment line 54 of your Rakefile and replace it as follows:
#require 'rake/rdoctask'
gem 'rdoc', ">= 2.4.2"
require 'rdoc/task'
3) Test
$ bundle install
$ bundle exec rake

Rolling back a gem

Ok, I changed my gem file
cucumber (1.0.6)
builder (>= 2.1.2)
diff-lcs (>= 1.1.2)
gherkin (~> 2.4.18)
json (>= 1.4.6)
term-ansicolor (>= 1.0.6)
cucumber-rails (1.0.6)
capybara (>= 1.1.1)
cucumber (>= 1.0.6)
nokogiri (>= 1.5.0)
But a web_steps.rb file doesn't appear? Do I need to run anything in the command line to get it to show up?
Gemfile:
cucumber (1.1.7)
builder (>= 2.1.2)
diff-lcs (>= 1.1.2)
gherkin (~> 2.8.0)
json (>= 1.4.6)
term-ansicolor (>= 1.0.6)
cucumber-rails (1.2.1)
capybara (>= 1.1.2)
cucumber (>= 1.1.3)
nokogiri (>= 1.5.0)
Thanks for the answers! But I am now getting the error?
You have requested:
cucumber = 1.0.6
The bundle currently has cucumber locked at 1.1.7.
Try running bundle update cucumber
You can install a specific version of a gem by using:
gem install <gem> -v=<version>
e.g.
gem install cucumber -v=1.1.4
Then you specify in your gemfile, that you want this specific version:
gem 'cucumber', '1.1.4'
This way your rails app should use the version you want.
Concerning your Gemfile.lock problem. Try using
bundle update
Or delete your Gemfile.lock (it will be rebuild automatically when you try to start your rails app).
Add to your Gemfile or chenge current entry to:
gem 'cucumber', '1.1.1'
where 1.1.1 is the cucumber version you want to use. Next run bundle.
Change it in your gem file. So assuming you want to use version 1.5, you would have
gem 'cucumber', '1.5'
The next thing would be to install the gem by running bundle install from the terminal
If this is because of the web_steps.rb file that got removed from cucumber, the you can add the following to your gemfile
gem "cucumber-rails-training-wheels", :group => :test
However make sure you read THIS

Rails: Help with rake aborted error!

I have been trying to run the rake db:migrate command but it ain't working. I uninstalled and installed the gem but no luck. I read somewhere the o.9 wasn't stable and that 0.8.7 was ok. I tried it but I got an error also..
For now the error is
Fayimora-Femi-Baloguns-MacBook-Pro:sample_app fayimora$ bundle exec rake db:migrate
/Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /usr/local in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /usr/local in PATH, mode 040777
(in /Users/fayimora/Sites/rails_projects/sample_app)
DEPRECATION WARNING: config.generators in Rails::Railtie is deprecated. Please use config.app_generators instead. (called from /Users/fayimora/Sites/rails_projects/sample_app/config/application.rb:12)
DEPRECATION WARNING: config.generators in Rails::Railtie is deprecated. Please use config.app_generators instead. (called from /Users/fayimora/Sites/rails_projects/sample_app/config/application.rb:12)
rake aborted!
undefined method `prerequisites' for nil:NilClass
/Users/fayimora/Sites/rails_projects/sample_app/Rakefile:7
(See full trace by running task with --trace)
My gem list is
Fayimora-Femi-Baloguns-MacBook-Pro:sample_app fayimora$ bundle
Using rake (0.8.7)
Using ZenTest (4.5.0)
Using multi_json (1.0.3)
Using activesupport (3.1.0.rc4)
Using bcrypt-ruby (2.1.4)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.0.rc4)
Using erubis (2.7.0)
Using rack (1.3.1)
Using rack-cache (1.0.2)
Using rack-mount (0.8.1)
Using rack-test (0.6.0)
Using hike (1.1.0)
Using tilt (1.3.2)
Using sprockets (2.0.0.beta.10)
Using tzinfo (0.3.29)
Using actionpack (3.1.0.rc4)
Using mime-types (1.16)
Using polyglot (0.3.1)
Using treetop (1.4.9)
Using mail (2.3.0)
Using actionmailer (3.1.0.rc4)
Using arel (2.1.3)
Using activerecord (3.1.0.rc4)
Using activeresource (3.1.0.rc4)
Using autotest (4.4.6)
Using sys-uname (0.8.5)
Using autotest-fsevent (0.2.4)
Using autotest-growl (0.2.9)
Using autotest-rails-pure (4.1.2)
Using bundler (1.0.15)
Using coffee-script-source (1.1.1)
Using execjs (1.2.0)
Using coffee-script (2.2.0)
Using diff-lcs (1.1.2)
Using rack-ssl (1.3.2)
Using rdoc (3.8)
Using thor (0.14.6)
Using railties (3.1.0.rc4)
Using jquery-rails (1.0.12)
Using json (1.5.3)
Using nokogiri (1.5.0)
Using rails (3.1.0.rc4)
Using rspec-core (2.0.0.beta.18)
Using rspec-expectations (2.0.0.beta.18)
Using rspec-mocks (2.0.0.beta.18)
Using rspec (2.0.0.beta.18)
Using webrat (0.7.3)
Using rspec-rails (2.0.0.beta.18)
Using sass (3.1.4)
Using sass-rails (3.1.0.rc.4)
Using spork (0.9.0.rc8)
Using sqlite3 (1.3.3)
Using uglifier (1.0.0)
Contents of Rakefile
#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
# require 'rake/dsl_definition'
require File.expand_path('../config/application', __FILE__)
SampleApp::Application.load_tasks
Please any help would be apprecible. Been having a real hard time learning rails.
The bug with Rake 0.9.2 is fixed. Try using Rake 0.9.2 by adding it to your Gemfile and run
bundle update rake.
I wouldn't use Rails 3.1 RCs besides experimenting or checking your gems for compatibility. Rails 3.0.9 is pretty stable and widely supported.
Edit: https://github.com/rails/rails/issues/1197
The problem is related to a gem not being compatible with Rails 3.1. Try to remove rspec from your Gemfile, bundle install, and run your rake tasks.

Rails: Can't run DB Rake on OS X 10.6 because gem SQL lite cannot be found

Here's my error message when I do a DB rake:
Could not find gem 'sqlite3 (>= 0)' in
any of the gem sources listed in your
Gemfile.
I've tried Installing xCode 4.0.2
Commands:
sudo gem install sqlite3-ruby
sudo gem update --system
sudo gem update rails
sudo gem update sqlite3-ruby
Gem list produces:
abstract (1.0.0)
actionmailer (3.0.8, 2.2.2)
actionpack (3.0.8, 2.2.2)
activemodel (3.0.8)
activerecord (3.0.8, 2.2.2)
activeresource (3.0.8, 2.2.2)
activesupport (3.0.8, 3.0.6, 2.2.2)
arel (2.0.10)
builder (2.1.2)
bundler (1.0.14)
erubis (2.6.6)
i18n (0.5.0)
mail (2.2.19)
mime-types (1.16)
polyglot (0.3.1)
rack (1.2.3)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.8, 2.2.2)
railties (3.0.8)
rake (0.9.2, 0.8.3)
rubygems-update (1.8.5, 1.8.4, 1.3.1)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.27)
Any suggestions? I'm on Max OS X 10.6
I think it will work if you add sqlite to your Gemfile:
gem 'sqlite3'
And run:
$ bundle update
I solved this by doing:
sudo gem i sqlite3
If you check the man via:
gem help commands
The "i" stands for install, sort of a short cut. Doing this after running the bundle update & all the core updates cased Ruby's rake to work.
Thanks for your help!

Resources