Class: MediumExtension

Inherits:
Middleman::Extension
  • Object
show all
Defined in:
lib/middleman-medium/extension.rb

Overview

Extension namespace

Instance Method Summary collapse

Constructor Details

#initialize(app, options_hash = {}, &block) ⇒ MediumExtension

Returns a new instance of MediumExtension.



9
10
11
12
13
# File 'lib/middleman-medium/extension.rb', line 9

def initialize(app, options_hash={}, &block)
  super
  require 'rss'
  require 'nokogiri'
end

Instance Method Details

#fetch_medium_postsObject



15
16
17
# File 'lib/middleman-medium/extension.rb', line 15

def fetch_medium_posts
  medium_rss_parser(open(options.source).read)
end

#medium_rss_parser(feed) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/middleman-medium/extension.rb', line 19

def medium_rss_parser(feed)
  posts = []
  rss = RSS::Parser.parse(feed, false).items
  rss.each do |item|
    posts.push(rss_item_to_hash(item))
  end
  posts
end

#rss_item_to_hash(item) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/middleman-medium/extension.rb', line 28

def rss_item_to_hash(item)
  document = Nokogiri::HTML.fragment(item.content_encoded)
  {
    title: item.title,
    date: item.pubDate,
    url: item.link,
    category: item&.category&.content,
    img: document&.search('img')&.first['src']
  }
end