Я написал следующий код:
obj = Object.new
def obj.talk
puts "Talk called"
end
if obj.respond_to?(talk)
obj.send(talk)
else
puts "No talk"
end
, который выводит следующее:
undefined local variable or method `talk' for main:Object (NameError)
Но когда я передаю его через пользовательский ввод, он работает как:
obj = Object.new
def obj.talk
puts "Talk called"
end
request = gets.chomp
if obj.respond_to?(request)
obj.send(request)
else
puts "No talk"
end
, который выводит Talk called
при вводе строки talk
с терминала.