Method: StringExt#_truncate

Defined in:
lib/vex/base/string/string_ext.rb

#_truncate(opts) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/vex/base/string/string_ext.rb', line 50

def _truncate(opts)
  opts = { :length => opts, :omission => "…" } unless opts.is_a?(Hash)
  max_length = opts[:length] || 30
  omission = opts[:omission] || "…"

  #
  # Treat multibytes differently
  if respond_to?(:mb_chars)
    l = max_length - omission.mb_chars.length
    if mb_chars.length > max_length
      return (mb_chars[0...l] + omission).to_s
    end
  else
    l = max_length - omission.length
    if length > max_length
      return self[0...l] + omission
    end
  end

  self
end