loggable_activity 0.1.56 → 0.1.58
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -1
- data/CHANGELOG.md +9 -0
- data/GETTING-STARTED.md +8 -47
- data/PAYLOAD_EXAMPLE.md +63 -0
- data/docs/LoggableActivity/Activity.html +92 -241
- data/docs/LoggableActivity/Configuration.html +162 -15
- data/docs/LoggableActivity/ConfigurationError.html +148 -0
- data/docs/LoggableActivity/DataOwner.html +138 -0
- data/docs/LoggableActivity/Encryption.html +18 -14
- data/docs/LoggableActivity/EncryptionError.html +47 -1
- data/docs/LoggableActivity/EncryptionKey.html +54 -35
- data/docs/LoggableActivity/Error.html +48 -0
- data/docs/LoggableActivity/Hooks.html +221 -89
- data/docs/LoggableActivity/Payload.html +103 -27
- data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +442 -0
- data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +395 -0
- data/docs/LoggableActivity/Services/PayloadsBuilder.html +342 -0
- data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +490 -0
- data/docs/LoggableActivity/Services.html +93 -0
- data/docs/created.rid +14 -10
- data/docs/index.html +10 -2
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search_index.js +1 -1
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +253 -85
- data/lib/generators/loggable_activity/install_generator.rb +2 -18
- data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +9 -10
- data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +16 -13
- data/lib/loggable_activity/activity.rb +53 -102
- data/lib/loggable_activity/configuration.rb +60 -3
- data/lib/loggable_activity/data_owner.rb +18 -0
- data/lib/loggable_activity/encryption.rb +14 -14
- data/lib/loggable_activity/encryption_key.rb +26 -25
- data/lib/loggable_activity/error.rb +34 -0
- data/lib/loggable_activity/hooks.rb +78 -43
- data/lib/loggable_activity/payload.rb +70 -20
- data/lib/loggable_activity/services/base_payloads_builder.rb +127 -0
- data/lib/loggable_activity/services/destroy_payloads_builder.rb +127 -0
- data/lib/loggable_activity/services/payloads_builder.rb +98 -0
- data/lib/loggable_activity/services/update_payloads_builder.rb +168 -0
- data/lib/loggable_activity/version.rb +1 -1
- data/lib/loggable_activity.rb +6 -6
- data/lib/schemas/config_schema.json +90 -0
- metadata +37 -26
- data/docs/LoggableActivity/PayloadsBuilder.html +0 -441
- data/docs/LoggableActivity/UpdatePayloadsBuilder.html +0 -424
- data/lib/generators/loggable_activity/install_templates_generator.rb +0 -105
- data/lib/generators/loggable_activity/templates/helpers/activity_helper.rb +0 -37
- data/lib/generators/loggable_activity/templates/helpers/router.rb +0 -52
- data/lib/generators/loggable_activity/templates/helpers/routes_helper.rb +0 -20
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +0 -23
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +0 -17
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +0 -17
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +0 -12
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +0 -12
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +0 -11
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +0 -8
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +0 -6
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +0 -17
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +0 -14
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +0 -23
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +0 -21
- data/lib/loggable_activity/payloads_builder.rb +0 -153
- data/lib/loggable_activity/update_payloads_builder.rb +0 -127
@@ -75,21 +75,17 @@
|
|
75
75
|
<li ><a href="#method-c-activities_for_actor">::activities_for_actor</a>
|
76
76
|
<li ><a href="#method-c-last">::last</a>
|
77
77
|
<li ><a href="#method-c-latest">::latest</a>
|
78
|
+
<li ><a href="#method-i-actor_deleted-3F">#actor_deleted?</a>
|
78
79
|
<li ><a href="#method-i-actor_display_name">#actor_display_name</a>
|
79
|
-
<li ><a href="#method-i-
|
80
|
+
<li ><a href="#method-i-actor_secret_key">#actor_secret_key</a>
|
80
81
|
<li ><a href="#method-i-attrs">#attrs</a>
|
81
82
|
<li ><a href="#method-i-must_have_at_least_one_payload">#must_have_at_least_one_payload</a>
|
82
83
|
<li ><a href="#method-i-ordered_payloads">#ordered_payloads</a>
|
83
|
-
<li ><a href="#method-i-
|
84
|
-
<li ><a href="#method-i-previous_associations_attrs">#previous_associations_attrs</a>
|
84
|
+
<li ><a href="#method-i-payloads_attrs">#payloads_attrs</a>
|
85
85
|
<li ><a href="#method-i-primary_payload">#primary_payload</a>
|
86
|
-
<li ><a href="#method-i-
|
86
|
+
<li ><a href="#method-i-primary_route">#primary_route</a>
|
87
87
|
<li ><a href="#method-i-record_display_name">#record_display_name</a>
|
88
88
|
<li ><a href="#method-i-record_key">#record_key</a>
|
89
|
-
<li ><a href="#method-i-relations_attrs">#relations_attrs</a>
|
90
|
-
<li ><a href="#method-i-update_activity_attrs">#update_activity_attrs</a>
|
91
|
-
<li ><a href="#method-i-update_attrs">#update_attrs</a>
|
92
|
-
<li ><a href="#method-i-updated_relations_attrs">#updated_relations_attrs</a>
|
93
89
|
</ul>
|
94
90
|
</div>
|
95
91
|
|
@@ -131,9 +127,9 @@
|
|
131
127
|
<p>Returns a list of activities for a given actor.</p>
|
132
128
|
|
133
129
|
<div class="method-source-code" id="activities_for_actor-source">
|
134
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
130
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 124</span>
|
135
131
|
<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> })
|
136
|
-
<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>)
|
132
|
+
<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>)
|
137
133
|
<span class="ruby-keyword">end</span></pre>
|
138
134
|
</div>
|
139
135
|
</div>
|
@@ -151,10 +147,10 @@
|
|
151
147
|
</div>
|
152
148
|
|
153
149
|
<div class="method-description">
|
154
|
-
<p>Returns the last activity.</p>
|
150
|
+
<p>Returns the last activity. This is done to support of UUID primary keys.</p>
|
155
151
|
|
156
152
|
<div class="method-source-code" id="last-source">
|
157
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
153
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 142</span>
|
158
154
|
<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>)
|
159
155
|
<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>
|
160
156
|
|
@@ -176,16 +172,16 @@
|
|
176
172
|
</div>
|
177
173
|
|
178
174
|
<div class="method-description">
|
179
|
-
<p>Returns a list of activities ordered by creation date.</p>
|
175
|
+
<p>Returns a list of activities ordered by creation date. This is done to support UUID primary keys.</p>
|
180
176
|
|
181
177
|
<div class="method-source-code" id="latest-source">
|
182
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
178
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 130</span>
|
183
179
|
<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> })
|
184
180
|
<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>
|
185
|
-
<span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>
|
181
|
+
<span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>
|
186
182
|
.<span class="ruby-identifier">all</span>
|
187
183
|
.<span class="ruby-identifier">order</span>(<span class="ruby-value">created_at:</span> <span class="ruby-value">:desc</span>)
|
188
|
-
.<span class="ruby-identifier">includes</span>(<span class="ruby-value">:
|
184
|
+
.<span class="ruby-identifier">includes</span>(<span class="ruby-value">payloads:</span> <span class="ruby-value">:encryption_key</span>)
|
189
185
|
.<span class="ruby-identifier">offset</span>(<span class="ruby-identifier">offset</span>)
|
190
186
|
.<span class="ruby-identifier">limit</span>(<span class="ruby-identifier">limit</span>)
|
191
187
|
<span class="ruby-keyword">end</span></pre>
|
@@ -225,11 +221,11 @@
|
|
225
221
|
</pre>
|
226
222
|
|
227
223
|
<div class="method-source-code" id="actor_display_name-source">
|
228
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
224
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 117</span>
|
229
225
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_display_name</span>
|
230
|
-
<span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">'loggable.activity.deleted'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">
|
226
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">'loggable.activity.deleted'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">actor_deleted?</span>
|
231
227
|
|
232
|
-
<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">
|
228
|
+
<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>)
|
233
229
|
<span class="ruby-keyword">end</span></pre>
|
234
230
|
</div>
|
235
231
|
</div>
|
@@ -253,7 +249,7 @@
|
|
253
249
|
<ul><li>
|
254
250
|
<p>:record_type: The class name of the record.</p>
|
255
251
|
</li><li>
|
256
|
-
<p>:
|
252
|
+
<p>:related_to_activity_as: A descriptor of the payload’s role (e.g., ‘primary_payload’ or ‘current_association’).</p>
|
257
253
|
</li><li>
|
258
254
|
<p>:attrs: A hash of the record’s attributes.</p>
|
259
255
|
</li></ul>
|
@@ -266,23 +262,22 @@
|
|
266
262
|
<p>Sample return value:</p>
|
267
263
|
|
268
264
|
<pre>[
|
269
|
-
{ record_type: MODEL_NAME,
|
270
|
-
{ record_type: MODEL_NAME,
|
265
|
+
{ record_type: MODEL_NAME, related_to_activity_as: "primary_payload", attrs: { "KEY" => "VALUE", ... } },
|
266
|
+
{ record_type: MODEL_NAME, related_to_activity_as: "current_association", attrs: { "KEY" => "VALUE", ... } },
|
271
267
|
...
|
272
268
|
]</pre>
|
273
269
|
|
274
270
|
<div class="method-source-code" id="attrs-source">
|
275
271
|
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 37</span>
|
276
272
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attrs</span>
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
<span class="ruby-keyword">end</span>
|
273
|
+
{
|
274
|
+
<span class="ruby-value">actor_type:</span>,
|
275
|
+
<span class="ruby-value">actor_id:</span>,
|
276
|
+
<span class="ruby-value">action:</span>,
|
277
|
+
<span class="ruby-value">actor_display_name:</span>,
|
278
|
+
<span class="ruby-value">record_display_name:</span>,
|
279
|
+
<span class="ruby-value">payloads:</span> <span class="ruby-identifier">payloads_attrs</span>
|
280
|
+
}
|
286
281
|
<span class="ruby-keyword">end</span></pre>
|
287
282
|
</div>
|
288
283
|
</div>
|
@@ -290,32 +285,33 @@
|
|
290
285
|
|
291
286
|
</div>
|
292
287
|
|
293
|
-
<div id="method-i-
|
288
|
+
<div id="method-i-payloads_attrs" class="method-detail ">
|
294
289
|
<div class="method-header">
|
295
290
|
<div class="method-heading">
|
296
|
-
<span class="method-name">
|
291
|
+
<span class="method-name">payloads_attrs</span><span
|
297
292
|
class="method-args">()</span>
|
298
293
|
<span class="method-click-advice">click to toggle source</span>
|
299
294
|
</div>
|
300
295
|
</div>
|
301
296
|
|
302
297
|
<div class="method-description">
|
303
|
-
|
298
|
+
|
304
299
|
|
305
|
-
<
|
306
|
-
|
307
|
-
<
|
308
|
-
</
|
309
|
-
|
310
|
-
<
|
311
|
-
|
312
|
-
<
|
313
|
-
</
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
<span class="ruby-
|
318
|
-
|
300
|
+
<div class="method-source-code" id="payloads_attrs-source">
|
301
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 48</span>
|
302
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payloads_attrs</span>
|
303
|
+
<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>
|
304
|
+
{
|
305
|
+
<span class="ruby-value">related_to_activity_as:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">related_to_activity_as</span>,
|
306
|
+
<span class="ruby-value">record_type:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_type</span>,
|
307
|
+
<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>,
|
308
|
+
<span class="ruby-value">attrs:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">attrs</span>,
|
309
|
+
<span class="ruby-value">route:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">payload_route</span>,
|
310
|
+
<span class="ruby-value">record_display_name:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_display_name</span>,
|
311
|
+
<span class="ruby-value">current_payload:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">current_payload</span>,
|
312
|
+
<span class="ruby-value">data_owner:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">data_owner</span>
|
313
|
+
}
|
314
|
+
<span class="ruby-keyword">end</span>
|
319
315
|
<span class="ruby-keyword">end</span></pre>
|
320
316
|
</div>
|
321
317
|
</div>
|
@@ -323,31 +319,32 @@
|
|
323
319
|
|
324
320
|
</div>
|
325
321
|
|
326
|
-
<div id="method-i-
|
322
|
+
<div id="method-i-primary_route" class="method-detail ">
|
327
323
|
<div class="method-header">
|
328
324
|
<div class="method-heading">
|
329
|
-
<span class="method-name">
|
325
|
+
<span class="method-name">primary_route</span><span
|
330
326
|
class="method-args">()</span>
|
331
327
|
<span class="method-click-advice">click to toggle source</span>
|
332
328
|
</div>
|
333
329
|
</div>
|
334
330
|
|
335
331
|
<div class="method-description">
|
336
|
-
<p>Returns the
|
332
|
+
<p>Returns the path for the activity.</p>
|
337
333
|
|
338
334
|
<p>Example:</p>
|
339
335
|
|
340
|
-
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">
|
336
|
+
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">path</span>
|
341
337
|
</pre>
|
342
338
|
|
343
339
|
<p>Returns:</p>
|
344
340
|
|
345
|
-
<pre
|
341
|
+
<pre class="ruby"><span class="ruby-string">"/path/to/activity"</span>
|
342
|
+
</pre>
|
346
343
|
|
347
|
-
<div class="method-source-code" id="
|
348
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
349
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">
|
350
|
-
<span class="ruby-identifier">primary_payload</span
|
344
|
+
<div class="method-source-code" id="primary_route-source">
|
345
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 104</span>
|
346
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_route</span>
|
347
|
+
<span class="ruby-identifier">primary_payload</span>.<span class="ruby-identifier">payload_route</span>
|
351
348
|
<span class="ruby-keyword">end</span></pre>
|
352
349
|
</div>
|
353
350
|
</div>
|
@@ -378,11 +375,9 @@
|
|
378
375
|
</pre>
|
379
376
|
|
380
377
|
<div class="method-source-code" id="record_display_name-source">
|
381
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
378
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 91</span>
|
382
379
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_display_name</span>
|
383
|
-
<span class="ruby-
|
384
|
-
|
385
|
-
<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_record_display_name</span>, <span class="ruby-identifier">record_key</span>)
|
380
|
+
<span class="ruby-identifier">primary_payload</span>.<span class="ruby-identifier">record_display_name</span>
|
386
381
|
<span class="ruby-keyword">end</span></pre>
|
387
382
|
</div>
|
388
383
|
</div>
|
@@ -390,92 +385,29 @@
|
|
390
385
|
|
391
386
|
</div>
|
392
387
|
|
393
|
-
|
394
|
-
<div class="method-header">
|
395
|
-
<div class="method-heading">
|
396
|
-
<span class="method-name">relations_attrs</span><span
|
397
|
-
class="method-args">()</span>
|
398
|
-
<span class="method-click-advice">click to toggle source</span>
|
399
|
-
</div>
|
400
|
-
</div>
|
401
|
-
|
402
|
-
<div class="method-description">
|
403
|
-
<p>Returns the attributes for the relations.</p>
|
404
|
-
|
405
|
-
<p>Example:</p>
|
406
|
-
|
407
|
-
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">relations_attrs</span>
|
408
|
-
</pre>
|
409
|
-
|
410
|
-
<p>Returns:</p>
|
411
|
-
|
412
|
-
<pre>[
|
413
|
-
{
|
414
|
-
record_type: CLASS.NAME,
|
415
|
-
record_id: INTEGER,
|
416
|
-
payload_type: ENUM
|
417
|
-
attrs: { "KEY_A" => "VALUE_A", "KEY_B" => "VALUE_B", ... }
|
418
|
-
}
|
419
|
-
]</pre>
|
420
|
-
|
421
|
-
<div class="method-source-code" id="relations_attrs-source">
|
422
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 107</span>
|
423
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">relations_attrs</span>
|
424
|
-
<span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">filter</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'current_association'</span> }
|
425
|
-
<span class="ruby-keyword">end</span></pre>
|
426
|
-
</div>
|
427
|
-
</div>
|
428
|
-
|
388
|
+
</section>
|
429
389
|
|
430
|
-
|
390
|
+
<section id="private-instance-5Buntitled-5D-method-details" class="method-section">
|
391
|
+
<header>
|
392
|
+
<h3>Private Instance Methods</h3>
|
393
|
+
</header>
|
431
394
|
|
432
|
-
<div id="method-i-
|
395
|
+
<div id="method-i-actor_deleted-3F" class="method-detail ">
|
433
396
|
<div class="method-header">
|
434
397
|
<div class="method-heading">
|
435
|
-
<span class="method-name">
|
398
|
+
<span class="method-name">actor_deleted?</span><span
|
436
399
|
class="method-args">()</span>
|
437
400
|
<span class="method-click-advice">click to toggle source</span>
|
438
401
|
</div>
|
439
402
|
</div>
|
440
403
|
|
441
404
|
<div class="method-description">
|
442
|
-
<p>
|
443
|
-
|
444
|
-
<p>Example:</p>
|
445
|
-
|
446
|
-
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">update_activity_attrs</span>
|
447
|
-
</pre>
|
448
|
-
|
449
|
-
<p>The return value is structured as follows:</p>
|
450
|
-
<ul><li>
|
451
|
-
<p>:update_attrs contains the attributes of the record being updated, detailing changes from previous to new values.</p>
|
452
|
-
</li><li>
|
453
|
-
<p>:updated_relations_attrs is an array of hashes, each representing an updated related record. Each hash details the previous and current attributes of the relation.</p>
|
454
|
-
</li></ul>
|
455
|
-
|
456
|
-
<p>Example Return Structure:</p>
|
405
|
+
<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>
|
457
406
|
|
458
|
-
<
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
},
|
463
|
-
updated_relations_attrs: [
|
464
|
-
{
|
465
|
-
record_class: "CLASS.NAME",
|
466
|
-
previous_attrs: { attrs: { "KEY" => "VALUE", ... } },
|
467
|
-
current_attrs: { attrs: { "KEY" => "VALUE", ... } }
|
468
|
-
}
|
469
|
-
]
|
470
|
-
}</pre>
|
471
|
-
|
472
|
-
<div class="method-source-code" id="update_activity_attrs-source">
|
473
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 72</span>
|
474
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">update_activity_attrs</span>
|
475
|
-
{
|
476
|
-
<span class="ruby-value">update_attrs:</span>,
|
477
|
-
<span class="ruby-value">updated_relations_attrs:</span>
|
478
|
-
}
|
407
|
+
<div class="method-source-code" id="actor_deleted-3F-source">
|
408
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 177</span>
|
409
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_deleted?</span>
|
410
|
+
<span class="ruby-identifier">actor_secret_key</span>.<span class="ruby-identifier">nil?</span>
|
479
411
|
<span class="ruby-keyword">end</span></pre>
|
480
412
|
</div>
|
481
413
|
</div>
|
@@ -483,17 +415,10 @@
|
|
483
415
|
|
484
416
|
</div>
|
485
417
|
|
486
|
-
|
487
|
-
|
488
|
-
<section id="private-instance-5Buntitled-5D-method-details" class="method-section">
|
489
|
-
<header>
|
490
|
-
<h3>Private Instance Methods</h3>
|
491
|
-
</header>
|
492
|
-
|
493
|
-
<div id="method-i-actor_key" class="method-detail ">
|
418
|
+
<div id="method-i-actor_secret_key" class="method-detail ">
|
494
419
|
<div class="method-header">
|
495
420
|
<div class="method-heading">
|
496
|
-
<span class="method-name">
|
421
|
+
<span class="method-name">actor_secret_key</span><span
|
497
422
|
class="method-args">()</span>
|
498
423
|
<span class="method-click-advice">click to toggle source</span>
|
499
424
|
</div>
|
@@ -502,12 +427,11 @@
|
|
502
427
|
<div class="method-description">
|
503
428
|
<p>Returns the key for the actor.</p>
|
504
429
|
|
505
|
-
<div class="method-source-code" id="
|
506
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
507
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">
|
508
|
-
<span class="ruby-
|
509
|
-
|
510
|
-
<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">actor</span>)&.<span class="ruby-identifier">key</span>
|
430
|
+
<div class="method-source-code" id="actor_secret_key-source">
|
431
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 182</span>
|
432
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_secret_key</span>
|
433
|
+
<span class="ruby-comment"># @actor_key_secret_key ||=</span>
|
434
|
+
<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>)&.<span class="ruby-identifier">secret_key</span>
|
511
435
|
<span class="ruby-keyword">end</span></pre>
|
512
436
|
</div>
|
513
437
|
</div>
|
@@ -528,7 +452,7 @@
|
|
528
452
|
<p>Validates that the activity has at least one payload.</p>
|
529
453
|
|
530
454
|
<div class="method-source-code" id="must_have_at_least_one_payload-source">
|
531
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
455
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 188</span>
|
532
456
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">must_have_at_least_one_payload</span>
|
533
457
|
<span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-value">:payloads</span>, <span class="ruby-string">'must have at least one payload'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">empty?</span>
|
534
458
|
<span class="ruby-keyword">end</span></pre>
|
@@ -548,35 +472,13 @@
|
|
548
472
|
</div>
|
549
473
|
|
550
474
|
<div class="method-description">
|
551
|
-
<p>Returns payloads sorted by :
|
475
|
+
<p>Returns payloads sorted by :related_to_activity_as.</p>
|
552
476
|
|
553
477
|
<div class="method-source-code" id="ordered_payloads-source">
|
554
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
478
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 162</span>
|
555
479
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ordered_payloads</span>
|
556
|
-
<span class="ruby-
|
557
|
-
<span class="ruby-
|
558
|
-
</div>
|
559
|
-
</div>
|
560
|
-
|
561
|
-
|
562
|
-
</div>
|
563
|
-
|
564
|
-
<div id="method-i-previous_associations_attrs" class="method-detail ">
|
565
|
-
<div class="method-header">
|
566
|
-
<div class="method-heading">
|
567
|
-
<span class="method-name">previous_associations_attrs</span><span
|
568
|
-
class="method-args">()</span>
|
569
|
-
<span class="method-click-advice">click to toggle source</span>
|
570
|
-
</div>
|
571
|
-
</div>
|
572
|
-
|
573
|
-
<div class="method-description">
|
574
|
-
<p>Returns the previous association attributes.</p>
|
575
|
-
|
576
|
-
<div class="method-source-code" id="previous_associations_attrs-source">
|
577
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 207</span>
|
578
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">previous_associations_attrs</span>
|
579
|
-
<span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'previous_association'</span> }
|
480
|
+
<span class="ruby-comment"># payloads.order(related_to_activity_as: :desc)</span>
|
481
|
+
<span class="ruby-identifier">payloads</span>
|
580
482
|
<span class="ruby-keyword">end</span></pre>
|
581
483
|
</div>
|
582
484
|
</div>
|
@@ -594,12 +496,19 @@
|
|
594
496
|
</div>
|
595
497
|
|
596
498
|
<div class="method-description">
|
597
|
-
<p>Returns the primary payload.</p>
|
499
|
+
<p>Returns the primary payload associated with the activity.</p>
|
500
|
+
|
501
|
+
<p>Example usage:</p>
|
502
|
+
|
503
|
+
<pre class="ruby"><span class="ruby-identifier">payload</span> = <span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">primary_payload</span>
|
504
|
+
<span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_type</span> <span class="ruby-comment"># => 'SOMD_MODEL_NAME'</span>
|
505
|
+
</pre>
|
598
506
|
|
599
507
|
<div class="method-source-code" id="primary_payload-source">
|
600
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
508
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 156</span>
|
601
509
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_payload</span>
|
602
|
-
<span class="ruby-identifier">
|
510
|
+
<span class="ruby-identifier">related_to_activity_as</span> = <span class="ruby-node">%w[primary_payload primary_update_payload primary_destroy_payload]</span>
|
511
|
+
<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>) }
|
603
512
|
<span class="ruby-keyword">end</span></pre>
|
604
513
|
</div>
|
605
514
|
</div>
|
@@ -620,69 +529,11 @@
|
|
620
529
|
<p>Returns the key for the logged record.</p>
|
621
530
|
|
622
531
|
<div class="method-source-code" id="record_key-source">
|
623
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
532
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 168</span>
|
624
533
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_key</span>
|
625
534
|
<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>
|
626
535
|
|
627
|
-
<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>)&.<span class="ruby-identifier">
|
628
|
-
<span class="ruby-keyword">end</span></pre>
|
629
|
-
</div>
|
630
|
-
</div>
|
631
|
-
|
632
|
-
|
633
|
-
</div>
|
634
|
-
|
635
|
-
<div id="method-i-update_attrs" class="method-detail ">
|
636
|
-
<div class="method-header">
|
637
|
-
<div class="method-heading">
|
638
|
-
<span class="method-name">update_attrs</span><span
|
639
|
-
class="method-args">()</span>
|
640
|
-
<span class="method-click-advice">click to toggle source</span>
|
641
|
-
</div>
|
642
|
-
</div>
|
643
|
-
|
644
|
-
<div class="method-description">
|
645
|
-
<p>Returns the attributes for the update+payload.</p>
|
646
|
-
|
647
|
-
<div class="method-source-code" id="update_attrs-source">
|
648
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 180</span>
|
649
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">update_attrs</span>
|
650
|
-
<span class="ruby-identifier">update_payload_attrs</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'update_payload'</span> }
|
651
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">update_payload_attrs</span>
|
652
|
-
|
653
|
-
<span class="ruby-identifier">update_payload_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:payload_type</span>)
|
654
|
-
<span class="ruby-identifier">update_payload_attrs</span>
|
655
|
-
<span class="ruby-keyword">end</span></pre>
|
656
|
-
</div>
|
657
|
-
</div>
|
658
|
-
|
659
|
-
|
660
|
-
</div>
|
661
|
-
|
662
|
-
<div id="method-i-updated_relations_attrs" class="method-detail ">
|
663
|
-
<div class="method-header">
|
664
|
-
<div class="method-heading">
|
665
|
-
<span class="method-name">updated_relations_attrs</span><span
|
666
|
-
class="method-args">()</span>
|
667
|
-
<span class="method-click-advice">click to toggle source</span>
|
668
|
-
</div>
|
669
|
-
</div>
|
670
|
-
|
671
|
-
<div class="method-description">
|
672
|
-
<p>Returns the attributes for the updated relations.</p>
|
673
|
-
|
674
|
-
<div class="method-source-code" id="updated_relations_attrs-source">
|
675
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 194</span>
|
676
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">updated_relations_attrs</span>
|
677
|
-
<span class="ruby-identifier">grouped_associations</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">group_by</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:record_type</span>] }
|
678
|
-
|
679
|
-
<span class="ruby-identifier">grouped_associations</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record_type</span>, <span class="ruby-identifier">payloads</span><span class="ruby-operator">|</span>
|
680
|
-
<span class="ruby-identifier">previous_attrs</span> = <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'previous_association'</span> }
|
681
|
-
<span class="ruby-identifier">current_attrs</span> = <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'current_association'</span> }
|
682
|
-
<span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">previous_attrs</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">current_attrs</span>.<span class="ruby-identifier">nil?</span>
|
683
|
-
|
684
|
-
{ <span class="ruby-value">record_type:</span>, <span class="ruby-value">previous_attrs:</span>, <span class="ruby-value">current_attrs:</span> }
|
685
|
-
<span class="ruby-keyword">end</span>.<span class="ruby-identifier">compact</span>
|
536
|
+
<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>)&.<span class="ruby-identifier">secret_key</span>
|
686
537
|
<span class="ruby-keyword">end</span></pre>
|
687
538
|
</div>
|
688
539
|
</div>
|