NameError: uninitialized constant Psych::Yecht with jruby 1.7.1

The Problem

When I use jruby 1.7.1 in my rails app and run

‘bundle exec rspec’

I get

‘NameError: uninitialized constant Psych::Yecht’

What I want

To run rspec under jruby 1.7.1.

What I’ve Tried

  • Adding gem “psych”, “~> 1.3.4” to my gem file
  • Installing libyaml using homebrew - ‘brew install libyaml’

More Details

  • rvm list gives:

    jruby-1.6.8 [ x86_64 ]
    => jruby-1.7.1 [ x86_64 ]

  • ruby-1.9.3-p327 [ x86_64 ]

Gemfile

source ‘https://rubygems.org

gem ‘rails’, ‘3.2.9’

gem “psych”, “~> 1.3.4”

platforms :ruby do
gem ‘mysql2’, ‘~> 0.3.11’
end

platforms :jruby do
gem ‘jruby-openssl’, ‘~> 0.7.7’
gem ‘activerecord-jdbcmysql-adapter’
gem “torquebox-server”, “2.1.2”
gem “torquebox”, “2.1.2”
gem “torquebox-configure”, “2.1.2”
end

group :development, :test do
gem ‘ffi-ncurses’, ‘~> 0.4.0’
gem ‘torquebox-capistrano-support’
gem ‘rvm-capistrano’
gem ‘capistrano’, ‘~> 2.13.5’
end

group :test do
gem “factory_girl”
gem “rspec-rails”, “~> 2.11.4”

gem “database_cleaner”

gem “shoulda-matchers”, “~> 1.4.1”
gem ‘spork’, ‘~> 1.0.0.rc’
gem “spork-rails”
end

group :assets do
gem ‘sass-rails’, ‘~> 3.2.3’
gem ‘coffee-rails’, ‘~> 3.2.1’

gem ‘therubyrhino’

gem ‘uglifier’, ‘>= 1.0.3’
end

gem ‘devise’, ‘~> 2.1.2’
gem ‘jquery-rails’, “~> 2.1.3”
gem ‘wistia-api’, “~> 0.1.6”
gem ‘simple_form’, ‘~> 2.0.4’
gem ‘pry’
gem ‘pry-rails’
gem ‘active_attr’, ‘~> 0.6.0’

gem ‘newrelic_rpm’

Terminal Output

jruby-1.7.1@AC-Video:dev $ bundle install
Fetching gem metadata from https://rubygems.org/
Fetching gem metadata from https://rubygems.org/
Using rake (0.9.4)
Using i18n (0.6.1)
Using multi_json (1.3.7)
Using activesupport (3.2.9)
Using builder (3.0.4)
Using activemodel (3.2.9)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.1)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.2.1)
Using actionpack (3.2.9)
Using mime-types (1.19)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.4.4)
Using actionmailer (3.2.9)
Using active_attr (0.6.0)
Using arel (3.0.2)
Using tzinfo (0.3.35)
Using activerecord (3.2.9)
Using activerecord-jdbc-adapter (1.2.2.1)
Using jdbc-mysql (5.1.13)
Using activerecord-jdbcmysql-adapter (1.2.2.1)
Using activeresource (3.2.9)
Using bcrypt-ruby (3.0.1)
Using blankslate (2.1.2.4)
Using bouncy-castle-java (1.5.0146.1)
Using highline (1.6.15)
Using net-ssh (2.6.1)
Using net-scp (1.0.4)
Using net-sftp (2.0.5)
Using net-ssh-gateway (1.1.0)
Using capistrano (2.13.5)
Using clj (0.0.5.6)
Using coderay (1.0.8)
Using coffee-script-source (1.4.0)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using json (1.7.5)
Using rdoc (3.12)
Using thor (0.16.0)
Using railties (3.2.9)
Using coffee-rails (3.2.2)
Using yamler (0.1.0)
Using configatron (2.9.1)
Using orm_adapter (0.4.0)
Using warden (1.2.1)
Using devise (2.1.2)
Using diff-lcs (1.1.3)
Using factory_girl (4.1.0)
Using factory_girl_rails (4.1.0)
Using ffi (1.1.5)
Using ffi-locale (1.0.1)
Using ffi-ncurses (0.4.0)
Using jquery-rails (2.1.3)
Using jruby-openssl (0.7.7)
Using method_source (0.8.1)
Using newrelic_rpm (3.5.3.25)
Using slop (3.3.3)
Using spoon (0.0.1)
Using pry (0.9.10)
Using pry-rails (0.2.2)
Using bundler (1.2.3)
Using rails (3.2.9)
Using rspec-core (2.11.1)
Using rspec-expectations (2.11.3)
Using rspec-mocks (2.11.3)
Using rspec (2.11.0)
Using rspec-rails (2.11.4)
Using rvm-capistrano (1.2.7)
Using sass (3.2.3)
Using sass-rails (3.2.5)
Using shoulda-matchers (1.4.1)
Using simple_form (2.0.4)
Using spork (1.0.0rc3)
Using spork-rails (3.2.0)
Using therubyrhino_jar (1.7.4)
Using therubyrhino (2.0.1)
Using torquebox-core (2.1.2)
Using torquebox-transactions (2.1.2)
Using torquebox-cache (2.1.2)
Using torquebox-configure (2.1.2)
Using torquebox-messaging (2.1.2)
Using torquebox-naming (2.1.2)
Using torquebox-rake-support (2.1.2)
Using torquebox-security (2.1.2)
Using torquebox-stomp (2.1.2)
Using torquebox-web (2.1.2)
Using torquebox (2.1.2)
Using torquebox-capistrano-support (2.1.2)
Using torquebox-server (2.1.2)
Using uglifier (1.3.0)
Installing wistia-api (0.1.6)
Your bundle is complete! Use bundle show [gemname] to see where a
bundled gem is installed.
jruby-1.7.1@AC-Video:dev $ be rspec
NameError: uninitialized constant Psych::Yecht
jruby-1.7.1@AC-Video:dev $ brew install libyaml
Error: libyaml-0.1.4 already installed
jruby-1.7.1@AC-Video:dev $ rspec
NameError: uninitialized constant Psych::Yecht

Hi John,

As you now know, because we sit next to each other, and for the benefit
of others on this list, the problem was caused by an issue in the
configatron gem that is not compatible with JRuby 1.7

See Fix for JRuby 1.7+ by mowat27 · Pull Request #3 · wistia/wistia-api · GitHub for more details

Many Thanks

Adrian