Gvyntyk
Gvyntyk

Reputation: 565

ERROR - Could not load 'guard/rspec' or' ' find class Guard::Rspec

I'm learning RoR by The Ruby on Rails Tutorial (Michael Hartl).

Now I try to run tests with Guard.

My Gemfile:

source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.2'

group :development, :test do
  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails', '2.13.1'
  gem 'guard-rspec', '2.5.0'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
  gem 'libnotify', '0.8.0'
end

gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor', '0.0.2'
end

My Guard file:

require 'active_support/inflector'

guard 'rspec', all_after_pass: false do

  watch('config/routes.rb')
  # Custom Rails Tutorial specs
  watch(%r{^app/controllers/(.+)_(controller)\.rb$}) do |m|
    ["spec/routing/#{m[1]}_routing_spec.rb",
     "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb",
     "spec/acceptance/#{m[1]}_spec.rb",
     (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" :
                       "spec/requests/#{m[1].singularize}_pages_spec.rb")]
  end
  watch(%r{^app/views/(.+)/}) do |m|
    (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" :
                      "spec/requests/#{m[1].singularize}_pages_spec.rb")
  end
  watch(%r{^app/controllers/sessions_controller\.rb$}) do |m|
    "spec/requests/authentication_pages_spec.rb"
  end

end

And when I try to run: guard (or bundle exec guard) I got error:

gvyntyk@gvyntyk-r60:~/rails_projects/sample_app$ guard
14:31:28 - INFO - Guard here! It looks like your project has a Gemfile, yet you are running
> [#] `guard` outside of Bundler. If this is your intent, feel free to ignore this
> [#] message. Otherwise, consider using `bundle exec guard` to ensure your
> [#] dependencies are loaded correctly.
> [#] (You can run `guard` with --no-bundler-warning to get rid of this message.)
14:31:29 - ERROR - Could not load 'guard/rspec' or'    ' find class Guard::Rspec
14:31:29 - ERROR - Error is: cannot load such file -- guard/guard
14:31:29 - ERROR - /home/gvyntyk/.rvm/rubies/ruby-2.0.0-p598/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require'
> [#] /home/gvyntyk/.rvm/rubies/ruby-2.0.0-p598/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-rspec-2.5.0/lib/guard/rspec.rb:2:in `<top (required)>'
> [#] /home/gvyntyk/.rvm/rubies/ruby-2.0.0-p598/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `require'
> [#] /home/gvyntyk/.rvm/rubies/ruby-2.0.0-p598/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
> [#] /home/gvyntyk/.rvm/rubies/ruby-2.0.0-p598/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:144:in `require'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/plugin_util.rb:105:in `rescue in plugin_class'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/plugin_util.rb:97:in `plugin_class'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/plugin_util.rb:56:in `initialize_plugin'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/internals/plugins.rb:26:in `add'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/dsl.rb:185:in `block in guard'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/dsl.rb:182:in `each'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/dsl.rb:182:in `guard'
> [#] /home/gvyntyk/rails_projects/sample_app/Guardfile:3:in `evaluate'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/dsl.rb:377:in `instance_eval'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/dsl.rb:377:in `evaluate'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/guardfile/evaluator.rb:90:in `evaluate'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard.rb:134:in `_evaluate'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard.rb:49:in `setup'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/commander.rb:32:in `start'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/cli/environments/valid.rb:16:in `start_guard'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/cli.rb:113:in `start'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/aruba_adapter.rb:32:in `execute'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/lib/guard/aruba_adapter.rb:19:in `execute!'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/gems/guard-2.11.1/bin/guard:11:in `<top (required)>'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/bin/guard:23:in `load'
> [#] /home/gvyntyk/.rvm/gems/ruby-2.0.0-p598@railstutorial_rails_4_0/bin/guard:23:in `<main>'
14:31:29 - ERROR - Invalid Guardfile, original error is: 
> [#] 
> [#] Could not load class: "Rspec", 
> [#] backtrace: 
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/plugin_util.rb:57:in `initialize_plugin'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/internals/plugins.rb:26:in `add'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/dsl.rb:185:in `block in guard'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/dsl.rb:182:in `each'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/dsl.rb:182:in `guard'
> [#]   (dsl)> ./Guardfile:3:in `evaluate'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/dsl.rb:377:in `instance_eval'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/dsl.rb:377:in `evaluate'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/guardfile/evaluator.rb:90:in `evaluate'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard.rb:134:in `_evaluate'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard.rb:49:in `setup'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/commander.rb:32:in `start'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/cli/environments/valid.rb:16:in `start_guard'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/cli.rb:113:in `start'
> [#]   (dsl)> $GEM_PATH[0]/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
> [#]   (dsl)> $GEM_PATH[0]/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
> [#]   (dsl)> $GEM_PATH[0]/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
> [#]   (dsl)> $GEM_PATH[0]/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/aruba_adapter.rb:32:in `execute'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/lib/guard/aruba_adapter.rb:19:in `execute!'
> [#]   (dsl)> $GEM_PATH[0]/gems/guard-2.11.1/bin/guard:11:in `<top (required)>'
> [#]   (dsl)> $GEM_PATH[0]/bin/guard:23:in `load'
> [#]   (dsl)> $GEM_PATH[0]/bin/guard:23:in `<main>'

BTW:

gem list | grep guard
guard (2.11.1)
guard-compat (1.2.1)
guard-rspec (2.5.0)

What's wrong?

Upvotes: 15

Views: 5764

Answers (4)

Mino De Raj
Mino De Raj

Reputation: 311

You can update the following as mentioned by @Igor

$ cd <appfolder>

$ vim Gemfile

instead of

gem 'guard-rspec', '2.5.0'

replace on

gem 'guard-rspec', '4.6.0'

instead of

gem 'rspec-rails', '2.13.1'

replace on

gem 'rspec-rails', '3.3.2'

However you'll run into issues when you run rspec.

So update the following versions as well.

instead of

gem 'capybara', '2.1.0'

replace using

gem 'capybara', '~> 2.2'

Upvotes: 0

Igor Semin
Igor Semin

Reputation: 2496

This error spent a more hours, and i found true way

$ cd <appfolder>
$ vim Gemfile

instead of 
gem 'guard-rspec', '2.5.0'
replace on
gem 'guard-rspec', '4.6.0'


instead of 
gem 'rspec-rails', '2.13.1'
replace on
gem 'rspec-rails', '3.3.2'

And

$ bundle update
$ bundle exec guard init rspec

Guardfile will be correct.

Upvotes: 14

Andrew Yermoshin
Andrew Yermoshin

Reputation: 11

I also ran by m.Hartl and had such problem: after guard init rspec there were errors:

16:31:39 - ERROR - Could not load 'guard/rspec' or '~/.guard/templates/rspec' or find class Guard::Rspec
16:31:39 - ERROR - Error is: No such file or directory - /home/andrey/.guard/templates/rspec

As I'm a newbie I spent a lot of time resolving this problem. As I understand the problem was in incompatibility of rspec 2.13 and guard-rspec, which needs rspec 2.14 or later. So in the end I just made bundle update to update my gems. Don't know will it make me any problems in future, but now it works!)

Upvotes: 0

dotdotdotPaul
dotdotdotPaul

Reputation: 614

I was having the same problem and worked out, eventually, that some dependencies on versions in my gems was preventing my guard-rspec gem from being updated to the latest (4.5.0), while the core guard gem was updated to 2.12.5. Once I resolved the issue that was keeping my version of guard-rspec from advancing, everything suddenly worked just fine.

Try editing your Gemfile and remove all the fixed versions from it (don't remove the gem lines, just the version arguments), except for the Rails gem entry (keep that 4.0.2). Then run bundle update and see if that resolves your problem.

Upvotes: 3

Related Questions