loggable_activity 0.1.53 → 0.1.55

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/CHANGELOG.md +6 -0
  4. data/GETTING-STARTED.md +5 -12
  5. data/README.md +2 -0
  6. data/docs/LoggableActivity/Activity.html +108 -139
  7. data/docs/LoggableActivity/Configuration.html +3 -3
  8. data/docs/LoggableActivity/Encryption.html +7 -4
  9. data/docs/LoggableActivity/EncryptionKey.html +4 -2
  10. data/docs/LoggableActivity/Hooks.html +37 -37
  11. data/docs/LoggableActivity/Payload.html +32 -6
  12. data/docs/LoggableActivity/PayloadsBuilder.html +14 -11
  13. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +29 -28
  14. data/docs/LoggableActivity.html +3 -1
  15. data/docs/created.rid +10 -10
  16. data/docs/js/search_index.js +1 -1
  17. data/docs/js/search_index.js.gz +0 -0
  18. data/docs/table_of_contents.html +14 -4
  19. data/help/loggable_activity_help.txt +19 -0
  20. data/lib/generators/loggable_activity/.DS_Store +0 -0
  21. data/lib/generators/loggable_activity/install_generator.rb +94 -6
  22. data/lib/generators/loggable_activity/install_templates_generator.rb +61 -0
  23. data/lib/generators/loggable_activity/templates/.DS_Store +0 -0
  24. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +31 -0
  25. data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +17 -0
  26. data/lib/generators/loggable_activity/templates/helpers/loggable_activity_helper.rb +2 -2
  27. data/lib/generators/loggable_activity/templates/loggable_activity_helper.rb +14 -5
  28. data/lib/loggable_activity/activity.rb +56 -107
  29. data/lib/loggable_activity/configuration.rb +1 -0
  30. data/lib/loggable_activity/encryption.rb +6 -2
  31. data/lib/loggable_activity/encryption_key.rb +2 -0
  32. data/lib/loggable_activity/hooks.rb +20 -1
  33. data/lib/loggable_activity/payload.rb +7 -0
  34. data/lib/loggable_activity/payloads_builder.rb +6 -3
  35. data/lib/loggable_activity/update_payloads_builder.rb +17 -7
  36. data/lib/loggable_activity/version.rb +3 -1
  37. data/lib/loggable_activity.rb +0 -1
  38. metadata +6 -6
  39. data/lib/generators/loggable_activity/templates/create_loggable_encryption_keys.rb +0 -11
  40. data/lib/generators/loggable_activity/templates/create_loggable_payloads.rb +0 -15
  41. /data/lib/generators/loggable_activity/templates/config/{loggable_activity.yml → loggable_activity.yaml} +0 -0
  42. /data/lib/generators/loggable_activity/templates/{loggable_activity.en.yml → loggable_activity.en.yaml} +0 -0
@@ -139,7 +139,7 @@
139
139
  </pre>
140
140
 
141
141
  <div class="method-source-code" id="create_encryption_key-source">
142
- <pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 93</span>
142
+ <pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 95</span>
143
143
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">create_encryption_key</span>(<span class="ruby-identifier">record_type</span>, <span class="ruby-identifier">record_id</span>, <span class="ruby-identifier">parent_key</span> = <span class="ruby-keyword">nil</span>)
144
144
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">parent_key</span>
145
145
  <span class="ruby-identifier">create</span>(<span class="ruby-value">record_type:</span>, <span class="ruby-value">record_id:</span>, <span class="ruby-value">key:</span> <span class="ruby-identifier">random_key</span>, <span class="ruby-value">parent_key:</span>)
@@ -189,6 +189,8 @@
189
189
  <div class="method-source-code" id="for_record-source">
190
190
  <pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 67</span>
191
191
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">for_record</span>(<span class="ruby-identifier">record</span>, <span class="ruby-identifier">parent_key</span> = <span class="ruby-keyword">nil</span>)
192
+ <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>
193
+
192
194
  <span class="ruby-identifier">encryption_key</span> = <span class="ruby-identifier">find_by</span>(<span class="ruby-value">record:</span>)
193
195
  <span class="ruby-keyword">return</span> <span class="ruby-identifier">encryption_key</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">encryption_key</span>
194
196
 
@@ -272,7 +274,7 @@
272
274
  </pre>
273
275
 
274
276
  <div class="method-source-code" id="random_key-source">
275
- <pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 111</span>
277
+ <pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 113</span>
276
278
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">random_key</span>
277
279
  <span class="ruby-comment"># Generate 32 random bytes (256 bits) directly</span>
278
280
  <span class="ruby-identifier">encryption_key</span> = <span class="ruby-constant">SecureRandom</span>.<span class="ruby-identifier">random_bytes</span>(<span class="ruby-value">32</span>)
@@ -147,7 +147,7 @@
147
147
  @param params [Hash] Additional parameters for the activity.</pre>
148
148
 
149
149
  <div class="method-source-code" id="log-source">
150
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 40</span>
150
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 41</span>
151
151
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log</span>(<span class="ruby-identifier">action</span>, <span class="ruby-value">actor:</span> <span class="ruby-keyword">nil</span>, <span class="ruby-value">params:</span> {})
152
152
  <span class="ruby-ivar">@action</span> = <span class="ruby-identifier">action</span>
153
153
  <span class="ruby-ivar">@actor</span> = <span class="ruby-identifier">actor</span> <span class="ruby-operator">||</span> <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-value">:current_user</span>]
@@ -193,10 +193,10 @@
193
193
  </div>
194
194
 
195
195
  <div class="method-description">
196
-
196
+ <p>Returns the action key for the current action.</p>
197
197
 
198
198
  <div class="method-source-code" id="action_key-source">
199
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 124</span>
199
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 137</span>
200
200
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">action_key</span>
201
201
  <span class="ruby-ivar">@action_key</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">base_action</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;.#{@action}&quot;</span>
202
202
  <span class="ruby-keyword">end</span></pre>
@@ -216,10 +216,10 @@
216
216
  </div>
217
217
 
218
218
  <div class="method-description">
219
-
219
+ <p>Returns the display name of the actor.</p>
220
220
 
221
221
  <div class="method-source-code" id="actor_display_name_field-source">
222
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 141</span>
222
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 158</span>
223
223
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_display_name_field</span>
224
224
  <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">application</span>.<span class="ruby-identifier">config</span>.<span class="ruby-identifier">loggable_activity</span>.<span class="ruby-identifier">actor_display_name</span> <span class="ruby-operator">||</span> <span class="ruby-node">&quot;id: #{@actor.id}, class: #{@actor.class.name}&quot;</span>
225
225
  <span class="ruby-keyword">end</span></pre>
@@ -239,10 +239,10 @@
239
239
  </div>
240
240
 
241
241
  <div class="method-description">
242
-
242
+ <p>Returns the encryption key for the actor.</p>
243
243
 
244
244
  <div class="method-source-code" id="actor_encryption_key-source">
245
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 137</span>
245
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 153</span>
246
246
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_encryption_key</span>
247
247
  <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-ivar">@actor</span>)&amp;.<span class="ruby-identifier">key</span>
248
248
  <span class="ruby-keyword">end</span></pre>
@@ -262,10 +262,10 @@
262
262
  </div>
263
263
 
264
264
  <div class="method-description">
265
-
265
+ <p>Convert the model name and name space in to ‘base_action’.</p>
266
266
 
267
267
  <div class="method-source-code" id="base_action-source">
268
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 152</span>
268
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 171</span>
269
269
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">base_action</span>
270
270
  <span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&#39;::&#39;</span>, <span class="ruby-string">&#39;/&#39;</span>)
271
271
  <span class="ruby-keyword">end</span></pre>
@@ -285,10 +285,10 @@
285
285
  </div>
286
286
 
287
287
  <div class="method-description">
288
-
288
+ <p>Creates an activity with the specified payloads.</p>
289
289
 
290
290
  <div class="method-source-code" id="create_activity-source">
291
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 77</span>
291
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 82</span>
292
292
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">create_activity</span>(<span class="ruby-identifier">payloads</span>)
293
293
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">nothing_to_log?</span>(<span class="ruby-identifier">payloads</span>)
294
294
 
@@ -317,10 +317,10 @@
317
317
  </div>
318
318
 
319
319
  <div class="method-description">
320
-
320
+ <p>Returns the model name of the current user.</p>
321
321
 
322
322
  <div class="method-source-code" id="current_user_model-3F-source">
323
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 145</span>
323
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 163</span>
324
324
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">current_user_model?</span>
325
325
  <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">application</span>.<span class="ruby-identifier">config</span>.<span class="ruby-identifier">loggable_activity</span>.<span class="ruby-identifier">current_user_model_name</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>
326
326
  <span class="ruby-keyword">end</span></pre>
@@ -340,10 +340,10 @@
340
340
  </div>
341
341
 
342
342
  <div class="method-description">
343
-
343
+ <p>Returns the encrypted name of the actor.</p>
344
344
 
345
345
  <div class="method-source-code" id="encrypted_actor_name-source">
346
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 109</span>
346
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 120</span>
347
347
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypted_actor_name</span>
348
348
  <span class="ruby-identifier">actor_display_name</span> = <span class="ruby-ivar">@actor</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">actor_display_name_field</span>)
349
349
  <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Encryption</span>.<span class="ruby-identifier">encrypt</span>(<span class="ruby-identifier">actor_display_name</span>, <span class="ruby-identifier">actor_encryption_key</span>)
@@ -364,10 +364,10 @@
364
364
  </div>
365
365
 
366
366
  <div class="method-description">
367
-
367
+ <p>Returns the encrypted name of the record.</p>
368
368
 
369
369
  <div class="method-source-code" id="encrypted_record_name-source">
370
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 114</span>
370
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 126</span>
371
371
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypted_record_name</span>
372
372
  <span class="ruby-identifier">display_name</span> =
373
373
  <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">record_display_name</span>.<span class="ruby-identifier">nil?</span>
@@ -393,10 +393,10 @@
393
393
  </div>
394
394
 
395
395
  <div class="method-description">
396
-
396
+ <p>Logs an activity for the current action.</p>
397
397
 
398
398
  <div class="method-source-code" id="log_activity-source">
399
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 65</span>
399
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 67</span>
400
400
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_activity</span>
401
401
  <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_payloads</span>)
402
402
  <span class="ruby-keyword">end</span></pre>
@@ -416,10 +416,10 @@
416
416
  </div>
417
417
 
418
418
  <div class="method-description">
419
-
419
+ <p>Logs a create activity automatically if configured.</p>
420
420
 
421
421
  <div class="method-source-code" id="log_create_activity-source">
422
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 100</span>
422
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 109</span>
423
423
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_create_activity</span>
424
424
  <span class="ruby-identifier">log</span>(<span class="ruby-value">:create</span>) <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">auto_log</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&#39;create&#39;</span>)
425
425
  <span class="ruby-keyword">end</span></pre>
@@ -439,10 +439,10 @@
439
439
  </div>
440
440
 
441
441
  <div class="method-description">
442
-
442
+ <p>Logs a custom activity.</p>
443
443
 
444
444
  <div class="method-source-code" id="log_custom_activity-source">
445
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 94</span>
445
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 101</span>
446
446
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_custom_activity</span>(<span class="ruby-identifier">activity</span>); <span class="ruby-keyword">end</span></pre>
447
447
  </div>
448
448
  </div>
@@ -460,10 +460,10 @@
460
460
  </div>
461
461
 
462
462
  <div class="method-description">
463
-
463
+ <p>Logs an activity for the destroy action.</p>
464
464
 
465
465
  <div class="method-source-code" id="log_destroy-source">
466
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 73</span>
466
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 77</span>
467
467
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_destroy</span>
468
468
  <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_destroy_payload</span>)
469
469
  <span class="ruby-keyword">end</span></pre>
@@ -483,10 +483,10 @@
483
483
  </div>
484
484
 
485
485
  <div class="method-description">
486
-
486
+ <p>Logs a destroy activity automatically if configured.</p>
487
487
 
488
488
  <div class="method-source-code" id="log_destroy_activity-source">
489
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 104</span>
489
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 114</span>
490
490
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_destroy_activity</span>
491
491
  <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-keyword">self</span>)&amp;.<span class="ruby-identifier">mark_as_deleted</span>
492
492
  <span class="ruby-identifier">log</span>(<span class="ruby-value">:destroy</span>) <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">auto_log</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&#39;destroy&#39;</span>)
@@ -507,10 +507,10 @@
507
507
  </div>
508
508
 
509
509
  <div class="method-description">
510
-
510
+ <p>Logs an activity for the update action.</p>
511
511
 
512
512
  <div class="method-source-code" id="log_update-source">
513
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 69</span>
513
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 72</span>
514
514
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_update</span>
515
515
  <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_update_payloads</span>)
516
516
  <span class="ruby-keyword">end</span></pre>
@@ -530,10 +530,10 @@
530
530
  </div>
531
531
 
532
532
  <div class="method-description">
533
-
533
+ <p>Logs an update activity automatically if configured.</p>
534
534
 
535
535
  <div class="method-source-code" id="log_update_activity-source">
536
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 96</span>
536
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 104</span>
537
537
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_update_activity</span>
538
538
  <span class="ruby-identifier">log</span>(<span class="ruby-value">:update</span>) <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">auto_log</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&#39;update&#39;</span>)
539
539
  <span class="ruby-keyword">end</span></pre>
@@ -553,10 +553,10 @@
553
553
  </div>
554
554
 
555
555
  <div class="method-description">
556
-
556
+ <p>Returns true if there are no payloads to log.</p>
557
557
 
558
558
  <div class="method-source-code" id="nothing_to_log-3F-source">
559
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 90</span>
559
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 96</span>
560
560
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">nothing_to_log?</span>(<span class="ruby-identifier">payloads</span>)
561
561
  <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">empty?</span>
562
562
  <span class="ruby-keyword">end</span></pre>
@@ -576,10 +576,10 @@
576
576
  </div>
577
577
 
578
578
  <div class="method-description">
579
-
579
+ <p>Returns the primary encryption key for the activity</p>
580
580
 
581
581
  <div class="method-source-code" id="primary_encryption_key-source">
582
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 128</span>
582
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 142</span>
583
583
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_encryption_key</span>
584
584
  <span class="ruby-ivar">@primary_encryption_key</span> <span class="ruby-operator">||=</span>
585
585
  <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-keyword">self</span>)&amp;.<span class="ruby-identifier">key</span>
@@ -600,10 +600,10 @@
600
600
  </div>
601
601
 
602
602
  <div class="method-description">
603
-
603
+ <p>Returns true if the primary encryption key is deleted.</p>
604
604
 
605
605
  <div class="method-source-code" id="primary_encryption_key_deleted-3F-source">
606
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 133</span>
606
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 148</span>
607
607
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_encryption_key_deleted?</span>
608
608
  <span class="ruby-identifier">primary_encryption_key</span>.<span class="ruby-identifier">nil?</span>
609
609
  <span class="ruby-keyword">end</span></pre>
@@ -79,6 +79,7 @@
79
79
  <li ><a href="#method-i-decrypted_update_attrs">#decrypted_update_attrs</a>
80
80
  <li ><a href="#method-i-deleted_attrs">#deleted_attrs</a>
81
81
  <li ><a href="#method-i-payload_encryption_key">#payload_encryption_key</a>
82
+ <li ><a href="#method-i-payload_route">#payload_route</a>
82
83
  </ul>
83
84
  </div>
84
85
 
@@ -151,6 +152,31 @@ Returns:
151
152
 
152
153
  </div>
153
154
 
155
+ <div id="method-i-payload_route" class="method-detail ">
156
+ <div class="method-header">
157
+ <div class="method-heading">
158
+ <span class="method-name">payload_route</span><span
159
+ class="method-args">()</span>
160
+ <span class="method-click-advice">click to toggle source</span>
161
+ </div>
162
+ </div>
163
+
164
+ <div class="method-description">
165
+ <p>Returns the route for the payload.</p>
166
+
167
+ <div class="method-source-code" id="payload_route-source">
168
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 54</span>
169
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payload_route</span>
170
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">payload_encryption_key</span>.<span class="ruby-identifier">nil?</span>
171
+
172
+ <span class="ruby-identifier">route</span>
173
+ <span class="ruby-keyword">end</span></pre>
174
+ </div>
175
+ </div>
176
+
177
+
178
+ </div>
179
+
154
180
  </section>
155
181
 
156
182
  <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
@@ -173,7 +199,7 @@ Returns:
173
199
  <p>@param value [String] The encrypted value to decrypt. @return [String] The decrypted value.</p>
174
200
 
175
201
  <div class="method-source-code" id="decrypt_attr-source">
176
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 103</span>
202
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 110</span>
177
203
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypt_attr</span>(<span class="ruby-identifier">value</span>)
178
204
  <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">value</span>, <span class="ruby-identifier">payload_encryption_key</span>)
179
205
  <span class="ruby-keyword">end</span></pre>
@@ -198,7 +224,7 @@ Returns:
198
224
  <p>@return [Hash] The decrypted attributes.</p>
199
225
 
200
226
  <div class="method-source-code" id="decrypted_attrs-source">
201
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 93</span>
227
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 100</span>
202
228
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_attrs</span>
203
229
  <span class="ruby-identifier">encrypted_attrs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
204
230
  <span class="ruby-identifier">encrypted_attrs</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">decrypt_attr</span>(<span class="ruby-identifier">value</span>)
@@ -225,7 +251,7 @@ Returns:
225
251
  <p>@param change [Hash] The change hash containing ‘from’ and ‘to’ values. @return [Hash] The decrypted ‘from’ and ‘to’ values.</p>
226
252
 
227
253
  <div class="method-source-code" id="decrypted_from_to_attr-source">
228
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 82</span>
254
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 89</span>
229
255
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_from_to_attr</span>(<span class="ruby-identifier">change</span>)
230
256
  <span class="ruby-identifier">change</span>.<span class="ruby-identifier">to_h</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
231
257
  <span class="ruby-identifier">from</span> = <span class="ruby-identifier">decrypt_attr</span>(<span class="ruby-identifier">value</span>[<span class="ruby-string">&#39;from&#39;</span>])
@@ -254,7 +280,7 @@ Returns:
254
280
  <p>@return [Array&lt;Hash&gt;] The array of decrypted changes.</p>
255
281
 
256
282
  <div class="method-source-code" id="decrypted_update_attrs-source">
257
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 72</span>
283
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 79</span>
258
284
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_update_attrs</span>
259
285
  <span class="ruby-identifier">encrypted_attrs</span>[<span class="ruby-string">&#39;changes&#39;</span>].<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">change</span><span class="ruby-operator">|</span>
260
286
  <span class="ruby-identifier">decrypted_from_to_attr</span>(<span class="ruby-identifier">change</span>)
@@ -281,7 +307,7 @@ Returns:
281
307
  <p>@return [Hash] The hash with deleted attributes.</p>
282
308
 
283
309
  <div class="method-source-code" id="deleted_attrs-source">
284
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 65</span>
310
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 72</span>
285
311
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">deleted_attrs</span>
286
312
  <span class="ruby-identifier">encrypted_attrs</span>.<span class="ruby-identifier">transform_values!</span> { <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;loggable.activity.deleted&#39;</span>) }
287
313
  <span class="ruby-keyword">end</span></pre>
@@ -306,7 +332,7 @@ Returns:
306
332
  <p>@return [String, nil] The encryption key.</p>
307
333
 
308
334
  <div class="method-source-code" id="payload_encryption_key-source">
309
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 58</span>
335
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 65</span>
310
336
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payload_encryption_key</span>
311
337
  <span class="ruby-ivar">@payload_encryption_key</span> <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">key</span>
312
338
  <span class="ruby-keyword">end</span></pre>
@@ -171,7 +171,7 @@ Returns:
171
171
  <p>@param associated_record [ActiveRecord::Base] The associated record. @param data_owner [Boolean] Whether the associated record is the owner of the data. @return [LoggableActivity::EncryptionKey] The encryption key for the associated record.</p>
172
172
 
173
173
  <div class="method-source-code" id="associated_record_encryption_key-source">
174
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 120</span>
174
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 123</span>
175
175
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">associated_record_encryption_key</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">data_owner</span>)
176
176
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">data_owner</span>
177
177
  <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">associated_record</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-keyword">self</span>))
@@ -198,7 +198,7 @@ Returns:
198
198
  <p>Builds the payload for an associated record.</p>
199
199
 
200
200
  <div class="method-source-code" id="build_associated_payload-source">
201
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 97</span>
201
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 99</span>
202
202
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_associated_payload</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">relation_config</span>)
203
203
  <span class="ruby-identifier">associated_loggable_attrs</span> = <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;loggable_attrs&#39;</span>]
204
204
  <span class="ruby-identifier">encryption_key</span> = <span class="ruby-identifier">associated_record_encryption_key</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;data_owner&#39;</span>])
@@ -213,7 +213,8 @@ Returns:
213
213
  <span class="ruby-value">record:</span> <span class="ruby-identifier">associated_record</span>,
214
214
  <span class="ruby-value">encrypted_attrs:</span>,
215
215
  <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;current_association&#39;</span>,
216
- <span class="ruby-value">data_owner:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;data_owner&#39;</span>]
216
+ <span class="ruby-value">data_owner:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;data_owner&#39;</span>],
217
+ <span class="ruby-value">route:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;route&#39;</span>]
217
218
  )
218
219
  <span class="ruby-keyword">end</span></pre>
219
220
  </div>
@@ -235,7 +236,7 @@ Returns:
235
236
  <p>Builds the payload for destroyed records.</p>
236
237
 
237
238
  <div class="method-source-code" id="build_destroy_payload-source">
238
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 48</span>
239
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 49</span>
239
240
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_destroy_payload</span>
240
241
  <span class="ruby-identifier">encrypted_attrs</span> = <span class="ruby-identifier">encrypt_attrs</span>(<span class="ruby-identifier">attributes</span>, <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">primary_encryption_key</span>)
241
242
  <span class="ruby-identifier">encrypted_attrs</span>.<span class="ruby-identifier">transform_values!</span> { <span class="ruby-string">&#39;*** DELETED ***&#39;</span> }
@@ -243,7 +244,8 @@ Returns:
243
244
  <span class="ruby-value">record:</span> <span class="ruby-ivar">@record</span>,
244
245
  <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;primary_payload&#39;</span>,
245
246
  <span class="ruby-value">encrypted_attrs:</span>,
246
- <span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>
247
+ <span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>,
248
+ <span class="ruby-value">route:</span> <span class="ruby-keyword">nil</span>
247
249
  )
248
250
  <span class="ruby-keyword">end</span></pre>
249
251
  </div>
@@ -265,7 +267,7 @@ Returns:
265
267
  <p>Builds payloads for has_many relations.</p>
266
268
 
267
269
  <div class="method-source-code" id="build_has_many_payloads-source">
268
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 87</span>
270
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 89</span>
269
271
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_has_many_payloads</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-identifier">relation_type</span>)
270
272
  <span class="ruby-identifier">associated_records</span> = <span class="ruby-identifier">send</span>(<span class="ruby-identifier">relation_config</span>[<span class="ruby-identifier">relation_type</span>])
271
273
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">associated_records</span>.<span class="ruby-identifier">empty?</span>
@@ -295,7 +297,7 @@ Returns:
295
297
  <p>@param relation_config [Hash] The configuration of the relation. @param relation_type [String] The type of the relation.</p>
296
298
 
297
299
  <div class="method-source-code" id="build_payload-source">
298
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 79</span>
300
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 81</span>
299
301
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-identifier">relation_type</span>)
300
302
  <span class="ruby-identifier">associated_record</span> = <span class="ruby-identifier">send</span>(<span class="ruby-identifier">relation_config</span>[<span class="ruby-identifier">relation_type</span>])
301
303
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">associated_record</span>.<span class="ruby-identifier">nil?</span>
@@ -328,7 +330,8 @@ Returns:
328
330
  <span class="ruby-value">record:</span> <span class="ruby-ivar">@record</span>,
329
331
  <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;primary_payload&#39;</span>,
330
332
  <span class="ruby-value">encrypted_attrs:</span>,
331
- <span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>
333
+ <span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>,
334
+ <span class="ruby-value">route:</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">route</span>
332
335
  )
333
336
  <span class="ruby-keyword">end</span></pre>
334
337
  </div>
@@ -352,7 +355,7 @@ Returns:
352
355
  <p>@param relation_config [Hash] The configuration of the relation.</p>
353
356
 
354
357
  <div class="method-source-code" id="build_relation_payload-source">
355
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 62</span>
358
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 64</span>
356
359
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_payload</span>(<span class="ruby-identifier">relation_config</span>)
357
360
  <span class="ruby-identifier">relation_config</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
358
361
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">key</span>
@@ -386,7 +389,7 @@ Returns:
386
389
  <p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key [String] The encryption key. @return [Hash] The encrypted attributes.</p>
387
390
 
388
391
  <div class="method-source-code" id="encrypt_attr-source">
389
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 144</span>
392
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 147</span>
390
393
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypt_attr</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">encryption_key</span>)
391
394
  <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
392
395
  <span class="ruby-identifier">attrs</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Encryption</span>.<span class="ruby-identifier">encrypt</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">encryption_key</span>)
@@ -413,7 +416,7 @@ Returns:
413
416
  <p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array&lt;String&gt;] The loggable attributes. @param encryption_key [String] The encryption key. @return [Hash] The encrypted attributes.</p>
414
417
 
415
418
  <div class="method-source-code" id="encrypt_attrs-source">
416
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 134</span>
419
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 137</span>
417
420
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypt_attrs</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
418
421
  <span class="ruby-identifier">attrs</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">loggable_attrs</span>)
419
422
  <span class="ruby-identifier">encrypt_attr</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">encryption_key</span>)