class RssNotifier::Models::Feed
Public Instance Methods
changed?()
click to toggle source
# File lib/rss_notifier/models/feed.rb, line 33 def changed? !updated_at || items.any?(&:changed?) end
find_or_create_item(link:)
click to toggle source
@return [RssNotifier::Models::Item]
# File lib/rss_notifier/models/feed.rb, line 20 def find_or_create_item(link:) item = items.detect { |i| i.link.to_s.strip == link.to_s.strip } unless item item = RssNotifier::Models::Item.new(feed_url: self.url, link: link) self.items << item end item end
save()
click to toggle source
# File lib/rss_notifier/models/feed.rb, line 37 def save items.each do |item| item.updated_at = Time.now end self.updated_at = Time.now store.transaction do store["feeds"] ||= {} store["feeds"][url] = self.to_db_object end end
store()
click to toggle source
# File lib/rss_notifier/models/feed.rb, line 29 def store @store ||= RssNotifier::Db.default.store end
to_db_object()
click to toggle source
# File lib/rss_notifier/models/feed.rb, line 49 def to_db_object { 'url' => url, 'name' => name, 'updated_at' => updated_at, 'last_modified' => last_modified, 'items' => items.map(&:to_db_object), } end