PraggerでAtom等RSS以外のfeedも読み込めるようにした - Feed::load

PraggerはなぜかRSSしか対応していないのでfeedtoolsで他のfeedも読み込めるようにしてみた。本家統合希望。

## Load feeds(RSS, Atom, etc) from given URLs -- rubikitch
## 
## Load any kind of feeds from given URLs.
## If URL is an Array, all URLs in the array will be loaded.
## You must install feedtools by "gem install feedtools".
##
## - module: Feed::load
##   config:
##     url: http://www.example.com/hoge.rdf

require 'rubygems'
require 'feed_tools'

# For compatibility
class FeedTools::FeedItem
  alias :date :time
end

def load(config, data)
  begin
    urls = Array === config['url'] ? [ config['url'] ] : config['url']
    feeds = urls.map {|url| FeedTools::Feed.open(url) }
  rescue
    puts "LoadError File = #{config["url"]}"
    return []
  end
  feeds.compact.inject([]) {|acc,f| acc.concat f.items }
end