コマンドテンプレート
optparseが面倒くさいので今後はここからコピペする。
元は瀧内さんのコードだけど、どれからパクったか忘れた。
require 'optparse' COMMAND_LINE = "#{$0} #{ARGV.join(' ')}" OPT = {} opts = OptionParser.new opts.on('-a <abc>'){|v| OPT[:abc] = v} opts.on('-x', '--xyz <xyz>'){|v| OPT[:xyz] = v} opts.on_tail('-v', '--version', 'Show version.'){puts(opts.ver); exit} opts.on_tail('-h', '--help', 'Show this message.'){puts(opts.help); exit} ::Version = MyApp::VERSION opts.order! ARGV CMD = ARGV.shift MyApp.new.start CMD, OPT