やっつけスクリプトのテンプレート そのに

id:ha-tan:20060316:1142439891のテンプレートにコメントを補ってみました。コメントが冗長過ぎるので、実際に使う場合はid:ha-tan:20060316:1142439891の方がいいと思います。

#!/usr/bin/env ruby
# /usr/bin/envがあれば動くようにしておきます。
# -*- ruby -*- 
# $Id:$  万が一、CVSに登録した時のため。

require 'ostruct' 

# グローバル変数格納。とりあえずデバッグレベルくらいは使えるようにします。
$opts = OpenStruct.new(:debug => 0)

# メインルーチン。
def main
  # デバッグレベルはこんな感じで使います。
  puts 'debug level 1' if $opts.debug > 0
  puts 'debug level 2' if $opts.debug > 1

  # 適当に行単位のフィルタのコードを入れておきます。
  while line = ARGF.gets
    puts line
  end
end

# 万が一、RubyUnitで試験を書くときのため。
if __FILE__ == $0
  # コマンドラインオプションの解析はこの中で行います。
  require 'optparse'

  # バージョンの指定。OptionParserがよきにはからってくれます。
  Version = '0.1a'
  OptionParser.new do |opt| # ブロック使ってoptをローカルにする形式が好き。
    # デバッグレベルを指定します。
    # usageもOptionParserがよきにはからってくれます。
    opt.on('-d', '--debug', 'enable debug mode.') do
      # -dddと指定することでデバッグレベルを上げることができます。
      $opts.debug += 1
    end
    # 解析済みのオプションは取り除きます。
    opt.parse!(ARGV)
  end

  # メインルーチンを呼出します。
  main
end