muck-activity 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. data/Rakefile +3 -3
  2. data/VERSION +1 -1
  3. data/locales/ar.yml +23 -0
  4. data/locales/bg.yml +23 -0
  5. data/locales/ca.yml +23 -0
  6. data/locales/cs.yml +23 -0
  7. data/locales/da.yml +23 -0
  8. data/locales/de.yml +23 -0
  9. data/locales/el.yml +23 -0
  10. data/locales/es.yml +23 -0
  11. data/locales/fr.yml +23 -0
  12. data/locales/it.yml +23 -0
  13. data/locales/iw.yml +23 -0
  14. data/locales/ja.yml +23 -0
  15. data/locales/ko.yml +23 -0
  16. data/locales/lt.yml +23 -0
  17. data/locales/lv.yml +23 -0
  18. data/locales/nl.yml +23 -0
  19. data/locales/no.yml +24 -0
  20. data/locales/pl.yml +23 -0
  21. data/locales/pt.yml +23 -0
  22. data/locales/ro.yml +23 -0
  23. data/locales/ru.yml +23 -0
  24. data/locales/sk.yml +23 -0
  25. data/locales/sl.yml +23 -0
  26. data/locales/sr.yml +23 -0
  27. data/locales/sv.yml +23 -0
  28. data/locales/tl.yml +23 -0
  29. data/locales/uk.yml +23 -0
  30. data/locales/vi.yml +23 -0
  31. data/locales/zh-CN.yml +23 -0
  32. data/locales/zh-TW.yml +23 -0
  33. data/locales/zh.yml +23 -0
  34. data/muck-activity.gemspec +182 -0
  35. data/pkg/muck-activity-0.1.2.gem +0 -0
  36. data/rdoc/classes/ActionController.html +107 -0
  37. data/rdoc/classes/ActionController/Routing.html +107 -0
  38. data/rdoc/classes/ActionController/Routing/RouteSet.html +148 -0
  39. data/rdoc/classes/MuckActivity/ActMethods.html +189 -0
  40. data/rdoc/classes/MuckActivity/InstanceMethods.html +244 -0
  41. data/rdoc/classes/MuckActivity/Tasks.html +146 -0
  42. data/rdoc/created.rid +1 -0
  43. data/rdoc/files/README_rdoc.html +204 -0
  44. data/rdoc/files/lib/muck_activity/initialize_routes_rb.html +101 -0
  45. data/rdoc/files/lib/muck_activity/tasks_rb.html +110 -0
  46. data/rdoc/files/lib/muck_activity_rb.html +108 -0
  47. data/rdoc/fr_class_index.html +32 -0
  48. data/rdoc/fr_file_index.html +30 -0
  49. data/rdoc/fr_method_index.html +33 -0
  50. data/rdoc/index.html +24 -0
  51. data/rdoc/rdoc-style.css +208 -0
  52. metadata +51 -2
@@ -0,0 +1,244 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: MuckActivity::InstanceMethods</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">MuckActivity::InstanceMethods</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/muck_activity_rb.html">
59
+ lib/muck_activity.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000004">add_activity</a>&nbsp;&nbsp;
84
+ <a href="#M000006">can_view?</a>&nbsp;&nbsp;
85
+ <a href="#M000005">status</a>&nbsp;&nbsp;
86
+ </div>
87
+ </div>
88
+
89
+ </div>
90
+
91
+
92
+ <!-- if includes -->
93
+
94
+ <div id="section">
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ <!-- if method_list -->
104
+ <div id="methods">
105
+ <h3 class="section-bar">Public Instance methods</h3>
106
+
107
+ <div id="method-M000004" class="method-detail">
108
+ <a name="M000004"></a>
109
+
110
+ <div class="method-heading">
111
+ <a href="#M000004" class="method-signature">
112
+ <span class="method-name">add_activity</span><span class="method-args">(feed_to, source, item, template, title = '', content = '', check_method = nil)</span>
113
+ </a>
114
+ </div>
115
+
116
+ <div class="method-description">
117
+ <p>
118
+ <tt><a href="InstanceMethods.html#M000004">add_activity</a></tt> adds an
119
+ activity to all activites feeds that belong to the objects found in
120
+ feed_to.
121
+ </p>
122
+ <ul>
123
+ <li><tt>feed_to</tt>: an array of objects that have <tt>has_activities</tt>
124
+ declared on them. The generated activity will be pushed into the feed of
125
+ each of these objects.
126
+
127
+ </li>
128
+ <li><tt>source</tt>: the object that peformed the activity ie a user or group
129
+
130
+ </li>
131
+ <li><tt>item</tt>: an object that will be used to generated the entry in an
132
+ activity feed
133
+
134
+ </li>
135
+ <li><tt>template</tt>: name of an partial that will be used to generated the
136
+ entry in the activity feed. Place templates in
137
+ /app/views/activity_templates
138
+
139
+ </li>
140
+ <li><tt>title</tt>: optional title that can be used in the template
141
+
142
+ </li>
143
+ <li><tt>content</tt>: option content that can be used in the template. Useful
144
+ for activities that might not have
145
+
146
+ <pre>
147
+ an item but instead might have a message or other text.
148
+ </pre>
149
+ </li>
150
+ <li><tt>check_method</tt>: method that will be called on each item in the
151
+ feed_to array. If the method evaluates to false the activity won&#8216;t be
152
+ added to the object&#8216;s activity feed. An example usage would be
153
+ letting users configure which items they want to have in their activity
154
+ feed.
155
+
156
+ </li>
157
+ </ul>
158
+ <p><a class="source-toggle" href="#"
159
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
160
+ <div class="method-source-code" id="M000004-source">
161
+ <pre>
162
+ <span class="ruby-comment cmt"># File lib/muck_activity.rb, line 47</span>
163
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_activity</span>(<span class="ruby-identifier">feed_to</span>, <span class="ruby-identifier">source</span>, <span class="ruby-identifier">item</span>, <span class="ruby-identifier">template</span>, <span class="ruby-identifier">title</span> = <span class="ruby-value str">''</span>, <span class="ruby-identifier">content</span> = <span class="ruby-value str">''</span>, <span class="ruby-identifier">check_method</span> = <span class="ruby-keyword kw">nil</span>)
164
+ 48: <span class="ruby-identifier">feed_to</span> = [<span class="ruby-identifier">feed_to</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">feed_to</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
165
+ 49: <span class="ruby-identifier">activity</span> = <span class="ruby-constant">Activity</span>.<span class="ruby-identifier">create</span>(<span class="ruby-identifier">:item</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">item</span>, <span class="ruby-identifier">:source</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">source</span>, <span class="ruby-identifier">:template</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">template</span>, <span class="ruby-identifier">:title</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">title</span>, <span class="ruby-identifier">:content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">content</span>)
166
+ 50: <span class="ruby-identifier">feed_to</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ft</span><span class="ruby-operator">|</span>
167
+ 51: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check_method</span>
168
+ 52: <span class="ruby-identifier">ft</span>.<span class="ruby-identifier">activities</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ft</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">check_method</span>)
169
+ 53: <span class="ruby-keyword kw">else</span>
170
+ 54: <span class="ruby-identifier">ft</span>.<span class="ruby-identifier">activities</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">activity</span>
171
+ 55: <span class="ruby-keyword kw">end</span>
172
+ 56: <span class="ruby-keyword kw">end</span>
173
+ 57: <span class="ruby-keyword kw">end</span>
174
+ </pre>
175
+ </div>
176
+ </div>
177
+ </div>
178
+
179
+ <div id="method-M000006" class="method-detail">
180
+ <a name="M000006"></a>
181
+
182
+ <div class="method-heading">
183
+ <a href="#M000006" class="method-signature">
184
+ <span class="method-name">can_view?</span><span class="method-args">(check_object)</span>
185
+ </a>
186
+ </div>
187
+
188
+ <div class="method-description">
189
+ <p><a class="source-toggle" href="#"
190
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
191
+ <div class="method-source-code" id="M000006-source">
192
+ <pre>
193
+ <span class="ruby-comment cmt"># File lib/muck_activity.rb, line 65</span>
194
+ 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">can_view?</span>(<span class="ruby-identifier">check_object</span>)
195
+ 66: <span class="ruby-keyword kw">self</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">check_object</span>
196
+ 67: <span class="ruby-keyword kw">end</span>
197
+ </pre>
198
+ </div>
199
+ </div>
200
+ </div>
201
+
202
+ <div id="method-M000005" class="method-detail">
203
+ <a name="M000005"></a>
204
+
205
+ <div class="method-heading">
206
+ <a href="#M000005" class="method-signature">
207
+ <span class="method-name">status</span><span class="method-args">()</span>
208
+ </a>
209
+ </div>
210
+
211
+ <div class="method-description">
212
+ <p>
213
+ <tt><a href="InstanceMethods.html#M000005">status</a></tt> returns the
214
+ first activity item from the user&#8216;s activity feed that is a <a
215
+ href="InstanceMethods.html#M000005">status</a> update. Used for displaying
216
+ the last <a href="InstanceMethods.html#M000005">status</a> update the user
217
+ made
218
+ </p>
219
+ <p><a class="source-toggle" href="#"
220
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
221
+ <div class="method-source-code" id="M000005-source">
222
+ <pre>
223
+ <span class="ruby-comment cmt"># File lib/muck_activity.rb, line 61</span>
224
+ 61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">status</span>
225
+ 62: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">activities</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">:first</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">'is_status_update = true'</span>], <span class="ruby-identifier">:order</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'created_at DESC'</span>)
226
+ 63: <span class="ruby-keyword kw">end</span>
227
+ </pre>
228
+ </div>
229
+ </div>
230
+ </div>
231
+
232
+
233
+ </div>
234
+
235
+
236
+ </div>
237
+
238
+
239
+ <div id="validator-badges">
240
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
241
+ </div>
242
+
243
+ </body>
244
+ </html>
@@ -0,0 +1,146 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: MuckActivity::Tasks</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">MuckActivity::Tasks</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/muck_activity/tasks_rb.html">
59
+ lib/muck_activity/tasks.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ ::Rake::TaskLib
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+
82
+
83
+ </div>
84
+
85
+ <div id="method-list">
86
+ <h3 class="section-bar">Methods</h3>
87
+
88
+ <div class="name-list">
89
+ <a href="#M000007">new</a>&nbsp;&nbsp;
90
+ </div>
91
+ </div>
92
+
93
+ </div>
94
+
95
+
96
+ <!-- if includes -->
97
+
98
+ <div id="section">
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+ <!-- if method_list -->
108
+ <div id="methods">
109
+ <h3 class="section-bar">Public Class methods</h3>
110
+
111
+ <div id="method-M000007" class="method-detail">
112
+ <a name="M000007"></a>
113
+
114
+ <div class="method-heading">
115
+ <a href="#M000007" class="method-signature">
116
+ <span class="method-name">new</span><span class="method-args">()</span>
117
+ </a>
118
+ </div>
119
+
120
+ <div class="method-description">
121
+ <p><a class="source-toggle" href="#"
122
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
123
+ <div class="method-source-code" id="M000007-source">
124
+ <pre>
125
+ <span class="ruby-comment cmt"># File lib/muck_activity/tasks.rb, line 7</span>
126
+ 7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
127
+ 8: <span class="ruby-identifier">define</span>
128
+ 9: <span class="ruby-keyword kw">end</span>
129
+ </pre>
130
+ </div>
131
+ </div>
132
+ </div>
133
+
134
+
135
+ </div>
136
+
137
+
138
+ </div>
139
+
140
+
141
+ <div id="validator-badges">
142
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
143
+ </div>
144
+
145
+ </body>
146
+ </html>
data/rdoc/created.rid ADDED
@@ -0,0 +1 @@
1
+ Thu, 11 Jun 2009 23:59:14 -0600
@@ -0,0 +1,204 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: README.rdoc</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>README.rdoc</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>README.rdoc
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Thu Jun 11 23:20:30 -0600 2009</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <h1>MuckActivity</h1>
73
+ <h2>Installation</h2>
74
+ <p>
75
+ The muck activity engine is part of the muck framework and relies upon the
76
+ muck_engine. The main engine can be found here: <a
77
+ href="http://github.com/jbasdf/muck_engine">github.com/jbasdf/muck_engine</a>
78
+ </p>
79
+ <p>
80
+ The easiest way to get started with muck is to generate your application
81
+ using a template:
82
+ </p>
83
+ <pre>
84
+ $ rails &lt;your-app&gt; -m http://github.com/jbasdf/rails-templates/raw/master/muck.rb
85
+ </pre>
86
+ <p>
87
+ Add optional functionality with the following command:
88
+ </p>
89
+ <pre>
90
+ $ rake rails:template LOCATION=http://github.com/jbasdf/rails-templates/raw/master/mucktoo.rb
91
+ </pre>
92
+ <h2>Usage</h2>
93
+ <p>
94
+ This engine implements simple activity tracking.
95
+ </p>
96
+ <p>
97
+ Models that can have activity feed should call &#8216;has_activities&#8216;
98
+ </p>
99
+ <pre>
100
+ Example:
101
+ class User
102
+ has_activities
103
+ end
104
+ </pre>
105
+ <p>
106
+ Adding an item to the activity feed requires
107
+ &#8216;acts_as_activity_source&#8217; which then profiles the method
108
+ &#8216;add_activity&#8216;
109
+ </p>
110
+ <pre>
111
+ add_activity(feed_to, actor, item, template, check_method)
112
+
113
+ feed_to - contains an array of objects (typically users) that have use acts_as_activity_user
114
+ actor - the user performing the action
115
+ item - a reference to the object that
116
+ template - the template (partial) to use to render the activity
117
+ check_method - and optional method to call on each object in the feed_to array that determines whether or not to add the activity
118
+
119
+ Example:
120
+ add_activity(user.feed_to, user, comment, 'comment')
121
+ </pre>
122
+ <h3>Authorization</h3>
123
+ <p>
124
+ By default &#8216;has_activities&#8217; will add a simple
125
+ &#8216;can_view?&#8217; method:
126
+ </p>
127
+ <pre>
128
+ def can_view?(check_object)
129
+ self == check_object
130
+ end
131
+ </pre>
132
+ <p>
133
+ This method determines whether or not the check_object has access to the
134
+ current object&#8216;s activity feeds. For example, if the intent is to
135
+ recover the activities for a given user where the user is
136
+ &#8217;@parent&#8217; thus:
137
+ </p>
138
+ <pre>
139
+ @parent.can_view?(current_user)
140
+ </pre>
141
+ <p>
142
+ The can view method will determine whether or not the current_user has the
143
+ right to view the activity feed.
144
+ </p>
145
+ <p>
146
+ In most instances you will need to override this method to implement proper
147
+ security. For example, for a group that has an activity feed you might add
148
+ a can_view? method like this:
149
+ </p>
150
+ <pre>
151
+ def can_view?(check_object)
152
+ self.member?(check_object) || (check_object.is_a?(User) &amp;&amp; check_object.admin?)
153
+ end
154
+ </pre>
155
+ <h2>Live Updates</h2>
156
+ <p>
157
+ If you would like to add live updates to the user&#8216;s activity feed you
158
+ can do so by adding an entry to GlobalConfig.yml (configuration file added
159
+ by muck)
160
+ </p>
161
+ <pre>
162
+ enable_live_activity_updates: true
163
+ live_activity_update_interval: 5
164
+ </pre>
165
+ <p>
166
+ Note that this will poll the server every 5 seconds and so will increase
167
+ server load and bandwidth usage.
168
+ </p>
169
+ <p>
170
+ Copyright (c) 2009 Justin Ball, released under the MIT license
171
+ </p>
172
+
173
+ </div>
174
+
175
+
176
+ </div>
177
+
178
+
179
+ </div>
180
+
181
+
182
+ <!-- if includes -->
183
+
184
+ <div id="section">
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+ <!-- if method_list -->
194
+
195
+
196
+ </div>
197
+
198
+
199
+ <div id="validator-badges">
200
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
201
+ </div>
202
+
203
+ </body>
204
+ </html>