X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=app%2Fmodels%2Ffeed_item.rb;h=db0613da3827753d0ae08c5a77984926a8463974;hb=a3d41b1468861303edef7450ff1a7d5bc10dfbd6;hp=cf01358f8ee2b01e5361b4d664ceeb1ea760199c;hpb=1e6a24f1ced03fb5aad2e15d5975ded6fb5cfd34;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