私は CLI ツールを作成しており、次のコードがあります。
commands = {
:'-h' => :help,
:'--help' => :help,
:help => :help,
:r => :remove,
:rm => :remove,
# ...
}
if some_obj.respond_to? commands[ARGV.first.to_sym]
some_obj.send commands[ARGV.first.to_sym]
end
ただし、 にARGV.first.to_sym
が見つからない場合はcommands
、respond_to?
文句を言います。
./tool.rb:121:in `respond_to?': nil is not a symbol (TypeError)
from ./tool.rb:121:in `<main>'
nil
このエラーなしで、また明示的にチェックせずに、他のアプローチを使用することは可能ですか?
ありがとう。