diff options
| -rw-r--r-- | activesupport/lib/active_support/core_ext/string/filters.rb | 9 | ||||
| -rw-r--r-- | activesupport/test/core_ext/string_ext_test.rb | 6 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/activesupport/lib/active_support/core_ext/string/filters.rb b/activesupport/lib/active_support/core_ext/string/filters.rb index 499b9b26bc..096292dc58 100644 --- a/activesupport/lib/active_support/core_ext/string/filters.rb +++ b/activesupport/lib/active_support/core_ext/string/filters.rb @@ -13,6 +13,9 @@ class String    end    # Performs a destructive squish. See String#squish. +  #   str = " foo   bar    \n   \t   boo" +  #   str.squish!                         # => "foo bar boo" +  #   str                                 # => "foo bar boo"    def squish!      gsub!(/\A[[:space:]]+/, '')      gsub!(/[[:space:]]+\z/, '') @@ -21,11 +24,17 @@ class String    end    # Returns a new string with all occurrences of the patterns removed. +  #   str = "foo bar test" +  #   str.remove(" test")                 # => "foo bar" +  #   str                                 # => "foo bar test"    def remove(*patterns)      dup.remove!(*patterns)    end    # Alters the string by removing all occurrences of the patterns. +  #   str = "foo bar test" +  #   str.remove!(" test")                 # => "foo bar" +  #   str                                  # => "foo bar"    def remove!(*patterns)      patterns.each do |pattern|        gsub! pattern, "" diff --git a/activesupport/test/core_ext/string_ext_test.rb b/activesupport/test/core_ext/string_ext_test.rb index 119e62369d..e32c178951 100644 --- a/activesupport/test/core_ext/string_ext_test.rb +++ b/activesupport/test/core_ext/string_ext_test.rb @@ -266,6 +266,12 @@ class StringInflectionsTest < ActiveSupport::TestCase      assert_equal "This is a good day to die", original    end +  def test_remove_for_multiple_occurrences +    original = "This is a good day to die to die" +    assert_equal "This is a good day", original.remove(" to die") +    assert_equal "This is a good day to die to die", original +  end +    def test_remove!      original = "This is a very good day to die"      assert_equal "This is a good day to die", original.remove!(" very") | 
