From eba4b1fd76ae22efc23341f028deb924fdc9401c Mon Sep 17 00:00:00 2001 From: ksss Date: Sun, 5 Mar 2017 22:57:56 +0900 Subject: Check modifiable for String `bang' methods --- mrbgems/mruby-string-ext/mrblib/string.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'mrbgems/mruby-string-ext') diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb index 8895b7ad3..36b0218a7 100644 --- a/mrbgems/mruby-string-ext/mrblib/string.rb +++ b/mrbgems/mruby-string-ext/mrblib/string.rb @@ -95,6 +95,7 @@ class String # "hello".lstrip! #=> nil # def lstrip! + raise RuntimeError, "can't modify frozen String" if frozen? s = self.lstrip (s == self) ? nil : self.replace(s) end @@ -111,6 +112,7 @@ class String # "hello".rstrip! #=> nil # def rstrip! + raise RuntimeError, "can't modify frozen String" if frozen? s = self.rstrip (s == self) ? nil : self.replace(s) end @@ -123,6 +125,7 @@ class String # nil if str was not altered. # def strip! + raise RuntimeError, "can't modify frozen String" if frozen? s = self.strip (s == self) ? nil : self.replace(s) end @@ -183,6 +186,7 @@ class String # string #=> "thsa sting" # def slice!(arg1, arg2=nil) + raise RuntimeError, "can't modify frozen String" if frozen? raise "wrong number of arguments (for 1..2)" if arg1.nil? && arg2.nil? if !arg1.nil? && !arg2.nil? -- cgit v1.2.3