Greetings.

I've got very strange behavior of alias_method_chains, and I hope
someone will advise me.

I have a rails 2.2.2 app created with
#rails aliasApp

, a class XYZ residing in app/helpers/xyz.rb:

<code>
class XYZ

  attr_accessor :name
  attr_accessor :value

  def initialize (a, b)
    puts "in XYZ constructor"
    self.name  = a
    self.value = b
  end

  def a
    puts self.name
  end

  def b
    puts self.value
  end
end
</code>

, and an extended class XYZ in app/views/xyz_ext.rb

<code>
class XYZ
   def initialize_with_extension a,b
      puts "before chain"
      initialize_without_extension a,b
      puts "after chain"
   end
   alias_method_chain :initialize, :extension
end
</code>

So basically what I expect to have three lines in the console when
creating XYZ:
1) before chain
2) in Alias constructor
3) after chain

BUT I get something really different!

silencio:alias u2$ script/console
Loading development environment (Rails 2.2.2)
>> require 'app/views/xyz_ext.rb' 
=> ["XYZ"]
>> XYZ.new 1,3 
before chain
ArgumentError: wrong number of arguments (2 for 0)
from ./app/views/xyz_ext.rb:4:in `initialize_without_extension'
from ./app/views/xyz_ext.rb:4:in `initialize'
from (irb):3:in `new'
from (irb):3
>> 

Any ideas on this error would be very appreciated!
Alex
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to