Rubyで正規表現

昨日は

Rubyを使って正規表現でマッチした語句があればそれを連想配列を使って対応する文字列に書き換える」

という処理をプログラムを書いてみました。

"ProjectName", "author","date"

という三つの単語をそれぞれ書き換えます。

#!/usr/bin/ruby


=begin
 $ProjectName$

=end

class TextValue
  # class's member
  TABLE = {
    "ProjectName"=>"AAA",
    "author"=>"bulldog",
    "date"=>Time.now.strftime("%Y-%m-%d")}
end

=begin
 author = $author$
 date : $date$
=end
begin

  # プロジェクト名の書き換え
  TextValue::TABLE["ProjectName"] = ARGV[1]

  # ファイルの読み込み
  tmp = open(ARGV[1])
  while line = tmp.gets()
    # 指定されている文字列なら書き換え
    if /\$(\w*)\$/ =~ line then
      #print TextValue::TABLE[$1] + "\n"
      print line.gsub(/\$(\w*)\$/, TextValue::TABLE[$1])
    else
      print line
    end
  end

  tmp.close
end