class Dropdown::Parsers::ExcerptExtractor

Public Instance Methods

extract() click to toggle source
# File lib/dropdown/parsers/excerpt_extractor.rb, line 8
def extract
  @results = ''
  doc = Nokogiri::HTML.parse(@content)
  process_element doc
  @results.chomp
end

Private Instance Methods

process_element(element) click to toggle source
# File lib/dropdown/parsers/excerpt_extractor.rb, line 17
def process_element(element)
  if element.text?
    @results << element.text.gsub(/\n/, '')
  else
    unless element.description.nil?
      # save the seperator for later
      seperator = element.description.block? ? "\n" : ""
    end
  end

  element.children.map { |el| process_element(el) }

  # Display a seperator if we are done processing the children
  if !element.children.empty? &&
     !seperator.nil? &&
     !['html', 'body'].include?(element.name)
    @results << seperator unless seperator.nil?
  end
end