Я хочу динамически открыть метод и вернуть значение на основе поля ввода. Я пытаюсь спросить, что я хочу с примером здесь. Если бы я смог добиться успеха в этом примере, я бы сделал то, что я хочу.
Предположим, у меня есть класс с именем Greetings, у которого есть метод с именем greet (), который принимает сообщение в качестве аргумента.
class Greetings
def self.greet(message)
return "good morning" if message=="gm"
return "evening" if message=="ge"
return "good afternoon" if message=="ga"
end
end
Когда я делаю Greetings.greet("ge")
, я получаю "вечер" в качестве вывода. Я хочу изменить это поведение, не изменяя вышеупомянутый класс Greetings (очевидная причина в том, что это внешняя библиотека).
Мой вопрос здесь прост. Что я должен делать, когда говорят, что я называю Greetings.greet("ge")
, должен возвращать мне «Очень хороший вечер», а для всех других входных данных он должен возвращать то, что возвращает исходный класс. Я знаю кое-что о динамическом открытии класса в Ruby, но как бы я делегировал метод родительскому для других случаев?
И я бы написал это в папке config / initializers, так как я использую Rails.