Rubyコマンド作成雛形
ごくごくフツーに書くとtestしづらいので、無理矢理class化する。
class部とコマンド部を1ファイルにしておくと、rspecのパース時か何かにおかしくなるので、別ファイルにする。
#lib/MyCommand.rb class MyCommand def main(args) # ARGVをrspecでテストできるように、メソッドの引数でARGVを設定できるようにする。 ARGV.clear args.each{|file_name| ARGV << file_name} #引数エラーのとき。 raise ArgumentError if 〜〜 #メイン処理 end end
#MyCommand.rb begin MyCommand.new.main(ARGV.dup) rescue ArgumentError puts <<_EOL_ Usage: >#{$0} [ filename ... ] _EOL_ exit 1 rescue end