On Fri, 19 Jan 2007, Pit Capitain wrote:

> David Chelimsky schrieb:
>> I find that I do a lot of this:
>> 
>> def initialize(thing, other)
>>  @thing = thing
>>  @other = other
>> end
>> 
>> One thing I'd love to see in a future version of ruby is this;
>> 
>> def initialize(@thing, @other)
>> end
>
> Not that I would do it, but:
>
>  class C
>    define_method :initialize do |@x, @y|
>    end
>  end
>
>  c = C.new 1, 2
>  p c              # => #<C:0x2aeabd0 @y=2, @x=1>
>
> I think Matz is planning to deprecate this feature.
>
> Regards,
> Pit

   harp:~ > cat a.rb
   require 'rubygems'
   require 'attributes'

   class C
     attributes %w( a b c )

     def initialize *argv
       self.class.attributes.zip(argv){|a,v| send a, v}
     end
   end

   p(C.new(0,1,2))

   harp:~ > ruby a.rb
#<C:0xb74c1b44 @c=2, @b=1, @a=0>


-a
-- 
in the practice of tolerance, one's enemy is the best teacher.
- the dalai lama