$1
変数を使用するブロックに降伏するメソッドをラップするエイリアスメソッドを作成するにはどうすればよいですか?
String#sub
より具体的には、使用する前に渡された正規表現を変更するためにモンキーパッチを適用したいと思います(はい、それは良い習慣ではないことを知っています)。
次のコードを試しましたが成功しませんでした。
class String
alias :sub_orig :sub
def sub(*args, &block)
# do stuff with args
sub_orig(*args, &block)
end
end
次のテストは、問題が何であるかを示しています
"mark = good".sub(/(good)|(bad)/) { "very " + $1 }
TypeError: can't convert nil into String