instance method
truncate
Ruby on Rails 3.2.22.5
Since v3.0.20Signature
truncate(length, options = {})
Truncates a given text after a given length if text is longer than length:
"Once upon a time in a world far far away".truncate(27) # => "Once upon a time in a wo..."
Pass a :separator to truncate text at a natural break:
"Once upon a time in a world far far away".truncate(27, :separator => ' ') # => "Once upon a time in a..."
The last characters will be replaced with the :omission string (defaults to “…”) for a total length not exceeding :length:
"And they found that many people were sleeping better.".truncate(25, :omission => "... (continued)") # => "And they f... (continued)"
Parameters
-
lengthreq -
optionsopt = {}
Source
# File activesupport/lib/active_support/core_ext/string/filters.rb, line 38
def truncate(length, options = {})
text = self.dup
options[:omission] ||= "..."
length_with_room_for_omission = length - options[:omission].mb_chars.length
chars = text.mb_chars
stop = options[:separator] ?
(chars.rindex(options[:separator].mb_chars, length_with_room_for_omission) || length_with_room_for_omission) : length_with_room_for_omission
(chars.length > length ? chars[0...stop] + options[:omission] : text).to_s
end
Defined in activesupport/lib/active_support/core_ext/string/filters.rb line 38
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in String