lib/feedjira/parser/itunes_rss_item.rb in feedjira-2.0.0 vs lib/feedjira/parser/itunes_rss_item.rb in feedjira-2.1.0

- old
+ new

@@ -1,36 +1,44 @@ module Feedjira - module Parser # iTunes extensions to the standard RSS2.0 item # Source: http://www.apple.com/itunes/whatson/podcasts/specs.html class ITunesRSSItem include SAXMachine include FeedEntryUtilities element :author - element :guid, :as => :entry_id + element :guid, as: :entry_id element :title - element :link, :as => :url - element :description, :as => :summary - element :"content:encoded", :as => :content - element :pubDate, :as => :published + element :link, as: :url + element :description, as: :summary + element :"content:encoded", as: :content + element :pubDate, as: :published # If author is not present use author tag on the item - element :"itunes:author", :as => :itunes_author - element :"itunes:block", :as => :itunes_block - element :"itunes:duration", :as => :itunes_duration - element :"itunes:explicit", :as => :itunes_explicit - element :"itunes:keywords", :as => :itunes_keywords - element :"itunes:subtitle", :as => :itunes_subtitle - element :"itunes:image", :value => :href, :as => :itunes_image - element :"itunes:isClosedCaptioned", :as => :itunes_closed_captioned - element :"itunes:order", :as => :itunes_order + element :"itunes:author", as: :itunes_author + element :"itunes:block", as: :itunes_block + element :"itunes:duration", as: :itunes_duration + element :"itunes:explicit", as: :itunes_explicit + element :"itunes:keywords", as: :itunes_keywords + element :"itunes:subtitle", as: :itunes_subtitle + element :"itunes:image", value: :href, as: :itunes_image + element :"itunes:isClosedCaptioned", as: :itunes_closed_captioned + element :"itunes:order", as: :itunes_order + # If summary is not present, use the description tag - element :"itunes:summary", :as => :itunes_summary - element :enclosure, :value => :length, :as => :enclosure_length - element :enclosure, :value => :type, :as => :enclosure_type - element :enclosure, :value => :url, :as => :enclosure_url + element :"itunes:summary", as: :itunes_summary + element :enclosure, value: :length, as: :enclosure_length + element :enclosure, value: :type, as: :enclosure_type + element :enclosure, value: :url, as: :enclosure_url + elements 'psc:chapter', as: :raw_chapters, class: Feedjira::Parser::PodloveChapter # rubocop:disable Metrics/LineLength + + # Podlove requires clients to re-order by start time in the + # event the publisher doesn't provide them in that + # order. SAXMachine doesn't have any sort capability afaik, so + # we have to sort chapters manually. + def chapters + raw_chapters.sort_by(&:start) + end end end - end