loggable_activity 0.1.52 → 0.1.54

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/CHANGELOG.md +14 -1
  4. data/GETTING-STARTED.md +96 -42
  5. data/README.md +5 -0
  6. data/docs/LoggableActivity/Activity.html +44 -16
  7. data/docs/LoggableActivity/Encryption.html +31 -24
  8. data/docs/LoggableActivity/EncryptionKey.html +10 -7
  9. data/docs/LoggableActivity/Hooks.html +19 -19
  10. data/docs/LoggableActivity/Payload.html +7 -7
  11. data/docs/LoggableActivity/PayloadsBuilder.html +75 -22
  12. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +66 -67
  13. data/docs/created.rid +10 -10
  14. data/docs/js/search_index.js +1 -1
  15. data/docs/js/search_index.js.gz +0 -0
  16. data/docs/table_of_contents.html +25 -0
  17. data/help/loggable_activity_help.txt +19 -0
  18. data/lib/generators/.DS_Store +0 -0
  19. data/lib/generators/loggable_activity/.DS_Store +0 -0
  20. data/lib/generators/loggable_activity/install_generator.rb +104 -11
  21. data/lib/generators/loggable_activity/install_templates_generator.rb +103 -0
  22. data/lib/generators/loggable_activity/templates/.DS_Store +0 -0
  23. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +31 -0
  24. data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +16 -0
  25. data/lib/generators/loggable_activity/templates/helpers/loggable_activity_helper.rb +49 -0
  26. data/lib/generators/loggable_activity/templates/loggable_activity.en.yaml +36 -0
  27. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +23 -0
  28. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +18 -0
  29. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +18 -0
  30. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +17 -0
  31. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +18 -0
  32. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +17 -0
  33. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +18 -0
  34. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +12 -0
  35. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +12 -0
  36. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +11 -0
  37. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +8 -0
  38. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +6 -0
  39. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +17 -0
  40. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +14 -0
  41. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +23 -0
  42. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +21 -0
  43. data/lib/loggable_activity/payloads_builder.rb +3 -19
  44. data/lib/loggable_activity/update_payloads_builder.rb +18 -60
  45. data/lib/loggable_activity/version.rb +1 -1
  46. metadata +37 -18
  47. data/lib/generators/loggable_activity/templates/create_loggable_encryption_keys.rb +0 -11
  48. data/lib/generators/loggable_activity/templates/create_loggable_payloads.rb +0 -15
  49. /data/lib/generators/loggable_activity/templates/{loggable_activity.en.yml → config/locales/loggable_activity.en.yml} +0 -0
  50. /data/lib/generators/loggable_activity/templates/{loggable_activity.yml → config/loggable_activity.yaml} +0 -0
@@ -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 38</span>
150
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 40</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>]
@@ -196,7 +196,7 @@
196
196
 
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 122</span>
199
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 124</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>
@@ -219,7 +219,7 @@
219
219
 
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 139</span>
222
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 141</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>
@@ -242,7 +242,7 @@
242
242
 
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 135</span>
245
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 137</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>
@@ -265,7 +265,7 @@
265
265
 
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 150</span>
268
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 152</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>
@@ -288,7 +288,7 @@
288
288
 
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 75</span>
291
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 77</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
 
@@ -320,7 +320,7 @@
320
320
 
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 143</span>
323
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 145</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>
@@ -343,7 +343,7 @@
343
343
 
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 107</span>
346
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 109</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>)
@@ -367,7 +367,7 @@
367
367
 
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 112</span>
370
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 114</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>
@@ -396,7 +396,7 @@
396
396
 
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 63</span>
399
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 65</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>
@@ -419,7 +419,7 @@
419
419
 
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 98</span>
422
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 100</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>
@@ -442,7 +442,7 @@
442
442
 
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 92</span>
445
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 94</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>
@@ -463,7 +463,7 @@
463
463
 
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 71</span>
466
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 73</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>
@@ -486,7 +486,7 @@
486
486
 
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 102</span>
489
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 104</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>)
@@ -510,7 +510,7 @@
510
510
 
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 67</span>
513
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 69</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>
@@ -533,7 +533,7 @@
533
533
 
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 94</span>
536
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 96</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>
@@ -556,7 +556,7 @@
556
556
 
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 88</span>
559
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 90</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>
@@ -579,7 +579,7 @@
579
579
 
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 126</span>
582
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 128</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>
@@ -603,7 +603,7 @@
603
603
 
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 131</span>
606
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 133</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>
@@ -134,7 +134,7 @@ Returns:
134
134
  }</pre>
135
135
 
136
136
  <div class="method-source-code" id="attrs-source">
137
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 40</span>
137
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 42</span>
138
138
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attrs</span>
139
139
  <span class="ruby-keyword">return</span> <span class="ruby-identifier">deleted_attrs</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">nil?</span>
140
140
 
@@ -173,7 +173,7 @@ Returns:
173
173
  <p>@param value [String] The encrypted value to decrypt. @return [String] The decrypted value.</p>
174
174
 
175
175
  <div class="method-source-code" id="decrypt_attr-source">
176
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 101</span>
176
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 103</span>
177
177
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypt_attr</span>(<span class="ruby-identifier">value</span>)
178
178
  <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
179
  <span class="ruby-keyword">end</span></pre>
@@ -198,7 +198,7 @@ Returns:
198
198
  <p>@return [Hash] The decrypted attributes.</p>
199
199
 
200
200
  <div class="method-source-code" id="decrypted_attrs-source">
201
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 91</span>
201
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 93</span>
202
202
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_attrs</span>
203
203
  <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
204
  <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 +225,7 @@ Returns:
225
225
  <p>@param change [Hash] The change hash containing ‘from’ and ‘to’ values. @return [Hash] The decrypted ‘from’ and ‘to’ values.</p>
226
226
 
227
227
  <div class="method-source-code" id="decrypted_from_to_attr-source">
228
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 80</span>
228
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 82</span>
229
229
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_from_to_attr</span>(<span class="ruby-identifier">change</span>)
230
230
  <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
231
  <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 +254,7 @@ Returns:
254
254
  <p>@return [Array&lt;Hash&gt;] The array of decrypted changes.</p>
255
255
 
256
256
  <div class="method-source-code" id="decrypted_update_attrs-source">
257
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 70</span>
257
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 72</span>
258
258
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_update_attrs</span>
259
259
  <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
260
  <span class="ruby-identifier">decrypted_from_to_attr</span>(<span class="ruby-identifier">change</span>)
@@ -281,7 +281,7 @@ Returns:
281
281
  <p>@return [Hash] The hash with deleted attributes.</p>
282
282
 
283
283
  <div class="method-source-code" id="deleted_attrs-source">
284
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 63</span>
284
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 65</span>
285
285
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">deleted_attrs</span>
286
286
  <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
287
  <span class="ruby-keyword">end</span></pre>
@@ -306,7 +306,7 @@ Returns:
306
306
  <p>@return [String, nil] The encryption key.</p>
307
307
 
308
308
  <div class="method-source-code" id="payload_encryption_key-source">
309
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 56</span>
309
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 58</span>
310
310
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payload_encryption_key</span>
311
311
  <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
312
  <span class="ruby-keyword">end</span></pre>
@@ -67,7 +67,9 @@
67
67
 
68
68
  <ul class="link-list" role="directory">
69
69
  <li ><a href="#method-i-associated_record_encryption_key">#associated_record_encryption_key</a>
70
+ <li ><a href="#method-i-build_associated_payload">#build_associated_payload</a>
70
71
  <li ><a href="#method-i-build_destroy_payload">#build_destroy_payload</a>
72
+ <li ><a href="#method-i-build_has_many_payloads">#build_has_many_payloads</a>
71
73
  <li ><a href="#method-i-build_payload">#build_payload</a>
72
74
  <li ><a href="#method-i-build_payloads">#build_payloads</a>
73
75
  <li ><a href="#method-i-build_primary_payload">#build_primary_payload</a>
@@ -169,7 +171,7 @@ Returns:
169
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>
170
172
 
171
173
  <div class="method-source-code" id="associated_record_encryption_key-source">
172
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 105</span>
174
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 120</span>
173
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>)
174
176
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">data_owner</span>
175
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>))
@@ -181,6 +183,43 @@ Returns:
181
183
  </div>
182
184
 
183
185
 
186
+ </div>
187
+
188
+ <div id="method-i-build_associated_payload" class="method-detail ">
189
+ <div class="method-header">
190
+ <div class="method-heading">
191
+ <span class="method-name">build_associated_payload</span><span
192
+ class="method-args">(associated_record, relation_config)</span>
193
+ <span class="method-click-advice">click to toggle source</span>
194
+ </div>
195
+ </div>
196
+
197
+ <div class="method-description">
198
+ <p>Builds the payload for an associated record.</p>
199
+
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>
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
+ <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
+ <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>])
205
+ <span class="ruby-identifier">encrypted_attrs</span> =
206
+ <span class="ruby-identifier">encrypt_attrs</span>(
207
+ <span class="ruby-identifier">associated_record</span>.<span class="ruby-identifier">attributes</span>,
208
+ <span class="ruby-identifier">associated_loggable_attrs</span>,
209
+ <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">key</span>
210
+ )
211
+
212
+ <span class="ruby-ivar">@payloads</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Payload</span>.<span class="ruby-identifier">new</span>(
213
+ <span class="ruby-value">record:</span> <span class="ruby-identifier">associated_record</span>,
214
+ <span class="ruby-value">encrypted_attrs:</span>,
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>]
217
+ )
218
+ <span class="ruby-keyword">end</span></pre>
219
+ </div>
220
+ </div>
221
+
222
+
184
223
  </div>
185
224
 
186
225
  <div id="method-i-build_destroy_payload" class="method-detail ">
@@ -211,6 +250,34 @@ Returns:
211
250
  </div>
212
251
 
213
252
 
253
+ </div>
254
+
255
+ <div id="method-i-build_has_many_payloads" class="method-detail ">
256
+ <div class="method-header">
257
+ <div class="method-heading">
258
+ <span class="method-name">build_has_many_payloads</span><span
259
+ class="method-args">(relation_config, relation_type)</span>
260
+ <span class="method-click-advice">click to toggle source</span>
261
+ </div>
262
+ </div>
263
+
264
+ <div class="method-description">
265
+ <p>Builds payloads for has_many relations.</p>
266
+
267
+ <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>
269
+ <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
+ <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
+ <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>
272
+
273
+ <span class="ruby-identifier">associated_records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">associated_record</span><span class="ruby-operator">|</span>
274
+ <span class="ruby-identifier">build_associated_payload</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">relation_config</span>)
275
+ <span class="ruby-keyword">end</span>
276
+ <span class="ruby-keyword">end</span></pre>
277
+ </div>
278
+ </div>
279
+
280
+
214
281
  </div>
215
282
 
216
283
  <div id="method-i-build_payload" class="method-detail ">
@@ -228,28 +295,12 @@ Returns:
228
295
  <p>@param relation_config [Hash] The configuration of the relation. @param relation_type [String] The type of the relation.</p>
229
296
 
230
297
  <div class="method-source-code" id="build_payload-source">
231
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 77</span>
298
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 79</span>
232
299
  <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>)
233
300
  <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>])
234
301
  <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>
235
302
 
236
- <span class="ruby-identifier">associated_loggable_attrs</span> = <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;loggable_attrs&#39;</span>]
237
-
238
- <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>])
239
-
240
- <span class="ruby-identifier">encrypted_attrs</span> =
241
- <span class="ruby-identifier">encrypt_attrs</span>(
242
- <span class="ruby-identifier">associated_record</span>.<span class="ruby-identifier">attributes</span>,
243
- <span class="ruby-identifier">associated_loggable_attrs</span>,
244
- <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">key</span>
245
- )
246
-
247
- <span class="ruby-ivar">@payloads</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Payload</span>.<span class="ruby-identifier">new</span>(
248
- <span class="ruby-value">record:</span> <span class="ruby-identifier">associated_record</span>,
249
- <span class="ruby-value">encrypted_attrs:</span>,
250
- <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;current_association&#39;</span>,
251
- <span class="ruby-value">data_owner:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;data_owner&#39;</span>]
252
- )
303
+ <span class="ruby-identifier">build_associated_payload</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">relation_config</span>)
253
304
  <span class="ruby-keyword">end</span></pre>
254
305
  </div>
255
306
  </div>
@@ -296,7 +347,7 @@ Returns:
296
347
  </div>
297
348
 
298
349
  <div class="method-description">
299
- <p>Builds payloads for related records.</p>
350
+ <p>Builds payloads for relations</p>
300
351
 
301
352
  <p>@param relation_config [Hash] The configuration of the relation.</p>
302
353
 
@@ -309,6 +360,8 @@ Returns:
309
360
  <span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;belongs_to&#39;</span>)
310
361
  <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_one&#39;</span>
311
362
  <span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;has_one&#39;</span>)
363
+ <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_many&#39;</span>
364
+ <span class="ruby-identifier">build_has_many_payloads</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;has_many&#39;</span>)
312
365
  <span class="ruby-keyword">end</span>
313
366
  <span class="ruby-keyword">end</span>
314
367
  <span class="ruby-keyword">end</span></pre>
@@ -333,7 +386,7 @@ Returns:
333
386
  <p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key [String] The encryption key. @return [Hash] The encrypted attributes.</p>
334
387
 
335
388
  <div class="method-source-code" id="encrypt_attr-source">
336
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 129</span>
389
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 144</span>
337
390
  <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>)
338
391
  <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>
339
392
  <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>)
@@ -360,7 +413,7 @@ Returns:
360
413
  <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>
361
414
 
362
415
  <div class="method-source-code" id="encrypt_attrs-source">
363
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 119</span>
416
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 134</span>
364
417
  <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>)
365
418
  <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>)
366
419
  <span class="ruby-identifier">encrypt_attr</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">encryption_key</span>)