loggable_activity 0.5.6 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/GETTING-STARTED.md +1 -0
  4. data/docker-compose.yml +27 -0
  5. data/docs/CHANGELOG_md.html +318 -0
  6. data/docs/CHEAT_SHEET_md.html +168 -0
  7. data/docs/CODE_OF_CONDUCT_md.html +250 -0
  8. data/docs/CreateLoggableActivities.html +175 -0
  9. data/docs/CreateLoggableActivityTables.html +173 -0
  10. data/docs/GETTING-STARTED_md.html +211 -0
  11. data/docs/Gemfile.html +153 -0
  12. data/docs/Gemfile_lock.html +438 -0
  13. data/docs/LoggableActivity/ActivitiesController.html +160 -0
  14. data/docs/LoggableActivity/ActivitiesHelper.html +158 -0
  15. data/docs/LoggableActivity/Activity.html +565 -0
  16. data/docs/LoggableActivity/ApplicationController.html +97 -0
  17. data/docs/LoggableActivity/ApplicationHelper.html +91 -0
  18. data/docs/LoggableActivity/ApplicationJob.html +97 -0
  19. data/docs/LoggableActivity/ApplicationMailer.html +97 -0
  20. data/docs/LoggableActivity/ApplicationRecord.html +97 -0
  21. data/docs/LoggableActivity/Configuration.html +237 -0
  22. data/docs/LoggableActivity/ConfigurationError.html +142 -0
  23. data/docs/LoggableActivity/CurrentActor.html +166 -0
  24. data/docs/LoggableActivity/DataOwner.html +138 -0
  25. data/docs/LoggableActivity/Encryption.html +321 -0
  26. data/docs/LoggableActivity/EncryptionError.html +142 -0
  27. data/docs/LoggableActivity/EncryptionKey.html +399 -0
  28. data/docs/LoggableActivity/Engine.html +108 -0
  29. data/docs/LoggableActivity/Error.html +142 -0
  30. data/docs/LoggableActivity/Generators/InstallGenerator.html +212 -0
  31. data/docs/LoggableActivity/Generators.html +91 -0
  32. data/docs/LoggableActivity/Hooks.html +841 -0
  33. data/docs/LoggableActivity/Payload.html +430 -0
  34. data/docs/LoggableActivity/Sanitizer.html +134 -0
  35. data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +472 -0
  36. data/docs/LoggableActivity/Services/CustomPayloadsBuilder.html +225 -0
  37. data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +396 -0
  38. data/docs/LoggableActivity/Services/PayloadsBuilder.html +348 -0
  39. data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +540 -0
  40. data/docs/LoggableActivity/Services.html +93 -0
  41. data/docs/LoggableActivity.html +173 -0
  42. data/docs/MIT-LICENSE.html +132 -0
  43. data/docs/Object.html +110 -0
  44. data/docs/README_md.html +186 -0
  45. data/docs/Rakefile.html +134 -0
  46. data/docs/app/assets/config/loggable_activity_manifest_js.html +126 -0
  47. data/docs/app/assets/javascripts/loggable_activity/application_js.html +124 -0
  48. data/docs/app/assets/stylesheets/loggable_activity/activities_scss.html +154 -0
  49. data/docs/app/assets/stylesheets/loggable_activity/application_scss.html +142 -0
  50. data/docs/app/views/layouts/loggable_activity/application_html_slim.html +145 -0
  51. data/docs/app/views/loggable_activity/activities/_activities_html_slim.html +159 -0
  52. data/docs/created.rid +74 -0
  53. data/docs/css/fonts.css +167 -0
  54. data/docs/css/rdoc.css +687 -0
  55. data/docs/fonts/Lato-Light.ttf +0 -0
  56. data/docs/fonts/Lato-LightItalic.ttf +0 -0
  57. data/docs/fonts/Lato-Regular.ttf +0 -0
  58. data/docs/fonts/Lato-RegularItalic.ttf +0 -0
  59. data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
  60. data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
  61. data/docs/git-org/HEAD.html +126 -0
  62. data/docs/git-org/config.html +128 -0
  63. data/docs/git-org/description.html +126 -0
  64. data/docs/git-org/hooks/applypatch-msg_sample.html +128 -0
  65. data/docs/git-org/hooks/commit-msg_sample.html +138 -0
  66. data/docs/git-org/hooks/fsmonitor-watchman_sample.html +302 -0
  67. data/docs/git-org/hooks/post-update_sample.html +128 -0
  68. data/docs/git-org/hooks/pre-applypatch_sample.html +128 -0
  69. data/docs/git-org/hooks/pre-commit_sample.html +174 -0
  70. data/docs/git-org/hooks/pre-merge-commit_sample.html +133 -0
  71. data/docs/git-org/hooks/pre-push_sample.html +161 -0
  72. data/docs/git-org/hooks/pre-rebase_sample.html +282 -0
  73. data/docs/git-org/hooks/pre-receive_sample.html +144 -0
  74. data/docs/git-org/hooks/prepare-commit-msg_sample.html +136 -0
  75. data/docs/git-org/hooks/push-to-checkout_sample.html +178 -0
  76. data/docs/git-org/hooks/update_sample.html +226 -0
  77. data/docs/git-org/info/exclude.html +126 -0
  78. data/docs/images/add.png +0 -0
  79. data/docs/images/arrow_up.png +0 -0
  80. data/docs/images/brick.png +0 -0
  81. data/docs/images/brick_link.png +0 -0
  82. data/docs/images/bug.png +0 -0
  83. data/docs/images/bullet_black.png +0 -0
  84. data/docs/images/bullet_toggle_minus.png +0 -0
  85. data/docs/images/bullet_toggle_plus.png +0 -0
  86. data/docs/images/date.png +0 -0
  87. data/docs/images/delete.png +0 -0
  88. data/docs/images/find.png +0 -0
  89. data/docs/images/loadingAnimation.gif +0 -0
  90. data/docs/images/macFFBgHack.png +0 -0
  91. data/docs/images/package.png +0 -0
  92. data/docs/images/page_green.png +0 -0
  93. data/docs/images/page_white_text.png +0 -0
  94. data/docs/images/page_white_width.png +0 -0
  95. data/docs/images/plugin.png +0 -0
  96. data/docs/images/ruby.png +0 -0
  97. data/docs/images/tag_blue.png +0 -0
  98. data/docs/images/tag_green.png +0 -0
  99. data/docs/images/transparent.png +0 -0
  100. data/docs/images/wrench.png +0 -0
  101. data/docs/images/wrench_orange.png +0 -0
  102. data/docs/images/zoom.png +0 -0
  103. data/docs/index.html +166 -0
  104. data/docs/js/darkfish.js +97 -0
  105. data/docs/js/navigation.js +105 -0
  106. data/docs/js/navigation.js.gz +0 -0
  107. data/docs/js/search.js +110 -0
  108. data/docs/js/search_index.js +1 -0
  109. data/docs/js/search_index.js.gz +0 -0
  110. data/docs/js/searcher.js +229 -0
  111. data/docs/js/searcher.js.gz +0 -0
  112. data/docs/lib/loggable_activity/config_schema_json.html +205 -0
  113. data/docs/lib/tasks/loggable_activity_tasks_rake.html +128 -0
  114. data/docs/table_of_contents.html +954 -0
  115. data/lib/loggable_activity/concerns/current_actor.rb +25 -0
  116. data/lib/loggable_activity/hooks.rb +41 -19
  117. data/lib/loggable_activity/version.rb +1 -1
  118. data/lib/loggable_activity.rb +1 -1
  119. metadata +114 -3
  120. data/lib/loggable_activity/concerns/current_user.rb +0 -26
@@ -0,0 +1,565 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>class LoggableActivity::Activity - RDoc Documentation</title>
8
+
9
+ <script type="text/javascript">
10
+ var rdoc_rel_prefix = "../";
11
+ var index_rel_prefix = "../";
12
+ </script>
13
+
14
+ <script src="../js/navigation.js" defer></script>
15
+ <script src="../js/search.js" defer></script>
16
+ <script src="../js/search_index.js" defer></script>
17
+ <script src="../js/searcher.js" defer></script>
18
+ <script src="../js/darkfish.js" defer></script>
19
+
20
+ <link href="../css/fonts.css" rel="stylesheet">
21
+ <link href="../css/rdoc.css" rel="stylesheet">
22
+
23
+
24
+ <body id="top" role="document" class="class">
25
+ <nav role="navigation">
26
+ <div id="project-navigation">
27
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
+ <h2>
29
+ <a href="../index.html" rel="home">Home</a>
30
+ </h2>
31
+
32
+ <div id="table-of-contents-navigation">
33
+ <a href="../table_of_contents.html#pages">Pages</a>
34
+ <a href="../table_of_contents.html#classes">Classes</a>
35
+ <a href="../table_of_contents.html#methods">Methods</a>
36
+ </div>
37
+ </div>
38
+
39
+ <div id="search-section" role="search" class="project-section initially-hidden">
40
+ <form action="#" method="get" accept-charset="utf-8">
41
+ <div id="search-field-wrapper">
42
+ <input id="search-field" role="combobox" aria-label="Search"
43
+ aria-autocomplete="list" aria-controls="search-results"
44
+ type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
45
+ title="Type to search, Up and Down to navigate, Enter to load">
46
+ </div>
47
+
48
+ <ul id="search-results" aria-label="Search Results"
49
+ aria-busy="false" aria-expanded="false"
50
+ aria-atomic="false" class="initially-hidden"></ul>
51
+ </form>
52
+ </div>
53
+
54
+ </div>
55
+
56
+
57
+
58
+ <div id="class-metadata">
59
+
60
+
61
+ <div id="parent-class-section" class="nav-section">
62
+ <h3>Parent</h3>
63
+
64
+ <p class="link">ActiveRecord::Base
65
+ </div>
66
+
67
+
68
+
69
+
70
+ <!-- Method Quickref -->
71
+ <div id="method-list-section" class="nav-section">
72
+ <h3>Methods</h3>
73
+
74
+ <ul class="link-list" role="directory">
75
+ <li ><a href="#method-c-activities_for_actor">::activities_for_actor</a>
76
+ <li ><a href="#method-c-last">::last</a>
77
+ <li ><a href="#method-c-latest">::latest</a>
78
+ <li ><a href="#method-i-actor_deleted-3F">#actor_deleted?</a>
79
+ <li ><a href="#method-i-actor_display_name">#actor_display_name</a>
80
+ <li ><a href="#method-i-actor_secret_key">#actor_secret_key</a>
81
+ <li ><a href="#method-i-attrs">#attrs</a>
82
+ <li ><a href="#method-i-must_have_at_least_one_payload">#must_have_at_least_one_payload</a>
83
+ <li ><a href="#method-i-ordered_payloads">#ordered_payloads</a>
84
+ <li ><a href="#method-i-payloads_attrs">#payloads_attrs</a>
85
+ <li ><a href="#method-i-primary_payload">#primary_payload</a>
86
+ <li ><a href="#method-i-primary_route">#primary_route</a>
87
+ <li ><a href="#method-i-record_display_name">#record_display_name</a>
88
+ <li ><a href="#method-i-record_key">#record_key</a>
89
+ </ul>
90
+ </div>
91
+
92
+ </div>
93
+ </nav>
94
+
95
+ <main role="main" aria-labelledby="class-LoggableActivity::Activity">
96
+ <h1 id="class-LoggableActivity::Activity" class="class">
97
+ class LoggableActivity::Activity
98
+ </h1>
99
+
100
+ <section class="description">
101
+
102
+ <p>Represents one action in the activity log.</p>
103
+
104
+ </section>
105
+
106
+ <section id="5Buntitled-5D" class="documentation-section">
107
+
108
+
109
+ <section class="constants-list">
110
+ <header>
111
+ <h3>Constants</h3>
112
+ </header>
113
+ <dl>
114
+ <dt id="RELATION_TYPES">RELATION_TYPES
115
+ <dd>
116
+ </dl>
117
+ </section>
118
+
119
+
120
+
121
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
122
+ <header>
123
+ <h3>Public Class Methods</h3>
124
+ </header>
125
+
126
+ <div id="method-c-activities_for_actor" class="method-detail ">
127
+ <div class="method-header">
128
+ <div class="method-heading">
129
+ <span class="method-name">activities_for_actor</span><span
130
+ class="method-args">(actor, limit = 20, params = { offset: 0 })</span>
131
+ <span class="method-click-advice">click to toggle source</span>
132
+ </div>
133
+ </div>
134
+
135
+ <div class="method-description">
136
+ <p>Returns a list of activities for a given actor.</p>
137
+
138
+ <div class="method-source-code" id="activities_for_actor-source">
139
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 142</span>
140
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">activities_for_actor</span>(<span class="ruby-identifier">actor</span>, <span class="ruby-identifier">limit</span> = <span class="ruby-value">20</span>, <span class="ruby-identifier">params</span> = { <span class="ruby-value">offset:</span> <span class="ruby-value">0</span> })
141
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>.<span class="ruby-identifier">latest</span>(<span class="ruby-identifier">limit</span>, <span class="ruby-identifier">params</span>).<span class="ruby-identifier">where</span>(<span class="ruby-value">actor:</span>)
142
+ <span class="ruby-keyword">end</span></pre>
143
+ </div>
144
+ </div>
145
+
146
+
147
+ </div>
148
+
149
+ <div id="method-c-last" class="method-detail ">
150
+ <div class="method-header">
151
+ <div class="method-heading">
152
+ <span class="method-name">last</span><span
153
+ class="method-args">(limit = 1)</span>
154
+ <span class="method-click-advice">click to toggle source</span>
155
+ </div>
156
+ </div>
157
+
158
+ <div class="method-description">
159
+ <p>Returns the last activity. This is done to support of UUID primary keys.</p>
160
+
161
+ <div class="method-source-code" id="last-source">
162
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 160</span>
163
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">last</span>(<span class="ruby-identifier">limit</span> = <span class="ruby-value">1</span>)
164
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">latest</span>(<span class="ruby-value">1</span>).<span class="ruby-identifier">first</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">limit</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
165
+
166
+ <span class="ruby-identifier">latest</span>(<span class="ruby-identifier">limit</span>)
167
+ <span class="ruby-keyword">end</span></pre>
168
+ </div>
169
+ </div>
170
+
171
+
172
+ </div>
173
+
174
+ <div id="method-c-latest" class="method-detail ">
175
+ <div class="method-header">
176
+ <div class="method-heading">
177
+ <span class="method-name">latest</span><span
178
+ class="method-args">(limit = 20, params = { offset: 0 })</span>
179
+ <span class="method-click-advice">click to toggle source</span>
180
+ </div>
181
+ </div>
182
+
183
+ <div class="method-description">
184
+ <p>Returns a list of activities ordered by creation date. This is done to support UUID primary keys.</p>
185
+
186
+ <div class="method-source-code" id="latest-source">
187
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 148</span>
188
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">latest</span>(<span class="ruby-identifier">limit</span> = <span class="ruby-value">20</span>, <span class="ruby-identifier">params</span> = { <span class="ruby-value">offset:</span> <span class="ruby-value">0</span> })
189
+ <span class="ruby-identifier">offset</span> = <span class="ruby-identifier">params</span>[<span class="ruby-value">:offset</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
190
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>
191
+ .<span class="ruby-identifier">all</span>
192
+ .<span class="ruby-identifier">order</span>(<span class="ruby-value">created_at:</span> <span class="ruby-value">:desc</span>)
193
+ .<span class="ruby-identifier">includes</span>(<span class="ruby-value">payloads:</span> <span class="ruby-value">:encryption_key</span>)
194
+ .<span class="ruby-identifier">offset</span>(<span class="ruby-identifier">offset</span>)
195
+ .<span class="ruby-identifier">limit</span>(<span class="ruby-identifier">limit</span>)
196
+ <span class="ruby-keyword">end</span></pre>
197
+ </div>
198
+ </div>
199
+
200
+
201
+ </div>
202
+
203
+ </section>
204
+
205
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
206
+ <header>
207
+ <h3>Public Instance Methods</h3>
208
+ </header>
209
+
210
+ <div id="method-i-actor_display_name" class="method-detail ">
211
+ <div class="method-header">
212
+ <div class="method-heading">
213
+ <span class="method-name">actor_display_name</span><span
214
+ class="method-args">()</span>
215
+ <span class="method-click-advice">click to toggle source</span>
216
+ </div>
217
+ </div>
218
+
219
+ <div class="method-description">
220
+ <p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’</p>
221
+
222
+ <p>Example:</p>
223
+
224
+ <pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">actor_display_name</span>
225
+ </pre>
226
+
227
+ <p>Returns:</p>
228
+
229
+ <pre class="ruby"><span class="ruby-string">&quot;Elvis Presley&quot;</span>
230
+ </pre>
231
+
232
+ <div class="method-source-code" id="actor_display_name-source">
233
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 135</span>
234
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_display_name</span>
235
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;loggable.activity.deleted&#39;</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">actor_deleted?</span>
236
+
237
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Encryption</span>.<span class="ruby-identifier">decrypt</span>(<span class="ruby-identifier">encrypted_actor_name</span>, <span class="ruby-identifier">actor_secret_key</span>)
238
+ <span class="ruby-keyword">end</span></pre>
239
+ </div>
240
+ </div>
241
+
242
+
243
+ </div>
244
+
245
+ <div id="method-i-attrs" class="method-detail ">
246
+ <div class="method-header">
247
+ <div class="method-heading">
248
+ <span class="method-name">attrs</span><span
249
+ class="method-args">()</span>
250
+ <span class="method-click-advice">click to toggle source</span>
251
+ </div>
252
+ </div>
253
+
254
+ <div class="method-description">
255
+ <p>Returns an array of hashes, each representing an activity’s attributes and its associated relations. The structure and relations to include are specified in ‘config/loggable_activity.yaml’. This format is designed for UI display purposes.</p>
256
+
257
+ <p>Each hash in the array contains:</p>
258
+ <ul><li>
259
+ <p>:record_type: The class name of the record.</p>
260
+ </li><li>
261
+ <p>:related_to_activity_as: A descriptor of the payload’s role (e.g., ‘primary_payload’ or ‘current_association’).</p>
262
+ </li><li>
263
+ <p>:attrs: A hash of the record’s attributes.</p>
264
+ </li></ul>
265
+
266
+ <p>Example usage:</p>
267
+
268
+ <pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">attrs</span>
269
+ </pre>
270
+
271
+ <p>Sample return value:</p>
272
+
273
+ <pre>[
274
+ { record_type: MODEL_NAME, related_to_activity_as: &quot;primary_payload&quot;, attrs: { &quot;KEY&quot; =&gt; &quot;VALUE&quot;, ... } },
275
+ { record_type: MODEL_NAME, related_to_activity_as: &quot;current_association&quot;, attrs: { &quot;KEY&quot; =&gt; &quot;VALUE&quot;, ... } },
276
+ ...
277
+ ]</pre>
278
+
279
+ <div class="method-source-code" id="attrs-source">
280
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 54</span>
281
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attrs</span>
282
+ {
283
+ <span class="ruby-value">actor_type:</span>,
284
+ <span class="ruby-value">actor_id:</span>,
285
+ <span class="ruby-value">action:</span>,
286
+ <span class="ruby-value">actor_display_name:</span>,
287
+ <span class="ruby-value">record_display_name:</span>,
288
+ <span class="ruby-value">payloads:</span> <span class="ruby-identifier">payloads_attrs</span>
289
+ }
290
+ <span class="ruby-keyword">end</span></pre>
291
+ </div>
292
+ </div>
293
+
294
+
295
+ </div>
296
+
297
+ <div id="method-i-payloads_attrs" class="method-detail ">
298
+ <div class="method-header">
299
+ <div class="method-heading">
300
+ <span class="method-name">payloads_attrs</span><span
301
+ class="method-args">()</span>
302
+ <span class="method-click-advice">click to toggle source</span>
303
+ </div>
304
+ </div>
305
+
306
+ <div class="method-description">
307
+
308
+
309
+ <div class="method-source-code" id="payloads_attrs-source">
310
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 65</span>
311
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payloads_attrs</span>
312
+ <span class="ruby-identifier">ordered_payloads</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">payload</span><span class="ruby-operator">|</span>
313
+ {
314
+ <span class="ruby-value">relation:</span> <span class="ruby-constant">RELATION_TYPES</span>[<span class="ruby-identifier">payload</span>.<span class="ruby-identifier">related_to_activity_as</span>],
315
+ <span class="ruby-value">record_type:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_type</span>,
316
+ <span class="ruby-value">record_id:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">deleted?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_id</span>,
317
+ <span class="ruby-value">attrs:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">attrs</span>,
318
+ <span class="ruby-value">route:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">payload_route</span>,
319
+ <span class="ruby-value">record_display_name:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_display_name</span>,
320
+ <span class="ruby-value">current_payload:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">current_payload</span>,
321
+ <span class="ruby-value">data_owner:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">data_owner</span>,
322
+ <span class="ruby-value">public_attrs:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">public_attrs</span>
323
+ }
324
+ <span class="ruby-keyword">end</span>
325
+ <span class="ruby-keyword">end</span></pre>
326
+ </div>
327
+ </div>
328
+
329
+
330
+ </div>
331
+
332
+ <div id="method-i-primary_route" class="method-detail ">
333
+ <div class="method-header">
334
+ <div class="method-heading">
335
+ <span class="method-name">primary_route</span><span
336
+ class="method-args">()</span>
337
+ <span class="method-click-advice">click to toggle source</span>
338
+ </div>
339
+ </div>
340
+
341
+ <div class="method-description">
342
+ <p>Returns the path for the activity.</p>
343
+
344
+ <p>Example:</p>
345
+
346
+ <pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">path</span>
347
+ </pre>
348
+
349
+ <p>Returns:</p>
350
+
351
+ <pre class="ruby"><span class="ruby-string">&quot;/path/to/activity&quot;</span>
352
+ </pre>
353
+
354
+ <div class="method-source-code" id="primary_route-source">
355
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 122</span>
356
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_route</span>
357
+ <span class="ruby-identifier">primary_payload</span>.<span class="ruby-identifier">payload_route</span>
358
+ <span class="ruby-keyword">end</span></pre>
359
+ </div>
360
+ </div>
361
+
362
+
363
+ </div>
364
+
365
+ <div id="method-i-record_display_name" class="method-detail ">
366
+ <div class="method-header">
367
+ <div class="method-heading">
368
+ <span class="method-name">record_display_name</span><span
369
+ class="method-args">()</span>
370
+ <span class="method-click-advice">click to toggle source</span>
371
+ </div>
372
+ </div>
373
+
374
+ <div class="method-description">
375
+ <p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’</p>
376
+
377
+ <p>Example:</p>
378
+
379
+ <pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">record_display_name</span>
380
+ </pre>
381
+
382
+ <p>Returns:</p>
383
+
384
+ <pre class="ruby"><span class="ruby-string">&quot;David Bowie&quot;</span>
385
+ </pre>
386
+
387
+ <div class="method-source-code" id="record_display_name-source">
388
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 109</span>
389
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_display_name</span>
390
+ <span class="ruby-identifier">primary_payload</span>&amp;.<span class="ruby-identifier">record_display_name</span>
391
+ <span class="ruby-keyword">end</span></pre>
392
+ </div>
393
+ </div>
394
+
395
+
396
+ </div>
397
+
398
+ </section>
399
+
400
+ <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
401
+ <header>
402
+ <h3>Private Instance Methods</h3>
403
+ </header>
404
+
405
+ <div id="method-i-actor_deleted-3F" class="method-detail ">
406
+ <div class="method-header">
407
+ <div class="method-heading">
408
+ <span class="method-name">actor_deleted?</span><span
409
+ class="method-args">()</span>
410
+ <span class="method-click-advice">click to toggle source</span>
411
+ </div>
412
+ </div>
413
+
414
+ <div class="method-description">
415
+ <p>Check if the actor is deleted. If the actor is deleted, it will return true. This way we don’t rely on access to the main DB to check if the actor is deleted.</p>
416
+
417
+ <div class="method-source-code" id="actor_deleted-3F-source">
418
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 195</span>
419
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_deleted?</span>
420
+ <span class="ruby-identifier">actor_secret_key</span>.<span class="ruby-identifier">nil?</span>
421
+ <span class="ruby-keyword">end</span></pre>
422
+ </div>
423
+ </div>
424
+
425
+
426
+ </div>
427
+
428
+ <div id="method-i-actor_secret_key" class="method-detail ">
429
+ <div class="method-header">
430
+ <div class="method-heading">
431
+ <span class="method-name">actor_secret_key</span><span
432
+ class="method-args">()</span>
433
+ <span class="method-click-advice">click to toggle source</span>
434
+ </div>
435
+ </div>
436
+
437
+ <div class="method-description">
438
+ <p>Returns the key for the actor.</p>
439
+
440
+ <div class="method-source-code" id="actor_secret_key-source">
441
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 200</span>
442
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_secret_key</span>
443
+ <span class="ruby-comment"># @actor_key_secret_key ||=</span>
444
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record_by_type_and_id</span>(<span class="ruby-identifier">actor_type</span>, <span class="ruby-identifier">actor_id</span>)&amp;.<span class="ruby-identifier">secret_key</span>
445
+ <span class="ruby-keyword">end</span></pre>
446
+ </div>
447
+ </div>
448
+
449
+
450
+ </div>
451
+
452
+ <div id="method-i-must_have_at_least_one_payload" class="method-detail ">
453
+ <div class="method-header">
454
+ <div class="method-heading">
455
+ <span class="method-name">must_have_at_least_one_payload</span><span
456
+ class="method-args">()</span>
457
+ <span class="method-click-advice">click to toggle source</span>
458
+ </div>
459
+ </div>
460
+
461
+ <div class="method-description">
462
+ <p>Validates that the activity has at least one payload.</p>
463
+
464
+ <div class="method-source-code" id="must_have_at_least_one_payload-source">
465
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 206</span>
466
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">must_have_at_least_one_payload</span>
467
+ <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-value">:payloads</span>, <span class="ruby-string">&#39;must have at least one payload&#39;</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">empty?</span>
468
+ <span class="ruby-keyword">end</span></pre>
469
+ </div>
470
+ </div>
471
+
472
+
473
+ </div>
474
+
475
+ <div id="method-i-ordered_payloads" class="method-detail ">
476
+ <div class="method-header">
477
+ <div class="method-heading">
478
+ <span class="method-name">ordered_payloads</span><span
479
+ class="method-args">()</span>
480
+ <span class="method-click-advice">click to toggle source</span>
481
+ </div>
482
+ </div>
483
+
484
+ <div class="method-description">
485
+ <p>Returns payloads sorted by :related_to_activity_as.</p>
486
+
487
+ <div class="method-source-code" id="ordered_payloads-source">
488
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 180</span>
489
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ordered_payloads</span>
490
+ <span class="ruby-comment"># payloads.order(related_to_activity_as: :desc)</span>
491
+ <span class="ruby-identifier">payloads</span>
492
+ <span class="ruby-keyword">end</span></pre>
493
+ </div>
494
+ </div>
495
+
496
+
497
+ </div>
498
+
499
+ <div id="method-i-primary_payload" class="method-detail ">
500
+ <div class="method-header">
501
+ <div class="method-heading">
502
+ <span class="method-name">primary_payload</span><span
503
+ class="method-args">()</span>
504
+ <span class="method-click-advice">click to toggle source</span>
505
+ </div>
506
+ </div>
507
+
508
+ <div class="method-description">
509
+ <p>Returns the primary payload associated with the activity.</p>
510
+
511
+ <p>Example usage:</p>
512
+
513
+ <pre class="ruby"><span class="ruby-identifier">payload</span> = <span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">primary_payload</span>
514
+ <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_type</span> <span class="ruby-comment"># =&gt; &#39;SOMD_MODEL_NAME&#39;</span>
515
+ </pre>
516
+
517
+ <div class="method-source-code" id="primary_payload-source">
518
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 174</span>
519
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_payload</span>
520
+ <span class="ruby-identifier">related_to_activity_as</span> = <span class="ruby-node">%w[primary_payload primary_update_payload primary_destroy_payload custom_payload]</span>
521
+ <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">detect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">related_to_activity_as</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">p</span>.<span class="ruby-identifier">related_to_activity_as</span>) }
522
+ <span class="ruby-keyword">end</span></pre>
523
+ </div>
524
+ </div>
525
+
526
+
527
+ </div>
528
+
529
+ <div id="method-i-record_key" class="method-detail ">
530
+ <div class="method-header">
531
+ <div class="method-heading">
532
+ <span class="method-name">record_key</span><span
533
+ class="method-args">()</span>
534
+ <span class="method-click-advice">click to toggle source</span>
535
+ </div>
536
+ </div>
537
+
538
+ <div class="method-description">
539
+ <p>Returns the key for the logged record.</p>
540
+
541
+ <div class="method-source-code" id="record_key-source">
542
+ <pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 186</span>
543
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_key</span>
544
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">nil?</span>
545
+
546
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record</span>(<span class="ruby-identifier">record</span>)&amp;.<span class="ruby-identifier">secret_key</span>
547
+ <span class="ruby-keyword">end</span></pre>
548
+ </div>
549
+ </div>
550
+
551
+
552
+ </div>
553
+
554
+ </section>
555
+
556
+ </section>
557
+ </main>
558
+
559
+
560
+ <footer id="validator-badges" role="contentinfo">
561
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
562
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.7.0.
563
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
564
+ </footer>
565
+