From 2ab03d08ebbce1fc7c04c0ed823180b1d75f1a1f Mon Sep 17 00:00:00 2001 From: Larissa Reis Date: Wed, 24 Oct 2012 13:17:46 -0200 Subject: [PATCH] Fixes delayed feed fetch after change address --- app/models/external_feed.rb | 6 ++++++ test/unit/external_feed_test.rb | 11 +++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/app/models/external_feed.rb b/app/models/external_feed.rb index c9021ea..15ead62 100644 --- a/app/models/external_feed.rb +++ b/app/models/external_feed.rb @@ -19,9 +19,15 @@ class ExternalFeed < ActiveRecord::Base article.valid? end + def address=(new_address) + self.fetched_at = nil unless address == new_address + super(new_address) + end + def clear # do nothing end + def finish_fetch if self.only_once && self.update_errors.zero? self.enabled = false diff --git a/test/unit/external_feed_test.rb b/test/unit/external_feed_test.rb index 5edb19e..61efe42 100644 --- a/test/unit/external_feed_test.rb +++ b/test/unit/external_feed_test.rb @@ -83,6 +83,7 @@ class ExternalFeedTest < ActiveSupport::TestCase should 'have empty fetch date by default' do assert_nil ExternalFeed.new.fetched_at end + should 'set fetch date when finishing fetch' do feed = ExternalFeed.new feed.stubs(:save!) @@ -90,6 +91,16 @@ class ExternalFeedTest < ActiveSupport::TestCase assert_not_nil feed.fetched_at end + should 'have empty fetch when change address' do + feed = ExternalFeed.new + feed.stubs(:save!) + feed.address = 'http://localhost/example_feed' + feed.finish_fetch + assert_not_nil feed.fetched_at + feed.address = 'http://localhost/other_example_feed' + assert_nil feed.fetched_at + end + should 'expire feeds after a certain period' do # save current time now = Time.now -- libgit2 0.21.2