Sha256: 6e5a89c7085f5de7e3c3d670ef069a06ef515e07f6ecd1ba833f039f2e31b93b

Contents?: true

Size: 1.66 KB

Versions: 25

Compression:

Stored size: 1.66 KB

Contents

module Feedzirra

  module Parser
    # iTunes is RSS 2.0 + some apple extensions
    # Source: http://www.apple.com/itunes/whatson/podcasts/specs.html
    class ITunesRSS
      include SAXMachine
      include FeedUtilities

      attr_accessor :feed_url

      # RSS 2.0 elements that need including
      element :copyright
      element :description
      element :language
      element :managingEditor
      element :title
      element :link, :as => :url

      # If author is not present use managingEditor on the channel
      element :"itunes:author", :as => :itunes_author
      element :"itunes:block", :as => :itunes_block
      element :"itunes:image", :value => :href, :as => :itunes_image
      element :"itunes:explicit", :as => :itunes_explicit
      element :"itunes:keywords", :as => :itunes_keywords
      # New URL for the podcast feed
      element :"itunes:new-feed-url", :as => :itunes_new_feed_url
      element :"itunes:subtitle", :as => :itunes_subtitle
      # If summary is not present, use the description tag
      element :"itunes:summary", :as => :itunes_summary

      # iTunes RSS feeds can have multiple main categories...
      # ...and multiple sub-categories per category
      # TODO subcategories not supported correctly - they are at the same level
      #   as the main categories
      elements :"itunes:category", :as => :itunes_categories, :value => :text

      elements :"itunes:owner", :as => :itunes_owners, :class => ITunesRSSOwner

      elements :item, :as => :entries, :class => ITunesRSSItem

      def self.able_to_parse?(xml)
        /xmlns:itunes=\"http:\/\/www.itunes.com\/dtds\/podcast-1.0.dtd\"/i =~ xml
      end

    end

  end

end

Version data entries

25 entries across 25 versions & 6 rubygems

Version Path
feedzirra-0.4.0 lib/feedzirra/parser/itunes_rss.rb
feedzirra-0.3.0 lib/feedzirra/parser/itunes_rss.rb
feedzirra-0.2.2 lib/feedzirra/parser/itunes_rss.rb
feedzirra-0.2.1 lib/feedzirra/parser/itunes_rss.rb
codders-feedzirra-0.2.0.rc2 lib/feedzirra/parser/itunes_rss.rb
feedzirra-0.2.0.rc2 lib/feedzirra/parser/itunes_rss.rb
feedzirra-0.2.0.rc1 lib/feedzirra/parser/itunes_rss.rb
fandango-0.2.1 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
jashmenn-feedzirra-0.1.3 lib/feedzirra/parser/itunes_rss.rb
fandango-0.2.0 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
fandango-0.1.9 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
feedzirra-0.1.3 lib/feedzirra/parser/itunes_rss.rb
fandango-0.1.8 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
fandango-0.1.7 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
fandango-0.1.6 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
fandango-0.1.5 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
feedzirra-0.1.2 lib/feedzirra/parser/itunes_rss.rb
fandango-0.1.4 lib/vendor/feedzirra/lib/feedzirra/parser/itunes_rss.rb
seanwalbran-feedzirra-0.1.3 lib/feedzirra/parser/itunes_rss.rb
seanwalbran-feedzirra-0.1.2 lib/feedzirra/parser/itunes_rss.rb