From b7da7cfee0daac7c3e382e1a767ba1451a4c5c89 Mon Sep 17 00:00:00 2001 From: Yukihiro Matz Matsumoto Date: Mon, 18 Feb 2013 18:47:58 +0900 Subject: adopt String#gsub to fixed split behavior --- mrblib/string.rb | 6 ++---- test/t/string.rb | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/mrblib/string.rb b/mrblib/string.rb index 8a4894dd4..131d30446 100644 --- a/mrblib/string.rb +++ b/mrblib/string.rb @@ -28,12 +28,10 @@ class String # # ISO 15.2.10.5.18 def gsub(*args, &block) - lc = '' if args.size == 2 - lc = args[1] if self[-1] == args[0] - split(args[0]).join(args[1]) + lc + split(args[0], -1).join(args[1]) elsif args.size == 1 && block - split(args[0]).join(block.call(args[0])) + split(args[0], -1).join(block.call(args[0])) else raise ArgumentError, "wrong number of arguments" end diff --git a/test/t/string.rb b/test/t/string.rb index 7d0b147d0..b2a70266b 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -205,7 +205,7 @@ assert('String#gsub!', '15.2.10.5.19') do b = 'abcabc' b.gsub!('b') { |w| w.capitalize } - a == 'aBcaBc' && b == 'aBcaBc' + a == 'aBcaBc' && b == 'aBcaBc' end assert('String#hash', '15.2.10.5.20') do -- cgit v1.2.3