Class: FeedNotifier::FeedList

Inherits:
Object
  • Object
show all
Defined in:
lib/feed_notifier/feed.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ FeedList

Returns a new instance of FeedList.



7
8
9
# File 'lib/feed_notifier/feed.rb', line 7

def initialize(config)
  @config = config
end

Instance Method Details

#updated_entries(since = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/feed_notifier/feed.rb', line 15

def updated_entries(since={})
  unless (@last_feeds && @last_feeds.size > 0)
    FeedNotifier.logger.info "fetching urls for the first time.."
    @last_feeds = Feedzirra::Feed.fetch_and_parse(urls)
    return []
  end

  new_feeds = Feedzirra::Feed.fetch_and_parse(urls)

  new_entries = new_feeds.inject([]) { |entries,(url,feed)|
    last_feed = @last_feeds[url]
    if last_feed
      unless last_feed.respond_to?(:feed_url)
        FeedNotifier.logger.warn "feed object for #{url} isn't valid. #{last_feed}"
        next entries
      end

      last_feed.update_from_feed(feed)
      FeedNotifier.logger.debug "updates for #{url} ... #{last_feed.new_entries}"
      next entries + last_feed.new_entries
    end
    entries
  }

  @last_feeds = new_feeds
  return new_entries
end

#urlsObject



11
12
13
# File 'lib/feed_notifier/feed.rb', line 11

def urls
  @urls ||= @config.feed_urls
end