GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Description: Adds basic social networking capabilities to your existing application, including users, blogs, photos, clippings, favorites, and more.
Homepage: http://www.communityengine.org
Clone URL: git://github.com/bborn/communityengine.git
more messaging UI stuff
bborn (author)
Sat Sep 13 21:29:37 -0700 2008
commit  ce256a0af18a5f0da71eaea8c365e2df016a7b9b
tree    1793994a3d770fb87b9de356f5250b2d51c43ad4
parent  24a3b6726f8dbcbe19ad2b8ce41f22a6ee99308e
...
6
7
8
 
 
9
10
11
12
13
 
 
 
 
14
15
...
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0
@@ -6,9 +6,15 @@ class Message < ActiveRecord::Base
0
   validates_presence_of :body, :subject
0
   validates_presence_of :recipient, :message => "is invalid"
0
   validate :ensure_not_sending_to_self
0
+
0
+ after_create :notify_recipient
0
   
0
   def ensure_not_sending_to_self
0
     errors.add_to_base("You may not send a message to yourself.") if self.recipient && self.recipient.eql?(self.sender)
0
   end
0
   
0
+ def notify_recipient
0
+ UserNotifier.deliver_message_notification(self)
0
+ end
0
+
0
 end
0
\ No newline at end of file
...
16
17
18
19
20
21
22
 
 
23
24
25
26
27
28
29
30
31
32
 
 
33
34
35
36
37
38
39
40
41
42
43
 
 
44
45
46
47
48
49
50
51
52
53
54
 
 
55
56
57
58
59
...
63
64
65
 
 
 
 
 
 
66
67
68
...
101
102
103
104
 
105
106
107
...
16
17
18
 
 
 
 
19
20
21
 
22
23
24
25
 
 
 
 
26
27
28
 
29
30
31
32
33
 
 
 
 
34
35
36
 
37
38
39
40
41
 
 
 
 
42
43
44
 
45
46
47
...
51
52
53
54
55
56
57
58
59
60
61
62
...
95
96
97
 
98
99
100
101
0
@@ -16,44 +16,32 @@ class UserNotifier < ActionMailer::Base
0
   end
0
 
0
   def friendship_request(friendship)
0
- setup_sender_info
0
- @recipients = "#{friendship.friend.email}"
0
- @subject = "#{friendship.user.login} would like to be friends with you on #{AppConfig.community_name}!"
0
- @sent_on = Time.now
0
+ setup_email(friendship.friend)
0
+ @subject += "#{friendship.user.login} would like to be friends with you!"
0
     @body[:url] = friendship.generate_url
0
- @body[:user] = friendship.friend
0
     @body[:requester] = friendship.user
0
   end
0
 
0
   def comment_notice(comment)
0
- @recipients = "#{comment.recipient.email}"
0
- setup_sender_info
0
- @subject = "#{comment.username} has something to say to you on #{AppConfig.community_name}!"
0
- @sent_on = Time.now
0
+ setup_email(comment.recipient)
0
+ @subject += "#{comment.username} has something to say to you on #{AppConfig.community_name}!"
0
     @body[:url] = comment.generate_commentable_url
0
- @body[:user] = comment.recipient
0
     @body[:comment] = comment
0
     @body[:commenter] = comment.user
0
   end
0
   
0
   def follow_up_comment_notice(user, comment)
0
- @recipients = "#{user.email}"
0
- setup_sender_info
0
- @subject = "#{comment.username} has commented on a #{comment.commentable_type} that you also commented on. [#{AppConfig.community_name}]"
0
- @sent_on = Time.now
0
+ setup_email(user)
0
+ @subject += "#{comment.username} has commented on a #{comment.commentable_type} that you also commented on."
0
     @body[:url] = comment.generate_commentable_url
0
- @body[:user] = user
0
     @body[:comment] = comment
0
     @body[:commenter] = comment.user
0
   end
0
 
0
   def new_forum_post_notice(user, post)
0
- @recipients = "#{user.email}"
0
- setup_sender_info
0
- @subject = "#{post.user.login} has posted in a thread you are monitoring [#{AppConfig.community_name}]."
0
- @sent_on = Time.now
0
+ setup_email(user)
0
+ @subject += "#{post.user.login} has posted in a thread you are monitoring."
0
      @body[:url] = "#{forum_topic_url(:forum_id => post.topic.forum, :id => post.topic, :page => post.topic.last_page)}##{post.dom_id}"
0
- @body[:user] = user
0
      @body[:post] = post
0
      @body[:author] = post.user
0
    end
0
@@ -63,6 +51,12 @@ class UserNotifier < ActionMailer::Base
0
     @subject += "Please activate your new #{AppConfig.community_name} account"
0
     @body[:url] = "#{APP_URL}/users/activate/#{user.activation_code}"
0
   end
0
+
0
+ def message_notification(message)
0
+ setup_email(message.recipient)
0
+ @subject += "#{message.sender.login} sent you a private message!"
0
+ @body[:message] = message
0
+ end
0
 
0
 
0
   def post_recommendation(name, email, post, message = nil, current_user = nil)
0
@@ -101,7 +95,7 @@ class UserNotifier < ActionMailer::Base
0
   def setup_email(user)
0
     @recipients = "#{user.email}"
0
     setup_sender_info
0
- @subject = "[#{AppConfig.community_name} registration] "
0
+ @subject = "[#{AppConfig.community_name}] "
0
     @sent_on = Time.now
0
     @body[:user] = user
0
   end
...
5
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
...
5
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
0
@@ -5,30 +5,30 @@
0
     .box
0
       %h3 Inbox
0
 
0
- %table{:border => 0, :width => '100%'}
0
- %thead
0
- %tr
0
- %th
0
- %th Subject
0
- %th Sender
0
- %th Sent
0
+ %table.messages{:border => 0, :width => '100%'}
0
         %tbody
0
           - if @messages.empty?
0
             %tr
0
- %td{ :colspan => "4" } No messages
0
+ %td{ :colspan => "5" } No messages
0
           -else
0
             - @messages.each do |message|
0
               %tr
0
- %td= check_box_tag "delete[]", message.id
0
+ %td{:width => '10px'}
0
+ %fieldset= check_box_tag "delete[]", message.id
0
+ %td{:width => '60px'}
0
+ .photo= link_to image_tag( message.sender.avatar_photo_url(:thumb), "height"=>"50px", "alt"=>"#{message.sender.login}", "width"=>"50px" ), user_path(message.sender), :title => "#{message.sender.login}'s profile"
0
+
0
                 %td
0
- - if message.read?
0
- = link_to h(message.subject), user_message_path(@user, message)
0
- - else
0
- = link_to "#{h(message.subject)} (unread)", user_message_path(@user, message)
0
- %td= link_to h(message.sender.login), user_path(@user)
0
- %td= h message.created_at.to_s(:long)
0
+ = link_to h(message.subject), user_message_path(@user, message)
0
+ %br
0
+ from:
0
+ = link_to h(message.sender.login), user_path(@user)
0
+ %td{:width => '20px'}
0
+ %em
0
+ = message.read? ? 'read' : 'unread'
0
+ %td.meta{:width => '150px'}= h message.created_at.to_s(:long)
0
         %tfoot
0
           %tr
0
- %td{ :colspan => "4" }
0
+ %td{ :colspan => "5" }
0
               %p= submit_tag "Delete selected"
0
 
...
3
4
5
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
...
3
4
5
 
 
 
 
 
 
 
 
 
 
 
 
 
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
0
@@ -3,28 +3,29 @@
0
     .box
0
 
0
       %h3 Sent Messages
0
- %table{:border => 0, :width => '100%'}
0
- %thead
0
- %tr
0
- %th
0
- %th Subject
0
- %th To
0
- %th Sent
0
- - if @messages.empty?
0
- %tr
0
- %td{ :colspan => "4" }
0
- No messages
0
- - else
0
- - @messages.each do |message|
0
+ %table.messages{:border => 0, :width => '100%'}
0
+ %tbody
0
+ - if @messages.empty?
0
             %tr
0
- %td
0
- = check_box_tag "delete[]", message.id
0
- %td
0
- = link_to h(message.subject), user_message_path(@user, message)
0
- %td
0
- = link_to h(message.recipient.login), user_path(@user)
0
- %td
0
- = h message.created_at.to_s(:long)
0
- %tr
0
- %td{ :colspan => "4" }
0
- %p= submit_tag "Delete"
0
+ %td{ :colspan => "4" }
0
+ No messages
0
+ - else
0
+ - @messages.each do |message|
0
+ %tr
0
+ %td{:width => '10px'}
0
+ %fieldset= check_box_tag "delete[]", message.id
0
+ %td{:width => '60px'}
0
+ .photo= link_to image_tag( message.recipient.avatar_photo_url(:thumb), "height"=>"50px", "alt"=>"#{message.recipient.login}", "width"=>"50px" ), user_path(message.recipient), :title => "#{message.recipient.login}'s profile"
0
+
0
+ %td
0
+ = link_to h(message.subject), user_message_path(@user, message)
0
+ %br
0
+ to:
0
+ = link_to h(message.recipient.login), user_path(@user)
0
+ %td.meta{:width => '150px'}= h message.created_at.to_s(:long)
0
+
0
+
0
+ %tfoot
0
+ %tr
0
+ %td{ :colspan => "4" }
0
+ %p= submit_tag "Delete"
...
1
2
3
4
5
6
7
 
 
 
 
 
 
...
1
2
3
 
 
 
 
4
5
6
7
8
9
0
@@ -1,7 +1,9 @@
0
 .yui-b.sidebar
0
   .box
0
     %h3="Links".l
0
- %ul.checks
0
- %li= link_to "Inbox", user_messages_path(@user)
0
- %li= link_to "Sent Messages", user_messages_path(@user, :mailbox => :sent)
0
- %li= link_to "Compose", new_user_message_path(@user)
0
+ %ul.message_nav
0
+ %li{:class => "inbox#{@user.unread_messages? ? '_new': ''}"}
0
+ = link_to "Inbox", user_messages_path(@user)
0
+ = "(#{@user.unread_message_count})" if @user.unread_messages?
0
+ %li.sent= link_to "Sent Messages", user_messages_path(@user, :mailbox => :sent)
0
+ %li.compose= link_to "Compose", new_user_message_path(@user)
...
7
8
9
10
11
12
13
 
 
 
 
 
 
 
 
14
15
16
17
18
19
 
20
21
22
...
7
8
9
 
 
 
 
10
11
12
13
14
15
16
17
18
19
20
21
22
 
23
24
25
26
0
@@ -7,16 +7,20 @@
0
       
0
       = error_messages_for :message
0
       - form_for @message, :url => user_messages_path(@user), :html => {:class => "MainForm"} do |f|
0
- %label{:for => 'message_to'}
0
- To
0
- %em (Type a username)
0
- = f.text_field :to
0
+
0
+ -if @reply_to
0
+ =f.hidden_field :to
0
+ -else
0
+ %label{:for => 'message_to'}
0
+ To
0
+ %em (Type a username)
0
+ = f.text_field :to
0
 
0
 
0
         %label{:for => 'message_subject'} Subject:
0
         = f.text_field :subject
0
 
0
- %label{:for => "message_body"} Message
0
+ %label{:for => "message_body"} Message:
0
         = f.text_area :body
0
 
0
         %p
...
8
9
10
11
 
12
 
13
14
15
16
17
 
18
19
 
 
 
 
 
20
21
22
 
23
24
25
 
26
...
8
9
10
 
11
12
13
14
 
 
 
 
15
16
17
18
19
20
21
22
23
24
 
25
26
 
27
28
29
0
@@ -8,17 +8,20 @@
0
         =h @message.subject
0
 
0
       %p
0
- %strong From:
0
+ From:
0
         = @message.sender.eql?(@user) ? link_to("You", user_path(@user)) : link_to(h(@message.sender.login), user_path(@user))
0
+
0
       %p
0
- %strong Received:
0
- = @message.created_at.to_s(:long)
0
- %p
0
- %strong To:
0
+ To:
0
         = @message.recipient.eql?(@user) ? link_to("You", user_path(@user)) : link_to(h(@message.recipient.login), user_path(@user))
0
 
0
+
0
+ %p
0
+ Date:
0
+ = @message.created_at.to_s(:long)
0
+
0
       %p= h @message.body
0
 
0
- %p
0
+ %ul.message_nav
0
         - if @message.recipient.eql? @user
0
- = link_to "Reply", new_user_message_path(@user, :reply_to => @message)
0
\ No newline at end of file
0
+ %li.sent= link_to "Reply", new_user_message_path(@user, :reply_to => @message)
0
\ No newline at end of file
...
23
24
25
26
 
27
28
29
...
23
24
25
 
26
27
28
29
0
@@ -23,7 +23,7 @@
0
               %a{"href"=>"#", :onclick=>"window.print(); return false;", :title=>"Print this story"} Print
0
             %li.email
0
               %a{:href=>"#", :onclick=>"showSendTo_friend(); return false;", :title=>"E-mail this story to friends"} E-mail to friends
0
- %li
0
+ %li.share
0
               %script{:type=>"text/javascript", :src=>"http://w.sharethis.com/widget/?tabs=web&amp;charset=utf-8&amp;style=default&amp;publisher=4488bdef-d776-4c80-93e1-ac1fb8359971&amp;linkfg=%23131358"}
0
             -if @is_current_user || admin? || moderator?
0
               %li.edit= link_to "Edit", edit_user_post_path(@post.user, @post)
...
7
8
9
10
 
 
 
11
12
 
13
14
15
...
7
8
9
 
10
11
12
13
14
15
16
17
18
0
@@ -7,9 +7,12 @@
0
       %li=link_to 'Admin dashboard'.l, admin_dashboard_path
0
     %li= link_to "Edit profile".l, edit_user_path(current_user)
0
     %li= link_to "Edit account".l, edit_account_user_path(current_user)
0
- %li= link_to "View profile".l, user_path(current_user)
0
+ %li= link_to "Manage blog".l, edit_account_user_path(current_user)
0
+
0
+
0
   %hr
0
   %ul
0
+ %li= link_to "View profile".l, user_path(current_user)
0
     %li=link_to 'Blog'.l, manage_user_posts_path(current_user)
0
     %li=link_to 'Photos'.l, user_photos_path(current_user)
0
     %li=link_to 'Clippings'.l, user_clippings_path(current_user)
...
1
2
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
5
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
 
 
 
 
 
 
 
 
 
 
 
 
36
...
 
 
 
1
2
3
4
5
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
36
37
38
39
40
41
0
@@ -1,34 +1,39 @@
0
-.yui-g.box
0
- .yui-u.first
0
- %h3 View my:
0
+.yui-b
0
+ .box
0
+ %h3="Dashboard".l
0
+ .yui-g
0
+ .yui-u.first
0
+ = image_tag 'icons/accept.png', :plugin => 'community_engine'
0
+ ="View my:".l
0
+ %ul
0
+ %li=link_to 'Profile'.l, user_path(@user)
0
+ %li=link_to 'Blog'.l, user_posts_path(@user)
0
+ %li=link_to 'Photos'.l, user_photos_path(@user)
0
+ %li=link_to 'Clippings'.l, user_clippings_path(@user)
0
+ %li=link_to 'Friends'.l, accepted_user_friendships_path(@user)
0
+ .yui-u
0
+ = image_tag 'icons/wrench.png', :plugin => 'community_engine'
0
+ ="Manage my:".l
0
+ %ul
0
+ %li=link_to 'Profile'.l, edit_user_path(@user)
0
+ %li=link_to 'Account settings'.l, edit_account_user_path(@user)
0
+ %li=link_to 'Blog posts'.l, manage_user_posts_path(@user)
0
+ -if current_user.admin?
0
+ %li=link_to 'Admin dashboard'.l, admin_dashboard_path
0
+
0
+
0
+ .box.alt
0
+ %h3="Stats".l
0
     %ul
0
- %li=link_to 'Profile'.l, user_path(@user)
0
- %li=link_to 'Blog'.l, user_posts_path(@user)
0
- %li=link_to 'Photos'.l, user_photos_path(@user)
0
- %li=link_to 'Clippings'.l, user_clippings_path(@user)
0
- %li=link_to 'Friends'.l, accepted_user_friendships_path(@user)
0
-
0
- .yui-u
0
- %h3 Manage my:
0
- %ul
0
- %li=link_to 'Profile'.l, edit_user_path(@user)
0
- %li=link_to 'Account settings'.l, edit_account_user_path(@user)
0
- %li=link_to 'Blog posts'.l, manage_user_posts_path(@user)
0
- -if current_user.admin?
0
- %li=link_to 'Admin dashboard'.l, admin_dashboard_path
0
-
0
-.box.alt
0
- %h3 Stats
0
- %ul
0
- %li="Last logged in: #{@user.last_login_at && @user.last_login_at.strftime("%m/%d/%y")}"
0
- %li= @user.created_at.strftime("Member since: %m/%d/%y")
0
- -unless @user.posts.empty?
0
- %li="#{@user.posts.count} blog posts."
0
- -unless @user.photos.empty?
0
- %li="#{@user.photos.count} photos."
0
- -unless @user.clippings.empty?
0
- %li="#{@user.clippings.count} clippings."
0
- -unless @user.comments.empty?
0
- %li="#{@user.posts.count} comments."
0
- -unless @user.accepted_friendships.empty?
0
- %li="#{@user.accepted_friendships.count} friends"
0
\ No newline at end of file
0
+ %li="You last logged in on #{@user.last_login_at && @user.last_login_at.strftime("%m/%d/%y")}"
0
+ %li= @user.created_at.strftime("Member since: %m/%d/%y")
0
+ -unless @user.posts.empty?
0
+ %li="You have written #{@user.posts.count} blog posts."
0
+ -unless @user.photos.empty?
0
+ %li="You have uploaded #{@user.photos.count} photos."
0
+ -unless @user.clippings.empty?
0
+ %li="You have created #{@user.clippings.count} clippings."
0
+ -unless @user.comments.empty?
0
+ %li="You have left #{@user.posts.count} comments."
0
+ -unless @user.accepted_friendships.empty?
0
+ %li="You have #{pluralize @user.accepted_friendships.count, 'friend'}."
0
\ No newline at end of file
...
1
2
3
4
5
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
36
 
37
38
39
...
1
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
4
5
6
0
@@ -1,39 +1,6 @@
0
 - @section = 'my_profile'
0
 
0
-.yui-b
0
- .box
0
- %h3="Dashboard".l
0
- .yui-g
0
- .yui-u.first
0
- ="View my:".l
0
- %ul
0
- %li=link_to 'Profile'.l, user_path(@user)
0
- %li=link_to 'Blog'.l, user_posts_path(@user)
0
- %li=link_to 'Photos'.l, user_photos_path(@user)
0
- %li=link_to 'Clippings'.l, user_clippings_path(@user)
0
- %li=link_to 'Friends'.l, accepted_user_friendships_path(@user)
0
- .yui-u
0
- ="Manage my:".l
0
- %ul
0
- %li=link_to 'Profile'.l, edit_user_path(@user)
0
- %li=link_to 'Account settings'.l, edit_account_user_path(@user)
0
- %li=link_to 'Blog posts'.l, manage_user_posts_path(@user)
0
-
0
- .box.alt
0
- %h3="Stats".l
0
- %ul
0
- %li="You last logged in on #{@user.last_login_at && @user.last_login_at.strftime("%m/%d/%y")}"
0
- %li= @user.created_at.strftime("Member since: %m/%d/%y")
0
- -unless @user.posts.empty?
0
- %li="You have written #{@user.posts.count} blog posts."
0
- -unless @user.photos.empty?
0
- %li="You have uploaded #{@user.photos.count} photos."
0
- -unless @user.clippings.empty?
0
- %li="You have created #{@user.clippings.count} clippings."
0
- -unless @user.comments.empty?
0
- %li="You have left #{@user.posts.count} comments."
0
- -unless @user.accepted_friendships.empty?
0
- %li="You have #{pluralize @user.accepted_friendships.count, 'friend'}."
0
+=render :partial => "users/dashboard_nav"
0
     
0
 
0
   
...
338
339
340
341
 
 
 
 
342
343
344
...
938
939
940
941
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
942
943
944
...
338
339
340
 
341
342
343
344
345
346
347
...
941
942
943
 
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
0
@@ -338,7 +338,10 @@ padding:0 0 3px 0;
0
 .hentry .vcard ul li.addfriend{background-image: url(/plugin_assets/community_engine/images/icons/user_add.png) }
0
 .hentry .vcard ul li.print{background-image: url(/plugin_assets/community_engine/images/icons/printer.png) }
0
 .hentry .vcard ul li.email{background-image: url(/plugin_assets/community_engine/images/icons/user_go.png) }
0
-.hentry .vcard ul li.share{background-image: url(/plugin_assets/community_engine/images/icons/group_go.png) }
0
+.hentry .vcard ul li.share{
0
+/* background-image: url(/plugin_assets/community_engine/images/icons/group_go.png) */
0
+ padding-left:0;
0
+ }
0
 .hentry .vcard ul li.tags{background-image: url(/plugin_assets/community_engine/images/icons/tag_blue.png) }
0
 .hentry .vcard ul li.skills{background-image: url(/plugin_assets/community_engine/images/icons/wrench.png) }
0
 .hentry .vcard ul li.geo{background-image: url(/plugin_assets/community_engine/images/icons/world.png) }
0
@@ -938,7 +941,38 @@ table td {
0
   padding: 5px;
0
   }
0
       
0
-
0
+
0
+/* MESSAGES */
0
+ul.message_nav li {
0
+ background-position: left;
0
+ background-repeat: no-repeat;
0
+ padding-left:20px;
0
+}
0
+ul.message_nav li.inbox_new {background-image: url(/plugin_assets/community_engine/images/icons/email_open.png);}
0
+ul.message_nav li.inbox {background-image: url(/plugin_assets/community_engine/images/icons/email.png);}
0
+ul.message_nav li.sent {background-image: url(/plugin_assets/community_engine/images/icons/email_go.png);}
0
+ul.message_nav li.compose {background-image: url(/plugin_assets/community_engine/images/icons/email_edit.png);}
0
+.messages .photo a img{
0
+ float: left;
0
+ display: block;
0
+ padding: 2px;
0
+ border: 1px solid #a2a19b;
0
+ background: #fff;
0
+ }
0
+table.messages tbody td {
0
+ border-bottom: 1px solid #ccc;
0
+}
0
+.messages .photo a:hover img{background: #a2a19b;}
0
+.messages em {
0
+ font-style: italic;
0
+ font-family: Georgia, Times, serif;
0
+ color: #777;
0
+ }
0
+.messages td.meta {
0
+ font-size: 85%;
0
+ text-align: right;
0
+ }
0
+
0
 
0
 table.poll {
0
   width: 100%;
...
1
2
 
3
4
5
...
1
2
3
4
5
6
0
@@ -1,5 +1,6 @@
0
 require File.dirname(__FILE__) + '/../test_helper'
0
 require 'user_notifier'
0
+require 'hpricot'
0
 
0
 class UserNotifierTest < Test::Unit::TestCase
0
   FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures'

Comments

    No one has commented yet.