lib/feedzirra/parser/rss.rb in rubylibre-feedzirra-0.0.14 vs lib/feedzirra/parser/rss.rb in rubylibre-feedzirra-0.0.23

- old
+ new

@@ -1,28 +1,83 @@ +require File.dirname(__FILE__) + '/mrss_credit' +require File.dirname(__FILE__) + '/mrss_restriction' +require File.dirname(__FILE__) + '/mrss_category' +require File.dirname(__FILE__) + '/mrss_copyright' +require File.dirname(__FILE__) + '/mrss_hash' +require File.dirname(__FILE__) + '/mrss_player' +require File.dirname(__FILE__) + '/mrss_rating' +require File.dirname(__FILE__) + '/mrss_restriction' +require File.dirname(__FILE__) + '/mrss_text' +require File.dirname(__FILE__) + '/mrss_thumbnail' + module Feedzirra - module Parser # == Summary # Parser for dealing with RSS feeds. # - # == Attributes - # * title - # * feed_url - # * url - # * entries class RSS include SAXMachine include FeedUtilities + + attr_accessor :feed_url + + # RSS 2.0 required elements element :title element :link, :as => :url + element :description elements :item, :as => :entries, :class => RSSEntry - attr_accessor :feed_url + # RSS 2.0 optional elements + element :language + element :copyright + element :managingEditor + element :webMaster + element :pubDate + element :lastBuildDate + element :category + element :generator + element :docs + element :cloud + element :ttl + element :image, :class => RSSImage + element :rating + element :textInput + element :skipHours + element :skipDays + # iTunes + element :'itunes:author', :as => :author + element :'itunes:block', :as => :itunes_block + element :'itunes:image', :as => :image, :value => :href + element :'itunes:explicit', :as => :explicit + element :'itunes:keywords', :as => :keywords + element :'itunes:new-feed-url', :as => :feed_url + element :'itunes:name', :as => :owner_name + element :'itunes:email', :as => :owner_email + element :'itunes:subtitle', :as => :subtitle + element :'itunes:summary', :as => :summary + + elements :'itunes:category', :as => :categories, :value => :text + # elements :'itunes:category', :as => :itunes_categories, + # :class => ITunesCategory + + # MediaRSS support + element :'media:title', :as => :media_title + element :'media:keywords', :as => :media_keywords + element :'media:description', :as => :media_description + + element :'media:thumbnail', :as => :media_thumbnail, :class => MRSSThumbnail + element :'media:rating', :as => :rating, :class => MRSSRating + element :'media:category', :as => :media_category, :class => MRSSCategory + element :'media:hash', :as => :media_hash, :class => MRSSHash + element :'media:player', :as => :media_player, :class => MRSSPlayer + elements :'media:credit', :as => :credits, :class => MRSSCredit + element :'media:copyright', :as => :copyright, :class => MRSSCopyright + element :'media:restriction', :as => :media_restriction, :class => MRSSRestriction + element :'media:text', :as => :text, :class => MRSSText + def self.able_to_parse?(xml) #:nodoc: xml =~ /\<rss|rdf/ end end - end - end \ No newline at end of file