Strip trailing slashes from ScreeningUrl records

This commit is contained in:
Neil Lalonde 2013-09-17 10:25:45 -04:00
parent 6183e9bb6c
commit b15e629f46
2 changed files with 14 additions and 3 deletions

View File

@ -11,13 +11,16 @@ class ScreenedUrl < ActiveRecord::Base
default_action :do_nothing default_action :do_nothing
before_validation :strip_http before_validation :normalize
validates :url, presence: true, uniqueness: true validates :url, presence: true, uniqueness: true
validates :domain, presence: true validates :domain, presence: true
def strip_http def normalize
self.url.gsub!(/http(s?):\/\//i, '') if self.url
self.url.gsub!(/http(s?):\/\//i, '')
self.url.gsub!(/(\/)+$/, '') # trim trailing slashes
end
end end
def self.watch(url, domain, opts={}) def self.watch(url, domain, opts={})

View File

@ -21,6 +21,14 @@ describe ScreenedUrl do
described_class.create(valid_params.merge(url: url.gsub('http://', prefix))).url.should == url.gsub('http://', '') described_class.create(valid_params.merge(url: url.gsub('http://', prefix))).url.should == url.gsub('http://', '')
end end
end end
it "strips trailing slash" do
described_class.create(valid_params.merge(url: 'silverbullet.in/')).url.should == 'silverbullet.in'
end
it "strips trailing slashes" do
described_class.create(valid_params.merge(url: 'silverbullet.in/buy///')).url.should == 'silverbullet.in/buy'
end
end end
describe '#watch' do describe '#watch' do