excerpt
excerpt(text, phrase, options = {})
public
Extracts the first occurrence of phrase plus surrounding text from text. An omission marker is prepended / appended if the start / end of the result does not coincide with the start / end of text. The result is always stripped in any case. Returns nil if phrase isn’t found.
Options
- :radius
-
The number of characters (or tokens â see :separator option) around phrase to include in the result. Defaults to 100.
- :omission
-
The marker to prepend / append when the start / end of the excerpt does not coincide with the start / end of text. Defaults to "...".
- :separator
-
The separator between tokens to count for :radius. Defaults to "", which treats each character as a token.
Examples
excerpt('This is an example', 'an', radius: 5) # => "...s is an exam..." excerpt('This is an example', 'is', radius: 5) # => "This is a..." excerpt('This is an example', 'is') # => "This is an example" excerpt('This next thing is an example', 'ex', radius: 2) # => "...next..." excerpt('This is also an example', 'an', radius: 8, omission: '<chop> ') # => "<chop> is also an example" excerpt('This is a very beautiful morning', 'very', separator: ' ', radius: 1) # => "...a very beautiful..."
Description copied from Rails 2.0
Extracts an excerpt from text that matches the first instance of phrase. The radius expands the excerpt on each side of the first occurrence of phrase by the number of characters defined in radius (which defaults to 100). If the excerpt radius overflows the beginning or end of the text, then the excerpt_string will be prepended/appended accordingly. If the phrase isn‘t found, nil is returned.
Examples
excerpt('This is an example', 'an', 5) # => "...s is an examp..." excerpt('This is an example', 'is', 5) # => "This is an..." excerpt('This is an example', 'is') # => "This is an example" excerpt('This next thing is an example', 'ex', 2) # => "...next t..." excerpt('This is also an example', 'an', 8, '<chop> ') # => "<chop> is also an example"