Użycie self w ruby 1.9.2

Witam.
Mam problem z użyciem self w ruby 1.9.2.

def add(n) self + n end
Przykładowo powyższy kod w ruby 1.8.7 działa tak jak powinien[code]>> puts 117.add(32)
149
=> nil

[/code]
, natomiast w ruby 1.9.2 irb zwraca błąd[code]puts 117.add(32)
NoMethodError: private method add' called for 117:Fixnum from (irb):4 from /home/user/.rvm/rubies/ruby-1.9.2-p0/bin/irb:16:in

[/code]
Da się użyć self w nowej wersji ruby?

U mnie działa:

[code]class Fixnum
def add(n)
self + n
end
end

117.add 1 #=> 118[/code]

Czyli w ruby 1.9.2 metody zdefiniowane poza klasami nie są automatycznie dodawane do klasy Object, true?

Ach, myślałem, że przez pomyłkę opuściłeś class Fixnum. Są dodawane, ale jako metody prywatne:

1.send(:add, 1)

Ale ja bym nie polegał na tym fakcie, jak chcesz coś zdefiniować dla Object, to otwórz klasę Object.

:slight_smile: Dzięki