From 19e03c707793fe56472612bd6d87e88932659b1c Mon Sep 17 00:00:00 2001 From: maxwell Date: Tue, 29 Jun 2010 12:33:00 -0700 Subject: [PATCH] person now has a url, and they cant add themselves any longer.... you need to add a url to your old development user, and we need to set it in the field --- app/models/friend.rb | 19 ------------------- app/models/person.rb | 25 ++++++++++++++++++++++--- app/models/user.rb | 9 +++------ spec/factories.rb | 2 +- spec/models/post_spec.rb | 2 +- 5 files changed, 27 insertions(+), 30 deletions(-) diff --git a/app/models/friend.rb b/app/models/friend.rb index d7809ac6c..e98971890 100644 --- a/app/models/friend.rb +++ b/app/models/friend.rb @@ -1,23 +1,4 @@ class Friend < Person - xml_accessor :url - key :url, String - - validates_presence_of :url - validates_format_of :url, :with => - /^(https?):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*(\.[a-z]{2,5})?(:[0-9]{1,5})?(\/.*)?$/ix - - #validate {self.url ! = User.first.url} - - before_validation :clean_url - - protected - - def clean_url - if self.url - self.url = 'http://' + self.url unless self.url.match('http://' || 'https://') - self.url = self.url + '/' if self.url[-1,1] != '/' - end - end end diff --git a/app/models/person.rb b/app/models/person.rb index 7428e9b5f..09e16d8dc 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -3,15 +3,34 @@ class Person include ROXML xml_accessor :email - + xml_accessor :url + key :email, String + key :url, String, :unique => true one :profile, :class_name => 'Profile', :foreign_key => :person_id many :posts, :class_name => 'Post', :foreign_key => :person_id + timestamps! + + validates_presence_of :url + validates_format_of :url, :with => + /^(https?):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*(\.[a-z]{2,5})?(:[0-9]{1,5})?(\/.*)?$/ix validates_presence_of :email - + + before_validation :clean_url + def real_name self.profile.first_name + " " + self.profile.last_name end -end + + protected + + def clean_url + self.url ||= "http://localhost:3000/" if self.class == User + if self.url + self.url = 'http://' + self.url unless self.url.match('http://' || 'https://') + self.url = self.url + '/' if self.url[-1,1] != '/' + end + end + end diff --git a/app/models/user.rb b/app/models/user.rb index 1751f15a1..6fdb5e4ea 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,14 +1,11 @@ class User < Person include MongoMapper::Document - - timestamps! - - # Include default devise modules. Others available are: - # :token_authenticatable, :confirmable, :lockable and :timeoutable + devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable - + + def comment(text, options = {}) raise "Comment on what, motherfucker?" unless options[:on] Comment.new(:person_id => self.id, :text => text, :post => options[:on]).save diff --git a/spec/factories.rb b/spec/factories.rb index b75cdbc92..37032592f 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -23,7 +23,7 @@ end Factory.define :friend do |f| f.email 'max@max.com' - f.url 'http://max.com/' + f.sequence(:url) {|n|"http://max#{n}.com/"} f.profile Profile.new( :first_name => "Robert", :last_name => "Grimm" ) end diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index 38d206ddd..b3df7552f 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -48,7 +48,7 @@ describe Post do describe "stream" do before do - @owner = Factory.create(:user, :email => "robert@grimm.com") + @owner = Factory.build(:user) @friend_one = Factory.create(:friend, :email => "some@dudes.com") @friend_two = Factory.create(:friend, :email => "other@dudes.com")