public
Description: The open source social networking platform in Ruby on Rails from the author of RailsSpace
Homepage: http://insoshi.com
Clone URL: git://github.com/insoshi/insoshi.git
Got feeds (!) working
Michael Hartl (author)
Sat Mar 22 19:12:43 -0700 2008
commit  ec804c26c0fc5359fa2e4548b85a82e16e573fa3
tree    ad253ba848ee32288855490f1040b80e2de4f77c
parent  56ad6c26b8602de60ece1c83750490d27f3a5482
...
3
4
5
 
6
7
8
9
10
11
12
13
14
15
16
17
18
...
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
...
40
41
42
43
 
44
45
46
 
 
47
48
49
50
 
51
52
53
54
 
55
56
57
 
58
59
60
61
62
63
64
 
65
66
 
67
68
69
...
3
4
5
6
7
8
9
10
 
11
12
13
14
 
15
16
17
...
22
23
24
 
25
26
27
 
28
29
30
 
31
32
33
...
36
37
38
 
39
40
 
 
41
42
43
44
45
 
46
47
48
49
 
50
51
52
 
53
54
55
56
57
58
59
 
60
61
 
62
63
64
65
0
@@ -3,16 +3,15 @@ module EventsHelper
0
   # Given an event, return a message for the feed for the event's class.
0
   def feed_message(event)
0
     # Switch on the class.to_s. (The class itself is long & complicated.)
0
+ person = event.person
0
     case event.item.class.to_s
0
     when "BlogPost"
0
       post = event.item
0
       blog = post.blog
0
- person = blog.person
0
       view_blog = link_to("View #{person.name}'s blog", blog)
0
       %(#{person_link(person)} made a blog post titled
0
         #{post_link(blog, post)}.<br /> #{view_blog})
0
     when "BlogPostComment"
0
- person = event.item.commenter
0
       post = event.item.post
0
       blog = post.blog
0
       %(#{person_link(person)} made a comment to
0
@@ -23,15 +22,12 @@ module EventsHelper
0
         have connected.)
0
     when "ForumPost"
0
       post = event.item
0
- person = post.person
0
       %(#{person_link(person)} made a post on the forum topic
0
         #{topic_link(post.topic)}.)
0
     when "Topic"
0
- person = event.item.person
0
       %(#{person_link(person)} created the new discussion topic
0
         #{topic_link(event.item)}.)
0
     when "WallComment"
0
- person = event.item.person
0
       %(#{person_link(event.item.commenter)} commented on #{wall(person)})
0
     else
0
       raise "Invalid event type"
0
@@ -40,30 +36,30 @@ module EventsHelper
0
   
0
   def minifeed_message(event)
0
     person = event.person
0
- case event.class.to_s
0
+ case event.item.class.to_s
0
     when "BlogPost"
0
- blog = event.post.blog
0
- post = event.post
0
+ post = event.item
0
+ blog = post.blog
0
       %(#{person_link(person)} made a
0
         #{post_link("new blog post", blog, post)})
0
     when "BlogPostComment"
0
- post = event.comment.post
0
+ post = event.item.post
0
       %(#{person_link(person)} made a comment on #{someones(post.blog.person)}
0
         #{post_link("blog post", post.blog, post)})
0
     when "Connection"
0
- %(#{person_link(person)} and #{person_link(event.conn.contact)}
0
+ %(#{person_link(person)} and #{person_link(event.item.contact)}
0
         have connected.)
0
     when "ForumPost"
0
- topic = event.post.topic
0
+ topic = event.item.topic
0
       # TODO: deep link this to the post
0
       %(#{person_link(person)} made a #{topic_link("forum post", topic)}.)
0
     when "Person"
0
       %(#{person_link(person)} joined the network!)
0
     when "Topic"
0
       %(#{person_link(person)} created a
0
- #{topic_link("new discussion topic", event.topic)}.)
0
+ #{topic_link("new discussion topic", event.item)}.)
0
     when "WallComment"
0
- %(#{person_link(event.comment.commenter)} commented on #{wall(person)})
0
+ %(#{person_link(event.item.commenter)} commented on #{wall(person)})
0
     else
0
       raise "Invalid event type"
0
     end
...
33
34
35
36
 
37
38
39
...
33
34
35
 
36
37
38
39
0
@@ -33,7 +33,7 @@ class BlogPost < Post
0
   private
0
   
0
     def log_event
0
- event = Event.create!(:item => self)
0
+ event = Event.create!(:item => self, :person => blog.person)
0
       add_events(blog.person, event)
0
     end
0
     
...
26
27
28
29
 
30
31
32
...
26
27
28
 
29
30
31
32
0
@@ -26,7 +26,7 @@ class BlogPostComment < Comment
0
   private
0
   
0
     def log_event
0
- event = Event.create!(:item => self)
0
+ event = Event.create!(:item => self, :person => commenter)
0
       add_events(post.blog.person, event)
0
       add_events(commenter, event)
0
     end
...
6
7
8
 
9
10
11
12
13
14
 
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
...
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
0
@@ -6,30 +6,14 @@
0
 # id :integer(11) not null, primary key
0
 # public :boolean(1)
0
 # item_id :integer(11)
0
+# person_id :integer(11)
0
 # item_type :string(255)
0
 # created_at :datetime
0
 # updated_at :datetime
0
 #
0
 
0
 class Event < ActiveRecord::Base
0
+ belongs_to :person
0
   belongs_to :item, :polymorphic => true
0
   has_many :feeds
0
-
0
- # Return the proper person associated to an event.
0
- def person
0
- case item.class.to_s
0
- when "BlogPost"
0
- item.blog.person
0
- when "BlogPostComment"
0
- item.commenter
0
- when "Connection"
0
- item.person
0
- when "ForumPost"
0
- item.person
0
- when "Topic"
0
- item.person
0
- when "WallComment"
0
- item.person
0
- end
0
- end
0
 end
...
27
28
29
30
 
31
32
33
...
27
28
29
 
30
31
32
33
0
@@ -27,7 +27,7 @@ class ForumPost < Post
0
   private
0
   
0
     def log_event
0
- event = Event.create!(:item => self)
0
+ event = Event.create!(:item => self, :person => person)
0
       add_events(person, event)
0
     end
0
     
...
29
30
31
32
 
33
34
35
...
29
30
31
 
32
33
34
35
0
@@ -29,7 +29,7 @@ class Topic < ActiveRecord::Base
0
   private
0
   
0
     def log_event
0
- event = Event.create!(:item => self)
0
+ event = Event.create!(:item => self, :person => person)
0
       add_events(person, event)
0
     end
0
     
...
26
27
28
29
 
30
31
32
...
26
27
28
 
29
30
31
32
0
@@ -26,7 +26,7 @@ class WallComment < Comment
0
   private
0
   
0
     def log_event
0
- event = Event.create!(:item => self)
0
+ event = Event.create!(:item => self, :person => person)
0
       add_events(person, event)
0
     end
0
     
...
99
100
101
102
 
103
104
105
106
107
108
109
110
111
112
 
 
 
 
113
114
115
...
99
100
101
 
102
103
 
 
 
 
 
 
 
 
 
104
105
106
107
108
109
110
0
@@ -99,17 +99,12 @@ def make_connections
0
   end
0
 end
0
 
0
-# Make a non-boring sample feed.
0
+# Make a less-boring sample feed.
0
 def make_feed
0
- # models = [BlogPostEvent, BlogPostCommentEvent, ConnectionEvent,
0
- # ForumPostEvent, TopicEvent, PersonEvent, WallCommentEvent]
0
- # events = models.map { |model| model.find(:all, :limit => 2) }.flatten
0
- # sleep(1) # To make *sure* the new time is really new
0
- # events.each do |event|
0
- # event.created_at = Time.now
0
- # event.save!
0
- # end
0
- # events.shuffle
0
+ Event.find(:all).each do |event|
0
+ event.created_at = rand(20).minutes.ago
0
+ event.save!
0
+ end
0
 end
0
 
0
 def uploaded_file(filename, content_type)

Comments

    No one has commented yet.