10/01/18 22:55:11
先生質問だよ質問
data = {/key/ => lambda{|m| "<#{m}>"}}
…
data.each_pair do |re, p|
file.gsub!(re){|m| p.call(m)}
end
p file #=> key が <key> になってる
というような、
{正規表現 => キーのマッチ結果を便利に利用した結果の返り値またはただの文字列}
というデータを用いた連続置換をしたいのです
それで、data は外部から自由に与えたいのです
でも、よく考えたら lambda を作った時点では gsub の $1 も \1 もまだ無いから利用できないわけで
なにかうまい方法ないですか
eval ならなんとかなると思ったんだけど普通の置換後に使いたいだけの文字列も eval してしまいます