From: "Bartosz Dziewoński" Date: 2012-02-21T17:40:41+09:00 Subject: Re: Difference between 1.9.2 and 1.9.3 That's because super with parentheses passes the same args your method was called with (like Dave said), and default Object#initialize method takes no arguments. But that's interesting. You might want to metnion it at Ruby's bug tracker: bugs.ruby-lang.org - maybe the default initializer should take any number of args and just discard them. -- Matma Rex 2012/2/21 Dave Aronson : > On Mon, Feb 20, 2012 at 12:25, James French > wrote: > >> module A         <- line 1 >>   def initialize(*args, &block) >>     super >>   end >> end > ... >> test.rb:3:in `initialize': wrong number of arguments(1 for 0) >> (ArgumentError) > ... >> Not calling ‘super’ in initialize in module A fixes it but then it seems >> that module A is not as generic and standalone in terms of how its included >> by classes. I guess its more correct because there is no super class in this >> case. What should I change the code to for the best? > > Try using parens on super, i.e., super().  That should stop it from > passing along the args the initializer got. > > -Dave > > -- > Dave Aronson:  Available Cleared Ruby on Rails Freelancer > (NoVa/DC/Remote) -- see www.DaveAronson.com, and blogs at > www.Codosaur.us, www.Dare2XL.com, www.RecruitingRants.com >