Sha256: 39320b591d6fc831755ff7861141a5f7fc6de9e3c2d359ae7218b6121cc2078f

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

module SodaXmlTeam

  require 'nokogiri'

  class News

    def self.parse_news(document={})

      output = []

      unless document.is_a? Nokogiri::XML::Document
        raise "Invalid XML news."
      end

      output = {}

      # Article meta data
      document.css('sports-content').each do |metadata|
        output[:title] = metadata.css('sports-title').first.content
        if !metadata.css('byline person').empty?
          output[:author] = metadata.css('byline person').first.content
        end
        output[:author_title] = metadata.css('byline byttl').first.content
        output[:headline] = metadata.css('article hedline hl1').first.content
        output[:abstract] = metadata.css('article abstract').first.content.gsub(/\n/, "").strip
      end

      # Article content
      document.xpath('/xts:sports-content-set/sports-content/article/nitf/body/body.content').each do |article_body|
        output[:body] = article_body.css('*').to_s.gsub(/\n/, "").strip
      end

      return output

    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
soda_xml_team-1.3.1 lib/soda_xml_team/news.rb
soda_xml_team-1.3.0 lib/soda_xml_team/news.rb
soda_xml_team-1.2.0 lib/soda_xml_team/news.rb
soda_xml_team-1.1.0 lib/soda_xml_team/news.rb