X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=app%2Fmodels%2Ffeed_item.rb;h=db0613da3827753d0ae08c5a77984926a8463974;hb=a3d41b1468861303edef7450ff1a7d5bc10dfbd6;hp=cf01358f8ee2b01e5361b4d664ceeb1ea760199c;hpb=40e34b3d2aea86f7d1411b10dcda928d7115ad08;p=feedcatcher.git

diff --git a/app/models/feed_item.rb b/app/models/feed_item.rb
index cf01358..db0613d 100644
--- a/app/models/feed_item.rb
+++ b/app/models/feed_item.rb
@@ -1,21 +1,22 @@
 class FeedItem < ActiveRecord::Base
-
-  # require 'cgi' # needed for url decoding
-
   validates_presence_of :feed_name, :title, :description
+  validates_uniqueness_of :title, :scope => :feed_name
   validate :feed_name_must_be_legal
 
-protected
+  def FeedItem.valid_feed_name?(feed_name)
+    Rack::Utils::escape(feed_name) == feed_name and
+      Rack::Utils::unescape(feed_name) == feed_name and
+      feed_name != 'index' and
+      feed_name != 'show' and
+      feed_name != 'update' and
+      feed_name != 'action'
+  end
+
+  private
 
   def feed_name_must_be_legal
-    if Rack::Utils::escape(feed_name) != feed_name or
-        Rack::Utils::unescape(feed_name) != feed_name or
-        feed_name == 'index' or
-        feed_name == 'show' or
-        feed_name == 'update' or
-        feed_name == 'action'
-      errors.add(:feed_name, 'is an invalid feed name')
+    unless FeedItem.valid_feed_name?(feed_name)
+      errors.add(:feed_name, 'is invalid')
     end
   end
-
 end