Updated README.rdoc again
[feedcatcher.git] / app / models / feed_item.rb
index ce5b8c6c05e674dd46de604e79797cfdad41d305..f18374f42fa66027a85e18eafd37c34a8db551dc 100644 (file)
@@ -1,19 +1,24 @@
 class FeedItem < ActiveRecord::Base
 
-  require 'cgi' # needed for url decoding
+  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 url_encode(feed_name) != feed_name or
-        CGI::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