Merge pull request #852 from avdi/avoid-exceptions-for-flow-control

Replace exceptions for flow control with idiomatic throw/catch
This commit is contained in:
Sam 2013-05-15 22:27:33 -07:00
commit 8b63c82f64

View File

@ -235,8 +235,6 @@ module PrettyText
class ExcerptParser < Nokogiri::XML::SAX::Document
class DoneException < StandardError; end
attr_reader :excerpt
def initialize(length,options)
@ -249,10 +247,8 @@ module PrettyText
def self.get_excerpt(html, length, options)
me = self.new(length,options)
parser = Nokogiri::HTML::SAX::Parser.new(me)
begin
catch(:done) do
parser.parse(html) unless html.nil?
rescue DoneException
# we are done
end
me.excerpt
end
@ -303,7 +299,7 @@ module PrettyText
@excerpt << encode.call(string[0..length]) if truncate
@excerpt << "&hellip;"
@excerpt << "</a>" if @in_a
raise DoneException.new
throw :done
end
@excerpt << encode.call(string)
@current_length += string.length if count_it