From 996dc076e9ca61613f80fc79f0ffe667b14d1ebb Mon Sep 17 00:00:00 2001 From: nfagerlund Date: Thu, 26 May 2011 10:32:22 -0700 Subject: Maint: Fix ellipses for short descriptions Previously, we were adding ellipsis to any short_description, which was misleading; they were only necessary when we were truncating in the _middle_ of a paragraph. This commit changes the behavior, and updates the tests to show when we expect ellipsis. Paired-with: Matt Robinson --- lib/puppet/interface/documentation.rb | 6 ++++-- spec/shared_behaviours/documentation_on_faces.rb | 11 +++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/puppet/interface/documentation.rb b/lib/puppet/interface/documentation.rb index aedcc1c24..fcaec2568 100644 --- a/lib/puppet/interface/documentation.rb +++ b/lib/puppet/interface/documentation.rb @@ -77,8 +77,10 @@ class Puppet::Interface if @short_description.nil? then return nil if @description.nil? lines = @description.split("\n") - grab = [5, lines.index('') || 5].min - @short_description = lines[0, grab].join("\n") + ' [...]' + first_paragraph_break = lines.index('') || 5 + grab = [5, first_paragraph_break].min + @short_description = lines[0, grab].join("\n") + @short_description += ' [...]' if (grab < lines.length and first_paragraph_break >= 5) end @short_description end diff --git a/spec/shared_behaviours/documentation_on_faces.rb b/spec/shared_behaviours/documentation_on_faces.rb index 3cfb178f7..1106d4cca 100644 --- a/spec/shared_behaviours/documentation_on_faces.rb +++ b/spec/shared_behaviours/documentation_on_faces.rb @@ -109,11 +109,18 @@ shared_examples_for "documentation on faces" do subject.short_description.should == "hello\ngoodbye" end - it "should trim a very, very long first paragraph" do + it "should trim a very, very long first paragraph and add ellipsis" do line = "this is a very, very, very long long line full of text\n" subject.description = line * 20 + "\n\nwhatever, dude." - subject.short_description.should == (line * 5).chomp + subject.short_description.should == (line * 5).chomp + ' [...]' + end + + it "should trim a very very long only paragraph even if it is followed by a new paragraph" do + line = "this is a very, very, very long long line full of text\n" + subject.description = line * 20 + + subject.short_description.should == (line * 5).chomp + ' [...]' end end -- cgit