Sha256: 377371cf53c22811d1eda54822e9f763a14d4e713ff9fd33d10256d9d66b48dd

Contents?: true

Size: 630 Bytes

Versions: 124

Compression:

Stored size: 630 Bytes

Contents

# frozen_string_literal: true

class ReeString::Squish
  include Ree::FnDSL

  fn :squish

  doc(<<~DOC)
    Returns the string, first removing all whitespace on both ends of
    the string, and then changing remaining consecutive whitespace
    groups into one space each.
    
    Note that it handles both ASCII and Unicode whitespace.
    
      squish(%{ Multi-line
         string })                          # => "Multi-line string"
      squish(" foo   bar    \n   \t   boo") # => "foo bar boo"
  DOC
  contract(String => String)
  def call(str)
    str
      .dup
      .gsub!(/[[:space:]]+/, " ")
      .strip!
  end
end

Version data entries

124 entries across 124 versions & 1 rubygems

Version Path
ree_lib-1.0.23 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.22 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.21 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.20 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.19 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.18 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.17 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.16 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.15 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.14 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.13 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.12 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.11 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.10 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.9 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.8 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.7 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.6 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.5 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.4 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb