From 0513d02e23a5fbd7dff3dfe50d36fe570b2b478d Mon Sep 17 00:00:00 2001 From: David McClure Date: Wed, 3 Sep 2014 00:12:56 -0700 Subject: [PATCH] FEATURE: Allow manual excerpt to be defined past the beginning of the post There is still a limitation that the span excerpt must begin before the post_excerpt_max_length. --- lib/excerpt_parser.rb | 2 ++ spec/components/pretty_text_spec.rb | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/excerpt_parser.rb b/lib/excerpt_parser.rb index 03485ad812e..af38f8635db 100644 --- a/lib/excerpt_parser.rb +++ b/lib/excerpt_parser.rb @@ -63,6 +63,8 @@ class ExcerptParser < Nokogiri::XML::SAX::Document when "div", "span" if attributes.include?(["class", "excerpt"]) + @excerpt = "" + @current_length = 0 @start_excerpt = true end # Preserve spoilers diff --git a/spec/components/pretty_text_spec.rb b/spec/components/pretty_text_spec.rb index 4becd6eb60c..51ebd41ac43 100644 --- a/spec/components/pretty_text_spec.rb +++ b/spec/components/pretty_text_spec.rb @@ -190,12 +190,22 @@ describe PrettyText do PrettyText.excerpt(nil,100).should == '' end - it "handles span excerpt" do + it "handles span excerpt at the beginning of a post" do PrettyText.excerpt("hi test",100).should == 'hi' post = Fabricate(:post, raw: "hi test") post.excerpt.should == "hi" end + it "handles span excerpt that starts before the max length" do + text = "123456789 123456789 12345679 123456789 123456789 " + + "as long as span starts before max length of the " + + "the specified excerpt" + + "of the post will be used" + PrettyText.excerpt(text, 100).should == 'the specified excerpt' + post = Fabricate(:post, raw: text) + post.excerpt.should == 'the specified excerpt' + end + end describe "strip links" do