Thank you MonkeeSage for your precisions.
Thanks Robert, that's what I was looking for.

Mickael.

On 9/24/06, Robert Klemme <shortcutter / googlemail.com> wrote:
> Mickael Faivre-Macon wrote:
> > Hi,
> >
> > What is called the process of adding a new method of an already defined
> > class ?
> >
> > For example:
> >
> > class A
> >   def a
> >   end
> > end
> >
> > And in another file:
> >
> > class A
> >   def b
> >   end
> > end
> >
> > And now my real question:
> >
> > What if I want to declare a new class variable in the initialize method ?
> > If it's a derived class I can call super:
> > def initialize
> >   super
> >   @my_var = ""
> > end
> >
> > but if it not derived ?
> > How can I do this ?
>
> You can alias the old initialize method and replace it with another one:
>
> irb(main):014:0> class A
> irb(main):015:1>   def initialize(x)
> irb(main):016:2>     @foo = x
> irb(main):017:2>   end
> irb(main):018:1> end
> => nil
> irb(main):019:0> a = A.new 10
> => #<A:0x38e4d0 @foo=10>
> irb(main):020:0> class A
> irb(main):021:1>   alias initialize_old initialize
> irb(main):022:1>   def initialize(x)
> irb(main):023:2>     initialize_old x
> irb(main):024:2>     @bar = "foo"
> irb(main):025:2>   end
> irb(main):026:1> end
> => nil
> irb(main):027:0> b = A.new 20
> => #<A:0x374610 @bar="foo", @foo=20>
>
> Kind regards
>
>         robert