
Datamapper fails in Rails3 with jRuby
Reported by Juanma Cervera | March 31st, 2010 @ 05:48 AM | in 1.0.0
The edge version of Datamapper fails with Rails3 and jRuby.
After the update of the gems of Gemfile with jruby -S bundle install, I get this error:
jmcervera@jmcervera-laptop:~/code/aaaGTF$ jruby script/rails server
/home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:11: wrong # of arguments(0 for 1) (ArgumentError)
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `each'
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `map'
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:96:in `require'
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:96
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:1:in `require'
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:1
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:5:in `require'
from /home/jmcervera/code/aaaGTF/config/application.rb:5
from /home/jmcervera/code/aaaGTF/config/application.rb:39:in `require'
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:39
from /home/jmcervera/.bundle/jruby/1.8/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:10:in `require'
from script/rails:10
Comments and changes to this ticket
-
Martin Gamsjaeger (snusnu) March 31st, 2010 @ 10:37 AM
- Milestone set to 1.0.0
- State changed from new to unconfirmed
- Assigned user set to Martin Gamsjaeger (snusnu)
-
Juanma Cervera April 1st, 2010 @ 05:00 AM
I don know if this is important but I am getting this warning when I do
jruby _S bundle installInstalling dm-core (0.10.3) from git://github.com/datamapper/dm-core.git (at master)
dm-core at /home/jmcervera/.bundle/jruby/1.8/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
["lib/dm-core/transaction.rb", "spec/public/transaction_spec.rb"] are not filesJuanma
-
Martin Gamsjaeger (snusnu) April 1st, 2010 @ 07:51 AM
Juanma,
I don't have any ideas yet what's causing your errors, but I'm pretty sure they weren't related to the fact that dm-core's gemspec was out of sync. I pushed a fix for that to dm-core but I doubt that it'll change things for you. I will try to dig at the root of your problem but any additional hints you can give me (maybe a standalone script to reproduce the error?) would really help me
-
Juanma Cervera April 3rd, 2010 @ 10:39 AM
Martin
I'm sorry for being so late at responding.
I have just update to rails3-beta2 and try to use your template for generation of new app and I am getting the same errors.You can see the console log here
https://gist.github.com/e266f14c5c3930992c2bI will try to use the gemset feature of rvm and try to use a new fresh environment for the tests.
It might be something weird and messy with my installed gems. -
Juanma Cervera April 7th, 2010 @ 02:56 AM
There is no way to have jruby, rails3 and datamapper working for me.
I am using rvm to manage my ruby installation and I have try using new and blank gemsets for installing again all the gems, and even reinstalle completely the jruby environment. And I am having the same error.
Even when I generate a new app from scratch with your template.jruby -S rails dm_rails3_app -m http://github.com/snusnu/rails-templates/raw/master/dm_rails_master.rb create create README create .gitignore create Rakefile create config.ru create Gemfile create app create app/helpers/application_helper.rb create app/controllers/application_controller.rb create app/views/layouts create app/models create config create config/routes.rb create config/application.rb create config/environment.rb create config/environments create config/environments/test.rb create config/environments/development.rb create config/environments/production.rb create config/initializers create config/initializers/cookie_verification_secret.rb create config/initializers/mime_types.rb create config/initializers/backtrace_silencers.rb create config/initializers/inflections.rb create config/initializers/session_store.rb create config/locales create config/locales/en.yml create config/boot.rb create config/database.yml create db create db/seeds.rb create doc create doc/README_FOR_APP create lib create lib/tasks create lib/tasks/.gitkeep create log create log/server.log create log/production.log create log/development.log create log/test.log create public create public/robots.txt create public/favicon.ico create public/index.html create public/422.html create public/404.html create public/500.html create public/images create public/images/rails.png create public/stylesheets create public/stylesheets/.gitkeep create public/javascripts create public/javascripts/application.js create public/javascripts/prototype.js create public/javascripts/dragdrop.js create public/javascripts/effects.js create public/javascripts/rails.js create public/javascripts/controls.js create script create script/rails create test create test/test_helper.rb create test/performance/browsing_test.rb create test/fixtures create test/functional create test/integration create test/unit create tmp create tmp/sessions create tmp/sockets create tmp/cache create tmp/pids create vendor/plugins create vendor/plugins/.gitkeep apply http://github.com/snusnu/rails-templates/raw/master/dm_rails_master.rb apply http://github.com/snusnu/rails-templates/raw/master/rails_master_gemfile.rb remove Gemfile create Gemfile apply http://github.com/snusnu/rails-templates/raw/master/rails_application.rb apply http://github.com/snusnu/rails-templates/raw/master/rails_application_config.rb gsub config/application.rb gsub config/environments/development.rb gsub config/environments/test.rb apply http://github.com/snusnu/rails-templates/raw/master/database.yml.rb remove config/database.yml create config/database.yml run bundle install from "." initializer jruby_monkey_patch.rb run rails generate rspec:install from "." /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:11: wrong # of arguments(0 for 1) (ArgumentError) from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `each' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `map' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:96:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:96 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:1:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:1 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:5:in `require' from /home/jmcervera/code/dm_rails3_app/config/application.rb:5 from /home/jmcervera/code/dm_rails3_app/config/application.rb:2:in `require' from /home/jmcervera/code/dm_rails3_app/config/environment.rb:2 from /home/jmcervera/code/dm_rails3_app/config/environment.rb:29:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:29 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:9:in `require' from script/rails:9 run rails generate scaffold Person name:string from "." /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:11: wrong # of arguments(0 for 1) (ArgumentError) from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `each' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `map' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:96:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:96 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:1:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:1 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:5:in `require' from /home/jmcervera/code/dm_rails3_app/config/application.rb:5 from /home/jmcervera/code/dm_rails3_app/config/application.rb:2:in `require' from /home/jmcervera/code/dm_rails3_app/config/environment.rb:2 from /home/jmcervera/code/dm_rails3_app/config/environment.rb:29:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:29 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:9:in `require' from script/rails:9 apply http://github.com/snusnu/rails-templates/raw/master/spec_helper.rb remove spec/spec_helper.rb create spec/spec_helper.rb run rake spec --trace from "." rake aborted! wrong # of arguments(0 for 1) /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:11 /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `each' /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `map' /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5 /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:96:in `require' /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:96 /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:1:in `require' /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:1 /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:5:in `require' /home/jmcervera/code/dm_rails3_app/config/application.rb:5 /home/jmcervera/code/dm_rails3_app/config/application.rb:31:in `require' /home/jmcervera/.rvm/rubies/jruby-1.4.0/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' /home/jmcervera/code/dm_rails3_app/Rakefile:4 /home/jmcervera/code/dm_rails3_app/Rakefile:2383:in `load' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/lib/rake.rb:2000:in `run' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/lib/rake.rb:1998:in `run' /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/bin/rake:31 /home/jmcervera/.rvm/gems/jruby-1.4.0/gems/rake-0.8.7/bin/rake:19:in `load' /home/jmcervera/.rvm/rubies/jruby-1.4.0/bin/rake:19 -------------------------------------------------------------------------- After the sever booted, point your browser at http://localhost:3000/people -------------------------------------------------------------------------- run rails server from "." data/home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:11: wrong # of arguments(0 for 1) (ArgumentError) from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `each' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5:in `map' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:5 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core/associations/one_to_one.rb:96:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:96 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-core-37b4bd22b9e3842977cf83d32baba459607e900a-master/lib/dm-core.rb:1:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:1 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/dm-rails-6d789ab541218bf52f1038ecd3856026704f4c3b-master/lib/dm-rails/railtie.rb:5:in `require' from /home/jmcervera/code/dm_rails3_app/config/application.rb:5 from /home/jmcervera/code/dm_rails3_app/config/application.rb:39:in `require' from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:39 from /home/jmcervera/.rvm/gems/jruby-1.4.0/bundler/gems/rails-16a5e918a06649ffac24fd5873b875daf66212ad-master/railties/lib/rails/commands.rb:9:in `require' from script/rails:9
-
Dan Kubb (dkubb) April 7th, 2010 @ 01:24 PM
- State changed from unconfirmed to confirmed
- Assigned user changed from Martin Gamsjaeger (snusnu) to Dan Kubb (dkubb)
It looks like in this specific case, Module#undef_method works differently in MRI as compared with JRuby. In MRI it accepts an Array with 0 or more method names, while in JRuby it accepts only a single method name.
Since the documented API is to accept only a single method, I am going to change DM to match. I will update this ticket when the commit is ready.
-
Dan Kubb (dkubb) April 7th, 2010 @ 02:25 PM
- State changed from confirmed to resolved
(from [7552a8b2d3ab25e5d7b7e7e4a57f8f7a984e4b53]) Fixed invalid usage of Module#undef_method
- In MRI Module#undef_method accepts 0 or more method names, and removes them all. In JRuby it accepts only 1 method name. The documentation shows that only 1 method name should be provided, so JRuby matches the docs, while MRI has a much looser contract.
DM was using the MRI API, but this has been changed to match the documented behaviour, and should work in JRuby.
[#1229 state:resolved] http://github.com/datamapper/dm-core/commit/7552a8b2d3ab25e5d7b7e7e...
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
People watching this ticket
Referenced by
-
1229 Datamapper fails in Rails3 with jRuby [#1229 state:resolved] http://github.com/datamapper/dm-c...