Hello All
I have come across a problem, documented in the links below, when
extending
Fowardable in an app I am porting to Rails 4.2.1.
Any class that extends Forwardable (which used to work) now gives this
error:
ArgumentError: wrong number of arguments calling instance_delegate
(2
for
1)
extended at
/Users/steve/.rvm/gems/jruby-1.7.13/gems/activemodel-4.2.1/lib/active_model/naming.rb:220
extend at org/jruby/RubyKernel.java:2200
The links have some suggestions which work in most cases. But I’m
surprised
there would be a conflict between those classes, both are in Rails core
right? Am I the only person seeing this?
committed 11:36PM - 24 Dec 14 UTC
From: https://github.com/cequel/cequel/issues/193
> So it sounds like ActiveSup… port 4.2 introduces an incompatible
> definition of instance_delegate that clobbers the same method as defined
> in Forwardable; is that correct? If so, this seems like a regression in
> ActiveSupport—Forwardable is, after all, part of the standard library,
> so Rails shouldn't make it impossible to use it.
Subclassing Module and using the delegate class method will effectively
get around this.
opened 09:29PM - 18 Nov 14 UTC
closed 03:45AM - 04 Feb 15 UTC
I receive the following error when trying to use cequel with Rails 4.2.0beta4:
… /usr/local/lib/ruby/2.1.0/forwardable.rb:132:in `instance_delegate': wrong number of arguments (2 for 1) (ArgumentError)
from /usr/local/bundle/gems/activemodel-4.2.0.beta4/lib/active_model/naming.rb:219:in`extended'
from /usr/local/bundle/gems/activemodel-4.2.0.beta4/lib/active_model/validations.rb:42:in `extend'
from /usr/local/bundle/gems/activemodel-4.2.0.beta4/lib/active_model/validations.rb:42:in`block in module:Validations'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/concern.rb:120:in `class_eval'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/concern.rb:120:in`append_features'
from /usr/local/bundle/gems/cequel-1.4.5/lib/cequel/record/validations.rb:27:in `include'
from /usr/local/bundle/gems/cequel-1.4.5/lib/cequel/record/validations.rb:27:in`block in module:Validations'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/concern.rb:120:in `class_eval'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/concern.rb:120:in`append_features'
from /usr/local/bundle/gems/cequel-1.4.5/lib/cequel/record.rb:92:in `include'
from /usr/local/bundle/gems/cequel-1.4.5/lib/cequel/record.rb:92:in`block in module:Record'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/concern.rb:120:in `class_eval'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/concern.rb:120:in`append_features'
from /usr/src/app/app/models/asset.rb:3:in `include'
from /usr/src/app/app/models/asset.rb:3:in`class:Asset'
from /usr/src/app/app/models/asset.rb:1:in `<top (required)>'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:452:in`load'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:452:in `block in load_file'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:642:in`new_constants_in'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:451:in `load_file'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:349:in`require_or_load'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:489:in `load_missing_constant'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:184:in`const_missing'
from /usr/src/app/spec/factories.rb:10:in `block in <top (required)>'
from /usr/local/bundle/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:in`instance_eval'
from /usr/local/bundle/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:in `run'
from /usr/local/bundle/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:7:in`define'
from /usr/src/app/spec/factories.rb:1:in `<top (required)>'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:246:in`load'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:246:in `block in load'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:237:in`load_dependency'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:246:in `load'
from /usr/local/bundle/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:16:in`block in find_definitions'
from /usr/local/bundle/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:15:in `each'
from /usr/local/bundle/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:15:in`find_definitions'
from /usr/local/bundle/gems/factory_girl_rails-4.5.0/lib/factory_girl_rails/railtie.rb:21:in `block in <class:Railtie>'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/lazy_load_hooks.rb:36:in`call'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/lazy_load_hooks.rb:45:in`block in run_load_hooks'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/lazy_load_hooks.rb:44:in `each'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/lazy_load_hooks.rb:44:in`run_load_hooks'
from /usr/local/bundle/gems/railties-4.2.0.beta4/lib/rails/application/finisher.rb:62:in `block in <module:Finisher>'
from /usr/local/bundle/gems/railties-4.2.0.beta4/lib/rails/initializable.rb:30:in`instance_exec'
from /usr/local/bundle/gems/railties-4.2.0.beta4/lib/rails/initializable.rb:30:in `run'
from /usr/local/bundle/gems/railties-4.2.0.beta4/lib/rails/initializable.rb:55:in`block in run_initializers'
from /usr/local/lib/ruby/2.1.0/tsort.rb:226:in `block in tsort_each'
from /usr/local/lib/ruby/2.1.0/tsort.rb:348:in`block (2 levels) in each_strongly_connected_component'
from /usr/local/lib/ruby/2.1.0/tsort.rb:427:in `each_strongly_connected_component_from'
from /usr/local/lib/ruby/2.1.0/tsort.rb:347:in`block in each_strongly_connected_component'
from /usr/local/lib/ruby/2.1.0/tsort.rb:345:in `each'
from /usr/local/lib/ruby/2.1.0/tsort.rb:345:in`call'
from /usr/local/lib/ruby/2.1.0/tsort.rb:345:in `each_strongly_connected_component'
from /usr/local/lib/ruby/2.1.0/tsort.rb:224:in`tsort_each'
from /usr/local/lib/ruby/2.1.0/tsort.rb:205:in `tsort_each'
from /usr/local/bundle/gems/railties-4.2.0.beta4/lib/rails/initializable.rb:54:in`run_initializers'
from /usr/local/bundle/gems/railties-4.2.0.beta4/lib/rails/application.rb:349:in `initialize!'
from /usr/src/app/config/environment.rb:5:in`<top (required)>'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:252:in `require'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:252:in`block in require'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:237:in `load_dependency'
from /usr/local/bundle/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:252:in`require'
from /usr/local/bundle/gems/spring-1.1.3/lib/spring/application.rb:92:in `preload'
from /usr/local/bundle/gems/spring-1.1.3/lib/spring/application.rb:140:in`serve'
from /usr/local/bundle/gems/spring-1.1.3/lib/spring/application.rb:128:in `block in run'
from /usr/local/bundle/gems/spring-1.1.3/lib/spring/application.rb:122:in`loop'
from /usr/local/bundle/gems/spring-1.1.3/lib/spring/application.rb:122:in `run'
from /usr/local/bundle/gems/spring-1.1.3/lib/spring/application/boot.rb:18:in`<top (required)>'
from /usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in`require'
from -e:1:in `<main>'
Thanks in advance for any help.
Steve