[Ruby] Определение "+" и перестановка слагаемых
Anton Farygin
rider at altlinux.com
Wed Oct 2 16:50:50 MSD 2002
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Yuri Leikind wrote:
|On Wed, 2 Oct 2002 08:56:33 +0300
|Ilya Palagin <tux at fioc.kz> wrote:
|
|>Здравствуйте,
|>
|>К письму приложен файл с кодом. Интересно было бы узнать, как и где
|>определить метод "+", чтобы скрипт работал с 33-й строкой, т.е. при
|>перестановке слагаемых?
|>
|
|Может я не все понял, но если не хочется писать каждый раз
|
| cgi.h1{"Some text"} + te.to_s
|
|а хочется писать
|
| cgi.h1{"Some text"} + te
|
|то можно залезть в класс String и воспользоваться alias_method:
|
|class String
|
| alias_method :new_plus_name, :+
|
| def+(e) # это у нас расширенный метод +
| if e.class == PageElement
| self.new_plus_name e.to_s # но оригинальный метод
| # сохранился с именем new_plus_name
| else
| self.new_plus_name e
| end
| end
|end
|
|Вот. Так будет работать. Я правильно понял, это то, что нужно?
|
так тоже будет работать.
Но можно было просто переименовать в PageElement метод to_s в метод
to_str. И все работает.
Единственное НО: это решение я подсмотрел в исходниках Ruby и не знаю,
документированно ли оно ;-)
Rgds,
Rider
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQE9muuqqohfd2vlwKsRAnxaAKCxNgZRijSjfH6Y8qwm+qSa5eob0ACgoaO9
MpXNMbr0tMzBrqtkH+Cz7oo=
=WjrS
-----END PGP SIGNATURE-----
More information about the Ruby
mailing list