diff --git a/app/models/person.rb b/app/models/person.rb new file mode 100644 index 000000000..399dbb394 --- /dev/null +++ b/app/models/person.rb @@ -0,0 +1,15 @@ +class Person + include Mongoid::Document + include ROXML + + xml_accessor :email + xml_accessor :real_name + + field :email + field :real_name + + has_many_related :posts + + validates_presence_of :email, :real_name + +end diff --git a/app/models/post.rb b/app/models/post.rb index 04cccc690..9dc312309 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -17,6 +17,10 @@ class Post field :source field :snippet + + belongs_to_related :person + + before_create :set_defaults after_save :send_to_view @@ -50,6 +54,7 @@ class Post self.owner ||= user_email self.source ||= user_email self.snippet ||= user_email + self.person ||= User.first end end diff --git a/app/views/status_messages/_status_message.html.haml b/app/views/status_messages/_status_message.html.haml index bfe97c678..1484b2d9e 100644 --- a/app/views/status_messages/_status_message.html.haml +++ b/app/views/status_messages/_status_message.html.haml @@ -1,6 +1,6 @@ %li.message{:class => ("mine" if mine?(post))} %span.from - = link_to post.owner, "#" + = link_to post.person.real_name, "#" = post.message %div.time = "#{time_ago_in_words(post.updated_at)} ago" diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index 7bc28571f..61bd5efbc 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -5,12 +5,14 @@ describe Post do Factory.create(:user, :email => "bob@aol.com") end - describe 'defaults' do before do WebSocket.stub!(:update_clients) - @post = Factory.create(:post, :owner => nil, :source => nil, :snippet => nil) + @post = Factory.create(:post, :person => nil, :owner => nil, :source => nil, :snippet => nil) + end + it "should associate the owner if none is present" do + @post.person.should == User.first end it "should add an owner if none is present" do