seibii/middleman-rss_items

View on GitHub
lib/middleman-rss_items.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'feedjira'
require 'middleman-core'
require 'net/http'

class MiddlemanRssItems < ::Middleman::Extension
  option :rss_resources, false, 'RSS resources to fetch'
  attr_reader :rss_items
  expose_to_template :rss_items

  def initialize(app, options_hash={}, &block)
    super

    @rss_items = {}
  end

  def after_configuration
    options.rss_resources.each do |resource|
      rss = Net::HTTP.get(URI.parse(resource[:url]))
      @rss_items[resource[:name] || resource[:url]] ||= Feedjira.parse(rss).entries
    end
  end
end

Middleman::Extensions.register :rss_items, MiddlemanRssItems