ã“ã‚“ã«ã¡ã¯ã€æœ´ èŠå°ã§ã™ã€‚
次ã®ã‚ˆã†ã« gsubをラッピンッグã—ã¦
実行ã™ã‚‹ã¨ã€ã¡ã‚‡ã£ã¨æ„外ãªçµæžœãŒã§ã¾ã™ãŒã€ã”ã‚Œã¯æ£ã—ã„ã§ã—ょã†ã‹ã€‚
勘é•ã„ã ã£ãŸã‚‰ã™ã¿ã¾ã›ã‚“。
$ cat test2.rb
class String
def wrap_gsub(*a, &b)
self.gsub(*a, &b)
puts “in wrapper ? #{$&}”
end
end
puts “wrapper”
“abc”.wrap_gsub(/([abc]+)/n) {|x| p $&}
puts “and out of wrapper - #{$&}”
puts “=======”
puts “original”
“abc”.gsub(/([abc]+)/n) {|x| p $&}
çµæžœã§ã™ã€‚1.8/1.9 åŒã˜ã§ã™ã€‚
$ ruby test2.rb
wrapper
nil
in wrapper ? abc
and out of wrapper -
original
“abc”
$ ruby --version
ruby 1.9.0 (2008-01-22 revision 0) [i686-linux]
mithrandir@losrorien ~/Development/ruby-1.8.6 $ ruby18 test2.rb
wrapper
nil
in wrapper ? abc
and out of wrapper -
original
“abc”
$ ruby18 --version
ruby 1.8.6 (2007-12-03 patchlevel 113) [i686-linux]