ヽ(´・肉・`)ノログ

How do we fighting without fighting?

xmpfilterを読む(3)

前回は全体はどんな流れになっているかを眺めた. 今回は全体を眺める際に飛ばした,メソッド呼び出しについて眺めてみよう.

Xmpfilter#prepare_line(expr, idx, multi_line=false)

xmpfilter.rb#L131-L134 で使っている prepare_line について眺めてみると……ぎゃっ! prepare_line という名前から想像するより処理がたくさん書いてある.

multi_line じゃない方の処理から眺めてみる.

xmpfilter.rb#L172-L175

v = "#{VAR}"
blocal = "__#{VAR}"
blocal2 = "___#{VAR}"
lastmatch = "____#{VAR}"

ここは単純に変数を代入しているだけだ.VAR は 22 行目

VAR = "_xmp_#{Time.new.to_i}_#{Process.pid}_#{rand(1000000)}"

とあるので,プロセスでも,時間でも重ならない一意な値が欲しいのだろう.今だったら SecureRandom.uuid を使えばいいのかもしれない.

このエントリーをはてなブックマークに追加