aboutsummaryrefslogblamecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/string/filters.rb
blob: 0329fbb8d4e3b2edb13e9982a4a41ae0ef36de2e (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13












                                                                           
                     



                                                           


                           




           
module ActiveSupport #:nodoc:
  module CoreExtensions #:nodoc:
    module String #:nodoc:
      module Filters
        # Returns the string, first removing all whitespace on both ends of
        # the string, and then changing remaining consecutive whitespace
        # groups into one space each.
        #
        # Examples:
        #   %{ Multi-line
        #      string }.squish                   # => "Multi-line string"
        #   " foo   bar    \n   \t   boo".squish # => "foo bar boo"
        def squish
          dup.squish!
        end

        # Performs a destructive squish. See String#squish.
        def squish!
          strip!
          gsub!(/\s+/, ' ')
          self
        end
      end
    end
  end
end