Module: SourceMonitor::FeedjiraExtensions

Defined in:
lib/source_monitor/feedjira_extensions.rb

Defined Under Namespace

Modules: RSSAuthorCapture Classes: AtomAuthor, AtomLink, Enclosure, MediaContent, MediaThumbnail

Class Method Summary collapse

Class Method Details

.apply!Object



56
57
58
59
60
61
62
63
# File 'lib/source_monitor/feedjira_extensions.rb', line 56

def apply!
  return if @applied

  extend_rss_entry
  extend_atom_entry

  @applied = true
end

.extend_atom_entryObject



82
83
84
85
86
87
88
89
# File 'lib/source_monitor/feedjira_extensions.rb', line 82

def extend_atom_entry
  Feedjira::Parser::AtomEntry.elements :author,
    as: :author_nodes,
    class: AtomAuthor
  Feedjira::Parser::AtomEntry.elements :link,
    as: :link_nodes,
    class: AtomLink
end

.extend_rss_entryObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/source_monitor/feedjira_extensions.rb', line 65

def extend_rss_entry
  Feedjira::Parser::RSSEntry.element :"media:keywords", as: :media_keywords_raw
  Feedjira::Parser::RSSEntry.element :"itunes:keywords", as: :itunes_keywords_raw
  Feedjira::Parser::RSSEntry.element :"slash:comments", as: :slash_comments_raw
  Feedjira::Parser::RSSEntry.elements :"media:thumbnail",
    as: :media_thumbnail_nodes,
    class: MediaThumbnail
  Feedjira::Parser::RSSEntry.elements :"media:content",
    as: :media_content_nodes,
    class: MediaContent
  Feedjira::Parser::RSSEntry.elements :enclosure,
    as: :enclosure_nodes,
    class: Enclosure

  Feedjira::Parser::RSSEntry.prepend(RSSAuthorCapture)
end