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.124 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.123 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.122 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.121 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.120 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.119 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.118 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.117 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.116 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.115 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.114 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.113 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.112 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.111 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.110 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.109 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.108 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.107 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.106 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb
ree_lib-1.0.105 lib/ree_lib/packages/ree_string/package/ree_string/functions/squish.rb