From f9f7f0fcc7b57672936d3982eab8e2a8fd667df3 Mon Sep 17 00:00:00 2001 From: maxwell Date: Mon, 12 Jul 2010 12:33:31 -0700 Subject: [PATCH] DG MS; request makes sure http:// and an ending slash is present on a new request link --- app/models/bookmark.rb | 2 +- app/models/request.rb | 14 ++++++++++++++ app/models/retraction.rb | 1 - spec/lib/parser_spec.rb | 4 ---- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/models/bookmark.rb b/app/models/bookmark.rb index 3df470a39..340643716 100644 --- a/app/models/bookmark.rb +++ b/app/models/bookmark.rb @@ -18,7 +18,7 @@ class Bookmark < Post def clean_link if self.link - self.link = 'http://' + self.link unless self.link.match('http://' || 'https://') + self.link = 'http://' + self.link unless self.link.match('https?://') self.link = self.link + '/' if self.link[-1,1] != '/' end end diff --git a/app/models/request.rb b/app/models/request.rb index 95623d9a8..f59c57d37 100644 --- a/app/models/request.rb +++ b/app/models/request.rb @@ -17,6 +17,11 @@ class Request validates_presence_of :destination_url, :callback_url + #validates_format_of :destination_url, :with => + #/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix + + before_validation :clean_link + scope :for_user, lambda{ |user| where(:destination_url => user.url) } scope :from_user, lambda{ |user| where(:destination_url.ne => user.url) } @@ -30,5 +35,14 @@ class Request p.active = true p.save end + + protected + + def clean_link + if self.destination_url + self.destination_url = 'http://' + self.destination_url unless self.destination_url.match('https?://') + self.destination_url = self.destination_url + '/' if self.destination_url[-1,1] != '/' + end + end end diff --git a/app/models/retraction.rb b/app/models/retraction.rb index 538f89513..2e9a29f77 100644 --- a/app/models/retraction.rb +++ b/app/models/retraction.rb @@ -19,7 +19,6 @@ class Retraction attr_accessor :type def perform - puts self.inspect self.type.constantize.destroy(self.post_id) end diff --git a/spec/lib/parser_spec.rb b/spec/lib/parser_spec.rb index 92673e06c..c6650fb75 100644 --- a/spec/lib/parser_spec.rb +++ b/spec/lib/parser_spec.rb @@ -144,12 +144,8 @@ describe "parser in application helper" do it 'should marshal a retraction for a person' do retraction = Retraction.for(@user) - request = Retraction.build_xml_for( [retraction] ) - - puts request.inspect - Person.count.should == 2 store_objects_from_xml( request ) Person.count.should == 1