Sha256: bf0f080bfc69b48ca578d0a1d1c4c4886a4475a71b064c694e49221ae328727f

Contents?: true

Size: 603 Bytes

Versions: 6

Compression:

Stored size: 603 Bytes

Contents

class String
  def underscore
    self.gsub(/::/, '/').
      gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
      gsub(/([a-z\d])([A-Z])/,'\1_\2').
      tr('-', '_').
      downcase
  end

  def plain
    self.gsub("\r\n", ' ').gsub(/[\s\-_=]{2,}/, ' ').strip
  end

  def cut(size = 50, options = {})
    text = self.dup
    options[:omission] ||= '...'
    chars = ''
    current_size = 0
    text.each_char do |c|
      current_size += c =~ /^[ -~。-゚]*$/ ? 1 : 2
      break if current_size > size
      chars << c
    end
    chars << options[:omission] if current_size > size
    chars.to_s
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
furik-0.2.0 lib/furik/core_ext/string.rb
furik-0.1.4 lib/furik/core_ext/string.rb
furik-0.1.3 lib/furik/core_ext/string.rb
furik-0.1.2 lib/furik/core_ext/string.rb
furik-0.1.1 lib/furik/core_ext/string.rb
furik-0.1.0 lib/furik/core_ext/string.rb