Лично, я имею больше доверия платформе Linux как сервер, но хочу использовать C# в качестве языка программы.
В Ruby класс никогда не загружается полностью. Вы можете снова открыть его, когда захотите.
class A
def method_in_a
…
end
end
Вы можете сделать это позже, независимо от того, где находится ваш код (даже в другом файле исходного кода).
class A
alias :aliased_method_in_a :method_in_a
end
или вы можете сделать это так, как вы его написали (что именно так такой же, как и в предыдущем коде)
A.class_eval do
alias :aliased_method_in_a :method_in_a
end
Как вы указали, A # method_in_a должен существовать в то время, когда вы его назначаете. Чтобы убедиться, что это правда, вы можете сделать
require "file_of_class_a"
перед тем, как делать псевдоним. Если вы не знаете, когда будет создан метод A # method_in_a, вы можете сделать
class A
def self.method_added(name)
alias :aliased_method_in_a :method_in_a if name == :method_in_a
end
end
A.method_added автоматически вызывается всякий раз, когда определяется метод в A.