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