aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorRishi Jain <rishi@joshsoftware.com>2014-11-06 06:34:56 +0530
committerRishi Jain <rishi@joshsoftware.com>2014-11-06 13:04:56 +0530
commit54a9653a04f43917eab0b323ef4ba5b1fc6c05f4 (patch)
tree5ad61c1e82a940767077f15b3af1034ac5df9793 /activesupport
parent75099a933d0bf5e037037f78fbb305520955b064 (diff)
downloadrails-54a9653a04f43917eab0b323ef4ba5b1fc6c05f4.tar.gz
rails-54a9653a04f43917eab0b323ef4ba5b1fc6c05f4.tar.bz2
rails-54a9653a04f43917eab0b323ef4ba5b1fc6c05f4.zip
added example of squish!, remove, test case for multiple occurrence of
pattern removal added example for string#remove and test case for remove of multiple occurence of pattern removed extra whitespaces
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/core_ext/string/filters.rb9
-rw-r--r--activesupport/test/core_ext/string_ext_test.rb6
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")