Sha256: 67cff04d2521da0bf4d00fac4d45eb356d1b1d947abcdbd1913e6ffce3d292f9

Contents?: true

Size: 743 Bytes

Versions: 26

Compression:

Stored size: 743 Bytes

Contents

#--
# Credit goes to George Moschovitis.
#++
class String

  # Returns short abstract of long strings (first 'count'
  # characters, chopped at the nearest word, appended by '...')
  # force_cutoff: break forcibly at 'count' chars. Does not accept
  # count < 2.
  def brief(string, count = 128, force_cutoff = false, ellipsis="...")
    return nil unless string
    return nil if count < 2

    if string.size > count
      cut_at = force_cutoff ? count : (string.index(' ', count-1) || count)
      xstring = string.slice(0, cut_at)
      return xstring.chomp(" ") + ellipsis
    else
      return string
    end
  end

end


#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
# TODO

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
facets-1.0.3 packages/core/lib/facet/string/brief.rb
facets-0.9.0 lib/nano/string/brief.rb
facets-1.0.0 lib/facet/string/brief.rb
facets-1.3.0 lib/facets/core/string/brief.rb
facets-1.1.0 lib/facet/string/brief.rb
facets-1.2.0 lib/facets/core/string/brief.rb
facets-1.2.1 lib/facets/core/string/brief.rb
facets-1.3.2 lib/facets/core/string/brief.rb
facets-1.3.1 lib/facets/core/string/brief.rb
facets-1.3.3 lib/facets/core/string/brief.rb
facets-1.4.2 lib/facets/core/string/brief.rb
facets-1.4.1 lib/facets/core/string/brief.rb
facets-1.4.0 lib/facets/core/string/brief.rb
facets-1.4.3 lib/facets/core/string/brief.rb
facets-1.4.4 lib/facets/core/string/brief.rb
facets-1.4.5 lib/facets/core/string/brief.rb
facets-1.7.0 lib/facets/core/string/brief.rb
facets-1.7.30 lib/facets/core/string/brief.rb
facets-1.7.38 lib/facets/core/string/brief.rb
facets-1.7.46 lib/facets/core/string/brief.rb