Sha256: 71af415e6c9eca7f8e30cc070e57d61f055a194b620a04ea975e7b62cc1e5071
Contents?: true
Size: 1.18 KB
Versions: 5
Compression:
Stored size: 1.18 KB
Contents
require "rss" module Feedcellar class Feed attr_reader :title, :link, :description, :date def initialize(title, link, description, date) @title = title @link = link @description = description @date = date end def self.parse(feed_url) feeds = [] begin rss = RSS::Parser.parse(feed_url) rescue RSS::InvalidRSSError begin rss = RSS::Parser.parse(feed_url, false) rescue $stderr.puts "WARNING: #{$!} (#{feed_url})" return nil end rescue $stderr.puts "WARNING: #{$!} (#{feed_url})" return nil end return nil unless rss rss.items.each do |item| if rss.is_a?(RSS::Atom::Feed) title = item.title.content link = item.link.href if item.link description = item.summary.content if item.summary date = item.updated.content if item.updated else title = item.title link = item.link description = item.description date = item.date end next unless link feeds << new(title, link, description, date) end feeds end end end
Version data entries
5 entries across 5 versions & 1 rubygems