У меня есть следующий код:
class Engine
attr_accessor :isRunning
def initialize
@isRunning = false
@commands = ["left", "right", "brake", "accelerate", "quit"]
end
def start
self.isRunning = true;
while(self.isRunning)
command = gets.chomp!
if(@commands.include? command)
puts "OK."
else
puts "> #{command} Unknown Command."
end
if(command=="quit") then
self.stop
puts "Quitting!"
end
end
end
def stop
self.isRunning = false;
end
end
Как видите, это довольно просто, однако я пытаюсь выяснить, как вызывать методы на основе критериев.Если бы я реализовал несколько методов, таких как methodOne и methodTwo, внутри класса Engine следующим образом:
@commands = ["left", "right", "brake", "accelerate", "quit", "methodOne", "methodTwo"]
def methodOne
end
def methodTwo
end
def parseCommand(command)
if(command=="methodOne") then
self.methodOne
end
if(command=="methodTwo") then
self.methodTwo
end
end
Могу ли я вызывать эти методы минималистично?Прямо сейчас мне пришлось бы написать большую кучу операторов if, и я бы предпочел пропустить его дальнейшее обслуживание, если это можно сделать более элегантно.