Merged updates from trunk into stable branch
[feedcatcher.git] / app / models / feed_item.rb
index 75830a53f1f58287626fec37b24104aea36d4919..f18374f42fa66027a85e18eafd37c34a8db551dc 100644 (file)
@@ -3,17 +3,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
 
-private
+  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'
+    unless FeedItem.valid_feed_name?(feed_name)
       errors.add(:feed_name, 'is an invalid feed name')
     end
   end