Sha256: 5cc4760489a830a7f4b7c35710ebf4479e74400aedaae05dcbc200b5f181f983
Contents?: true
Size: 931 Bytes
Versions: 5
Compression:
Stored size: 931 Bytes
Contents
require 'rubygems' require 'nokogiri' require 'time' module Atomic class Feed class << self def parse(data) feed = new doc = data.kind_of?(Nokogiri::XML::Element) ? data : Nokogiri.XML(data) feed_node = doc.xpath('//atom:feed', NAMESPACES).first feed.title = feed_node.xpath('atom:title', NAMESPACES).first.text feed.id = feed_node.xpath('atom:id', NAMESPACES).first.text feed_node.xpath('atom:entry', NAMESPACES).each do |entry_node| feed.entries << Entry.parse(entry_node) end feed end end attr_accessor :title, :id, :entries def initialize(params = {}) @title = params[:title] @id = params[:id] @entries = params[:entries] || [] end def to_hash { :title => @title, :id => @id, :entries => @entries.collect { |entry| entry.to_hash } } end end end
Version data entries
5 entries across 5 versions & 1 rubygems