feedjira/feedjira

View on GitHub
lib/feedjira/rss_entry_utilities.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Feedjira
  module RSSEntryUtilities
    def self.included(mod)
      mod.class_exec do
        element :title

        element :"content:encoded", as: :content
        element :"a10:content", as: :content
        element :description, as: :summary

        element :link, as: :url
        element :"a10:link", as: :url, value: :href

        element :author
        element :"dc:creator", as: :author
        element :"a10:name", as: :author

        element :pubDate, as: :published
        element :pubdate, as: :published
        element :issued, as: :published
        element :"dc:date", as: :published
        element :"dc:Date", as: :published
        element :"dcterms:created", as: :published

        element :"dcterms:modified", as: :updated
        element :"a10:updated", as: :updated

        element :guid, as: :entry_id, class: Feedjira::Parser::GloballyUniqueIdentifier
        element :"dc:identifier", as: :dc_identifier

        element :"media:thumbnail", as: :image, value: :url
        element :"media:content", as: :image, value: :url
        element :enclosure, as: :image, value: :url

        elements :category, as: :categories
      end
    end

    def entry_id
      @entry_id&.guid
    end

    def url
      @url || @entry_id&.url
    end

    def id
      entry_id || @dc_identifier || @url
    end
  end
end