[Ruby] Определение "+" и перестановка слагаемых

Yuri Leikind YuriLeikind at scnsoft.com
Wed Oct 2 16:42:03 MSD 2002


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

Вот. Так будет работать. Я правильно понял, это то, что нужно?


___
Best regards,
Yuri Leikind


I invented the term Object-Oriented, and
I can tell you I did not have C++ in mind.
Alan Key



More information about the Ruby mailing list