X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=app%2Fmodels%2Ffeed_item.rb;h=db0613da3827753d0ae08c5a77984926a8463974;hb=a3d41b1468861303edef7450ff1a7d5bc10dfbd6;hp=d875a8aa3bac6531e0c9d42dcfee0c2c1e44ff0c;hpb=02c0b78c15c33baab16d70467a05e1a024d7d80d;p=feedcatcher.git diff --git a/app/models/feed_item.rb b/app/models/feed_item.rb index d875a8a..db0613d 100644 --- a/app/models/feed_item.rb +++ b/app/models/feed_item.rb @@ -1,2 +1,22 @@ class FeedItem < ActiveRecord::Base + validates_presence_of :feed_name, :title, :description + validates_uniqueness_of :title, :scope => :feed_name + validate :feed_name_must_be_legal + + 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 + unless FeedItem.valid_feed_name?(feed_name) + errors.add(:feed_name, 'is invalid') + end + end end