Skip to content

Commit

Permalink
Merge pull request rails#6371 from ihid/remove_old_text_helper_api
Browse files Browse the repository at this point in the history
Removed old text_helper apis for highlight, excerpt and word_wrap
  • Loading branch information
rafaelfranca committed May 17, 2012
2 parents 598fc20 + 90ec863 commit b23ac93
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 69 deletions.
2 changes: 2 additions & 0 deletions actionpack/CHANGELOG.md
@@ -1,5 +1,7 @@
## Rails 4.0.0 (unreleased) ##

* Removed old text_helper apis for highlight, excerpt and word_wrap *Jeremy Walker*

* Templates without a handler extension now raises a deprecation warning but still
defaults to ERb. In future releases, it will simply return the template contents. *Steve Klabnik*

Expand Down
38 changes: 3 additions & 35 deletions actionpack/lib/action_view/helpers/text_helper.rb
Expand Up @@ -101,17 +101,7 @@ def truncate(text, options = {})
#
# highlight('You searched for: rails', 'rails', :highlighter => '<a href="search?q=\1">\1</a>')
# # => You searched for: <a href="search?q=rails">rails</a>
#
# You can still use <tt>highlight</tt> with the old API that accepts the
# +highlighter+ as its optional third parameter:
#
# highlight('You searched for: rails', 'rails', '<a href="search?q=\1">\1</a>')
# # => You searched for: <a href="search?q=rails">rails</a>
def highlight(text, phrases, *args)
options = args.extract_options!
unless args.empty?
options[:highlighter] = args[0]
end
def highlight(text, phrases, options = {})
options[:highlighter] ||= '<mark>\1</mark>'

text = sanitize(text) unless options[:sanitize] == false
Expand Down Expand Up @@ -143,20 +133,8 @@ def highlight(text, phrases, *args)
#
# excerpt('This is also an example', 'an', :radius => 8, :omission => '<chop> ')
# # => <chop> is also an example
#
# You can still use <tt>excerpt</tt> with the old API that accepts the
# +radius+ as its optional third and the +ellipsis+ as its
# optional forth parameter:
# excerpt('This is an example', 'an', 5) # => ...s is an exam...
# excerpt('This is also an example', 'an', 8, '<chop> ') # => <chop> is also an example
def excerpt(text, phrase, *args)
def excerpt(text, phrase, options = {})
return unless text && phrase

options = args.extract_options!
unless args.empty?
options[:radius] = args[0]
options[:omission] = args[1]
end
radius = options[:radius] || 100
omission = options[:omission] || "..."

Expand Down Expand Up @@ -206,17 +184,7 @@ def pluralize(count, singular, plural = nil)
#
# word_wrap('Once upon a time', :line_width => 1)
# # => Once\nupon\na\ntime
#
# You can still use <tt>word_wrap</tt> with the old API that accepts the
# +line_width+ as its optional second parameter:
#
# word_wrap('Once upon a time', 8)
# # => Once\nupon a\ntime
def word_wrap(text, *args)
options = args.extract_options!
unless args.blank?
options[:line_width] = args[0]
end
def word_wrap(text, options = {})
line_width = options[:line_width] || 80

text.split("\n").collect do |line|
Expand Down
56 changes: 22 additions & 34 deletions actionpack/test/template/text_helper_test.rb
Expand Up @@ -110,7 +110,7 @@ def test_highlight

assert_equal(
"This is a <b>beautiful</b> morning, but also a <b>beautiful</b> day",
highlight("This is a beautiful morning, but also a beautiful day", "beautiful", '<b>\1</b>')
highlight("This is a beautiful morning, but also a beautiful day", "beautiful", :highlighter => '<b>\1</b>')
)

assert_equal(
Expand Down Expand Up @@ -153,14 +153,7 @@ def test_highlight_with_regexp
end

def test_highlight_with_multiple_phrases_in_one_pass
assert_equal %(<em>wow</em> <em>em</em>), highlight('wow em', %w(wow em), '<em>\1</em>')
end

def test_highlight_with_options_hash
assert_equal(
"This is a <b>beautiful</b> morning, but also a <b>beautiful</b> day",
highlight("This is a beautiful morning, but also a beautiful day", "beautiful", :highlighter => '<b>\1</b>')
)
assert_equal %(<em>wow</em> <em>em</em>), highlight('wow em', %w(wow em), :highlighter => '<em>\1</em>')
end

def test_highlight_with_html
Expand Down Expand Up @@ -191,40 +184,39 @@ def test_highlight_with_html
end

def test_excerpt
assert_equal("...is a beautiful morn...", excerpt("This is a beautiful morning", "beautiful", 5))
assert_equal("This is a...", excerpt("This is a beautiful morning", "this", 5))
assert_equal("...iful morning", excerpt("This is a beautiful morning", "morning", 5))
assert_equal("...is a beautiful morn...", excerpt("This is a beautiful morning", "beautiful", :radius => 5))
assert_equal("This is a...", excerpt("This is a beautiful morning", "this", :radius => 5))
assert_equal("...iful morning", excerpt("This is a beautiful morning", "morning", :radius => 5))
assert_nil excerpt("This is a beautiful morning", "day")
end

def test_excerpt_should_not_be_html_safe
assert !excerpt('This is a beautiful! morning', 'beautiful', 5).html_safe?
assert !excerpt('This is a beautiful! morning', 'beautiful', :radius => 5).html_safe?
end

def test_excerpt_in_borderline_cases
assert_equal("", excerpt("", "", 0))
assert_equal("a", excerpt("a", "a", 0))
assert_equal("...b...", excerpt("abc", "b", 0))
assert_equal("abc", excerpt("abc", "b", 1))
assert_equal("abc...", excerpt("abcd", "b", 1))
assert_equal("...abc", excerpt("zabc", "b", 1))
assert_equal("...abc...", excerpt("zabcd", "b", 1))
assert_equal("zabcd", excerpt("zabcd", "b", 2))
assert_equal("", excerpt("", "", :radius => 0))
assert_equal("a", excerpt("a", "a", :radius => 0))
assert_equal("...b...", excerpt("abc", "b", :radius => 0))
assert_equal("abc", excerpt("abc", "b", :radius => 1))
assert_equal("abc...", excerpt("abcd", "b", :radius => 1))
assert_equal("...abc", excerpt("zabc", "b", :radius => 1))
assert_equal("...abc...", excerpt("zabcd", "b", :radius => 1))
assert_equal("zabcd", excerpt("zabcd", "b", :radius => 2))

# excerpt strips the resulting string before ap-/prepending excerpt_string.
# whether this behavior is meaningful when excerpt_string is not to be
# appended is questionable.
assert_equal("zabcd", excerpt(" zabcd ", "b", 4))
assert_equal("...abc...", excerpt("z abc d", "b", 1))
assert_equal("zabcd", excerpt(" zabcd ", "b", :radius => 4))
assert_equal("...abc...", excerpt("z abc d", "b", :radius => 1))
end

def test_excerpt_with_regex
assert_equal('...is a beautiful! mor...', excerpt('This is a beautiful! morning', 'beautiful', 5))
assert_equal('...is a beautiful? mor...', excerpt('This is a beautiful? morning', 'beautiful', 5))
assert_equal('...is a beautiful! mor...', excerpt('This is a beautiful! morning', 'beautiful', :radius => 5))
assert_equal('...is a beautiful? mor...', excerpt('This is a beautiful? morning', 'beautiful', :radius => 5))
end

def test_excerpt_with_options_hash
assert_equal("...is a beautiful morn...", excerpt("This is a beautiful morning", "beautiful", :radius => 5))
def test_excerpt_with_omission
assert_equal("[...]is a beautiful morn[...]", excerpt("This is a beautiful morning", "beautiful", :omission => "[...]",:radius => 5))
assert_equal(
"This is the ultimate supercalifragilisticexpialidoceous very looooooooooooooooooong looooooooooooong beautiful morning with amazing sunshine and awesome tempera[...]",
Expand All @@ -234,19 +226,15 @@ def test_excerpt_with_options_hash
end

def test_excerpt_with_utf8
assert_equal("...\357\254\203ciency could not be...".force_encoding('UTF-8'), excerpt("That's why e\357\254\203ciency could not be helped".force_encoding('UTF-8'), 'could', 8))
assert_equal("...\357\254\203ciency could not be...".force_encoding('UTF-8'), excerpt("That's why e\357\254\203ciency could not be helped".force_encoding('UTF-8'), 'could', :radius => 8))
end

def test_word_wrap
assert_equal("my very very\nvery long\nstring", word_wrap("my very very very long string", 15))
assert_equal("my very very\nvery long\nstring", word_wrap("my very very very long string", :line_width => 15))
end

def test_word_wrap_with_extra_newlines
assert_equal("my very very\nvery long\nstring\n\nwith another\nline", word_wrap("my very very very long string\n\nwith another line", 15))
end

def test_word_wrap_with_options_hash
assert_equal("my very very\nvery long\nstring", word_wrap("my very very very long string", :line_width => 15))
assert_equal("my very very\nvery long\nstring\n\nwith another\nline", word_wrap("my very very very long string\n\nwith another line", :line_width => 15))
end

def test_pluralization
Expand Down

0 comments on commit b23ac93

Please sign in to comment.