Sha256: 5537902b65c2a4ad7001b99b609e72940d647b1f4f343a24e1ce6d4bc98c7981
Contents?: true
Size: 810 Bytes
Versions: 2
Compression:
Stored size: 810 Bytes
Contents
module SmartExcerpt class Helper include ActionView::Helpers::TextHelper def smart_truncate(s, opts = {}) return '' if s.blank? opts = {words: 25}.merge(opts) if opts[:sentences] return s.split(/\.(\s|$)+/)[0, opts[:sentences]].map{|s| s.strip}.join('. ') + '.' end if opts[:letters] return truncate(s, length: opts[:letters], separator: ' ', omission: '...') end n = opts[:words] if n === Float::INFINITY return s end a = s.split(/\s/) # or /[ ]+/ to only split on spaces r = a[0...n].join(' ') + (a.size > n ? '...' : '') # replace with regular spaces r.gsub!(' ', ' ') # strip newlines r = r.strip.gsub("\r", '').gsub("\n", ' ') r.gsub(/\s+/, ' ') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
smart_excerpt-0.1.5 | lib/smart_excerpt/helper.rb |
smart_excerpt-0.1.4 | lib/smart_excerpt/helper.rb |