Допустим, у меня есть класс с именем Klass и класс с именем Klass2 . В зависимости от ввода пользователя я бы хотел решить, буду ли я звонить "hello_world"
на Klass или Klass2:
class Klass
def self.hello_world
"Hello World from Klass1!"
end
end
class Klass2
def self.hello_world
"Hello World from Klass2!"
end
end
input = gets.strip
class_to_use = input
puts class_to_use.send :hello_world
Пользователь вводит "Klass2" и скрипт должен сказать:
Hello World от Klass2!
Очевидно, что этот код не работает, так как я звоню #hello_world
на String, но я бы хотел позвонить #hello_world
на Klass2
.
Как мне "преобразовать" строку в ссылку на Klass2
(или что-либо еще, что пользователь может ввести), или как мне еще добиться такого поведения?