Guard Giving "uninitialized constant Listen :: Turnstile (NameError)" Error

I had this error while trying to execute a command:

guard 

This is an application that I have been developing for some time before trying to establish protection ...

I follow the instructions from the guide of Ryan Bates:

http://railscasts.com/episodes/264-guard

Here is my gem file.

 source 'https://rubygems.org' gem 'rails', '3.2.14' gem 'rake' gem 'mysql2' gem 'bcrypt-ruby' gem 'devise' gem 'rails_admin' gem 'jbuilder' gem 'gon' gem 'dynamic_form' gem 'therubyracer', :require => 'v8' gem 'jquery-rails' gem 'jquery-ui-rails' gem 'rails3-jquery-autocomplete' gem 'roo' group :assets do gem 'sass-rails', '~> 3.2.4' gem 'coffee-script', '~> 2.2.0' gem 'uglifier', '~> 1.2.3' end group :development, :test do gem 'capistrano' gem 'bullet' gem 'rvm-capistrano' gem 'better_errors' gem 'rspec-rails', '2.10.0' gem 'awesome_print' gem 'wirble' gem 'thin' gem 'guard-rspec' gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i end group :test do gem 'capybara', '1.1.2' gem 'faker' gem 'factory_girl_rails' gem 'spork', '~> 1.0rc' end 

Here's the complete error:

 app3 git:(write-tests) ✗ guard /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard.rb:47:in `setup': uninitialized constant Listen::Turnstile (NameError) from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard.rb:155:in `start' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard/cli.rb:104:in `start' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor/command.rb:27:in `run' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor/invocation.rb:120:in `invoke_command' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor.rb:363:in `dispatch' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor/base.rb:439:in `start' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/bin/guard:6:in `<top (required)>' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/guard:23:in `load' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/guard:23:in `<main>' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `eval' from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `<main>' 
+8
ruby-on-rails-3 guard
source share
2 answers

I had a similar problem with my rail 3.2.13.

The confusing part was that I did not have a gem 'guard' in my Gemfile, but the stone was clearly dependent on the following:

 gem 'guard-rspec' gem 'guard-livereload' gem 'guard-cucumber' 

everything worked until the recent bundle update , which resulted in a much newer version of listen , one of the dependencies of guard , and guard itself was restrained (not sure why). So you noticed a guard error trying to call a class that no longer exists in listen .

The problem was resolved by explicitly adding the current version of guard to the Gemfile :

 gem 'guard', '>=2.1.0' 

and, of course, repackaging.

+9
source share

You do not have a gem "guard" in your gem file.

I was getting the same error.

One of the plugins that I turned on, the guard, blocked the protection version at 1.4.0, and the latest version of protection was 2.0.5. Removing this plugin fixed the error. Remember to remove the security package code from the security file.

I assume that your protective stone is set as a system pearl. Put it in your gem file and run it with bundle exec .

There is also a dependency conflict between guard and better_errors on the encoder. I tied it to 1.0.5 to install both of them. I have not tested any coderay related functionality to see if this problem causes problems for more advanced ones.

gem 'coderay', '~> 1.0.5'

+13
source share

All Articles