RS, IZ, Merged from master
This commit is contained in:
commit
81157190ac
9 changed files with 96 additions and 30 deletions
|
|
@ -59,4 +59,20 @@ module ApplicationHelper
|
||||||
def how_long_ago(obj)
|
def how_long_ago(obj)
|
||||||
time_ago_in_words(obj.created_at) + " ago."
|
time_ago_in_words(obj.created_at) + " ago."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def person_url(person)
|
||||||
|
case person.class.to_s
|
||||||
|
when "Friend"
|
||||||
|
friend_path(person)
|
||||||
|
when "User"
|
||||||
|
user_path(person)
|
||||||
|
else
|
||||||
|
"#"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def link_to_person(person)
|
||||||
|
link_to person.real_name, person_url(person)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
%li.message{:class => ("mine" if mine?(post))}
|
%li.message{:class => ("mine" if mine?(post))}
|
||||||
%span.from
|
%span.from
|
||||||
= link_to post.person.real_name, "#"
|
= link_to_person post.person
|
||||||
%b wrote a new blog post
|
%b wrote a new blog post
|
||||||
%br
|
%br
|
||||||
%b= post.title
|
%b= post.title
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
%li.message{:class => ("mine" if mine?(post))}
|
%li.message{:class => ("mine" if mine?(post))}
|
||||||
%span.from
|
%span.from
|
||||||
= link_to post.person.email, "#"
|
= link_to_person post.person
|
||||||
%b shared a link
|
%b shared a link
|
||||||
%br
|
%br
|
||||||
= post.title
|
= post.title
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,11 @@
|
||||||
- title "Friend"
|
%h1= "#{@friend.real_name}'s network stream"
|
||||||
|
|
||||||
%p
|
|
||||||
%strong Real Name:
|
|
||||||
= @friend.real_name
|
|
||||||
%p
|
|
||||||
%strong Email:
|
|
||||||
= @friend.email
|
|
||||||
%p
|
|
||||||
%strong Url:
|
|
||||||
= @friend.url
|
|
||||||
|
|
||||||
%p
|
|
||||||
= link_to "Destroy", @friend, :confirm => 'Are you sure?', :method => :delete
|
|
||||||
|
|
- if @friend.posts
|
||||||
= link_to "View All", friends_path
|
%ul#stream
|
||||||
|
- for post in @friend.posts
|
||||||
|
= render type_partial(post), :post => post
|
||||||
|
- else
|
||||||
|
%h3 no posts to display!
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
%li.message{:class => ("mine" if mine?(post))}
|
%li.message{:class => ("mine" if mine?(post))}
|
||||||
%span.from
|
%span.from
|
||||||
= link_to post.person.real_name, "#"
|
= link_to_person post.person
|
||||||
= post.message
|
= post.message
|
||||||
%div.time
|
%div.time
|
||||||
= "#{time_ago_in_words(post.updated_at)} ago"
|
= "#{time_ago_in_words(post.updated_at)} ago"
|
||||||
|
|
|
||||||
1
app/views/users/show.html.haml
Normal file
1
app/views/users/show.html.haml
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
%h1 user page!
|
||||||
|
|
@ -5,6 +5,7 @@ describe FriendsController do
|
||||||
before do
|
before do
|
||||||
#TODO(dan) Mocking Warden; this is a temp fix
|
#TODO(dan) Mocking Warden; this is a temp fix
|
||||||
request.env['warden'] = mock_model(Warden, :authenticate? => @user, :authenticate! => @user)
|
request.env['warden'] = mock_model(Warden, :authenticate? => @user, :authenticate! => @user)
|
||||||
|
Factory.create(:user)
|
||||||
@friend = Factory.build(:friend)
|
@friend = Factory.build(:friend)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -48,5 +49,12 @@ describe FriendsController do
|
||||||
|
|
||||||
it 'should have test that a delete removes a friend from the database' do
|
it 'should have test that a delete removes a friend from the database' do
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should display a list of a friends posts on their page' do
|
||||||
|
friend = Factory.create(:friend)
|
||||||
|
@status_message = Factory.create(:status_message, :person => friend)
|
||||||
|
get :show, :id => friend.id
|
||||||
|
response.body.should include @status_message.message
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
28
spec/helpers/application_helper_spec.rb
Normal file
28
spec/helpers/application_helper_spec.rb
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
require File.dirname(__FILE__) + '/../spec_helper'
|
||||||
|
|
||||||
|
include ApplicationHelper
|
||||||
|
|
||||||
|
describe ApplicationHelper do
|
||||||
|
before do
|
||||||
|
@user = Factory.create(:user, :email => "robert@grimm.com")
|
||||||
|
@friend = Factory.create(:friend)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should specifiy if a post is not owned user" do
|
||||||
|
p = Factory.create(:post, :person => @friend)
|
||||||
|
mine?(p).should be false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should specifiy if a post is owned current user" do
|
||||||
|
p = Factory.create(:post, :person => @user)
|
||||||
|
mine?(p).should be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should provide a correct show path for a given friend" do
|
||||||
|
person_url(@friend).should == "/friends/#{@friend.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should provide a correct show path for a given user" do
|
||||||
|
person_url(@user).should == "/users/#{@user.id}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -17,20 +17,38 @@ describe Post do
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should list child types in reverse chronological order" do
|
|
||||||
Factory.create(:status_message, :message => "puppies", :created_at => Time.now+1)
|
|
||||||
Factory.create(:bookmark, :title => "Reddit", :link => "http://reddit.com", :created_at => Time.now+2)
|
|
||||||
Factory.create(:status_message, :message => "kittens", :created_at => Time.now+3)
|
|
||||||
Factory.create(:blog, :title => "Bears", :body => "Bear's body", :created_at => Time.now+4)
|
|
||||||
Factory.create(:bookmark, :title => "Google", :link => "http://google.com", :created_at => Time.now+5)
|
|
||||||
|
|
||||||
stream = Post.stream
|
describe "stream" do
|
||||||
stream.count.should == 5
|
before do
|
||||||
stream[0].class.should == Bookmark
|
@owner = Factory.create(:user, :email => "robert@grimm.com")
|
||||||
stream[1].class.should == Blog
|
@friend_one = Factory.create(:friend, :email => "some@dudes.com")
|
||||||
stream[2].class.should == StatusMessage
|
@friend_two = Factory.create(:friend, :email => "other@dudes.com")
|
||||||
stream[3].class.should == Bookmark
|
|
||||||
stream[4].class.should == StatusMessage
|
Factory.create(:status_message, :message => "puppies", :created_at => Time.now+1, :person => @owner)
|
||||||
|
Factory.create(:bookmark, :title => "Reddit", :link => "http://reddit.com", :created_at => Time.now+2, :person => @friend_one)
|
||||||
|
Factory.create(:status_message, :message => "kittens", :created_at => Time.now+3, :person => @friend_two)
|
||||||
|
Factory.create(:blog, :title => "Bears", :body => "Bear's body", :created_at => Time.now+4, :person => @owner)
|
||||||
|
Factory.create(:bookmark, :title => "Google", :link => "http://google.com", :created_at => Time.now+5, :person => @friend_two)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should list child types in reverse chronological order" do
|
||||||
|
stream = Post.stream
|
||||||
|
stream.count.should == 5
|
||||||
|
stream[0].class.should == Bookmark
|
||||||
|
stream[1].class.should == Blog
|
||||||
|
stream[2].class.should == StatusMessage
|
||||||
|
stream[3].class.should == Bookmark
|
||||||
|
stream[4].class.should == StatusMessage
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should get all posts for a specified user" do
|
||||||
|
friend_posts = @friend_one.posts
|
||||||
|
friend_posts.count.should == 1
|
||||||
|
|
||||||
|
friend_posts = @friend_two.posts
|
||||||
|
friend_posts.count.should == 2
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue