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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -1
  3. data/CHANGELOG.md +9 -0
  4. data/GETTING-STARTED.md +8 -47
  5. data/PAYLOAD_EXAMPLE.md +63 -0
  6. data/docs/LoggableActivity/Activity.html +92 -241
  7. data/docs/LoggableActivity/Configuration.html +162 -15
  8. data/docs/LoggableActivity/ConfigurationError.html +148 -0
  9. data/docs/LoggableActivity/DataOwner.html +138 -0
  10. data/docs/LoggableActivity/Encryption.html +18 -14
  11. data/docs/LoggableActivity/EncryptionError.html +47 -1
  12. data/docs/LoggableActivity/EncryptionKey.html +54 -35
  13. data/docs/LoggableActivity/Error.html +48 -0
  14. data/docs/LoggableActivity/Hooks.html +221 -89
  15. data/docs/LoggableActivity/Payload.html +103 -27
  16. data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +442 -0
  17. data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +395 -0
  18. data/docs/LoggableActivity/Services/PayloadsBuilder.html +342 -0
  19. data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +490 -0
  20. data/docs/LoggableActivity/Services.html +93 -0
  21. data/docs/created.rid +14 -10
  22. data/docs/index.html +10 -2
  23. data/docs/js/navigation.js.gz +0 -0
  24. data/docs/js/search_index.js +1 -1
  25. data/docs/js/search_index.js.gz +0 -0
  26. data/docs/js/searcher.js.gz +0 -0
  27. data/docs/table_of_contents.html +253 -85
  28. data/lib/generators/loggable_activity/install_generator.rb +2 -18
  29. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +9 -10
  30. data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +16 -13
  31. data/lib/loggable_activity/activity.rb +53 -102
  32. data/lib/loggable_activity/configuration.rb +60 -3
  33. data/lib/loggable_activity/data_owner.rb +18 -0
  34. data/lib/loggable_activity/encryption.rb +14 -14
  35. data/lib/loggable_activity/encryption_key.rb +26 -25
  36. data/lib/loggable_activity/error.rb +34 -0
  37. data/lib/loggable_activity/hooks.rb +78 -43
  38. data/lib/loggable_activity/payload.rb +70 -20
  39. data/lib/loggable_activity/services/base_payloads_builder.rb +127 -0
  40. data/lib/loggable_activity/services/destroy_payloads_builder.rb +127 -0
  41. data/lib/loggable_activity/services/payloads_builder.rb +98 -0
  42. data/lib/loggable_activity/services/update_payloads_builder.rb +168 -0
  43. data/lib/loggable_activity/version.rb +1 -1
  44. data/lib/loggable_activity.rb +6 -6
  45. data/lib/schemas/config_schema.json +90 -0
  46. metadata +37 -26
  47. data/docs/LoggableActivity/PayloadsBuilder.html +0 -441
  48. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +0 -424
  49. data/lib/generators/loggable_activity/install_templates_generator.rb +0 -105
  50. data/lib/generators/loggable_activity/templates/helpers/activity_helper.rb +0 -37
  51. data/lib/generators/loggable_activity/templates/helpers/router.rb +0 -52
  52. data/lib/generators/loggable_activity/templates/helpers/routes_helper.rb +0 -20
  53. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +0 -23
  54. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +0 -18
  55. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +0 -18
  56. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +0 -17
  57. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +0 -18
  58. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +0 -17
  59. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +0 -18
  60. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +0 -12
  61. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +0 -12
  62. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +0 -11
  63. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +0 -8
  64. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +0 -6
  65. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +0 -17
  66. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +0 -14
  67. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +0 -23
  68. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +0 -21
  69. data/lib/loggable_activity/payloads_builder.rb +0 -153
  70. data/lib/loggable_activity/update_payloads_builder.rb +0 -127
@@ -77,9 +77,11 @@
77
77
  <li ><a href="#method-i-decrypted_attrs">#decrypted_attrs</a>
78
78
  <li ><a href="#method-i-decrypted_from_to_attr">#decrypted_from_to_attr</a>
79
79
  <li ><a href="#method-i-decrypted_update_attrs">#decrypted_update_attrs</a>
80
+ <li ><a href="#method-i-deleted-3F">#deleted?</a>
80
81
  <li ><a href="#method-i-deleted_attrs">#deleted_attrs</a>
81
- <li ><a href="#method-i-payload_encryption_key">#payload_encryption_key</a>
82
82
  <li ><a href="#method-i-payload_route">#payload_route</a>
83
+ <li ><a href="#method-i-record_display_name">#record_display_name</a>
84
+ <li ><a href="#method-i-secret_key">#secret_key</a>
83
85
  </ul>
84
86
  </div>
85
87
 
@@ -100,6 +102,17 @@
100
102
  <section id="5Buntitled-5D" class="documentation-section">
101
103
 
102
104
 
105
+ <section class="constants-list">
106
+ <header>
107
+ <h3>Constants</h3>
108
+ </header>
109
+ <dl>
110
+ <dt id="DECRYPT_ATTRS_TYPES">DECRYPT_ATTRS_TYPES
111
+ <dd><p>Enumeration for different payload types</p>
112
+ <dt id="DECRYPT_UPDATE_ATTRS_TYPES">DECRYPT_UPDATE_ATTRS_TYPES
113
+ <dd><p>Enumeration for different updatepayload types</p>
114
+ </dl>
115
+ </section>
103
116
 
104
117
 
105
118
 
@@ -118,7 +131,7 @@
118
131
  </div>
119
132
 
120
133
  <div class="method-description">
121
- <p>Returns the decrypted attributes of the payload based on its type.</p>
134
+ <p>Returns the decrypted attrs.</p>
122
135
 
123
136
  <p>@return [Hash] The decrypted attributes.</p>
124
137
 
@@ -127,29 +140,51 @@
127
140
  <pre>payload.attrs
128
141
 
129
142
  Returns:
130
- {
131
- &quot;street&quot; =&gt; &quot;Machu Picchu&quot;,
132
- &quot;city&quot; =&gt; &quot;Aguas Calientes&quot;,
133
- &quot;country&quot; =&gt; &quot;Peru&quot;,
134
- &quot;postal_code&quot; =&gt; &quot;08680&quot;
135
- }</pre>
143
+ { &quot;street&quot; =&gt; &quot;Machu Picchu&quot;, &quot;city&quot; =&gt; &quot;Cusco&quot; }</pre>
136
144
 
137
145
  <div class="method-source-code" id="attrs-source">
138
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 42</span>
146
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 64</span>
139
147
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attrs</span>
140
148
  <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>
141
149
 
142
- <span class="ruby-keyword">case</span> <span class="ruby-identifier">payload_type</span>
143
- <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;current_association&#39;</span>, <span class="ruby-string">&#39;primary_payload&#39;</span>, <span class="ruby-string">&#39;previous_association&#39;</span>
150
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">related_to_activity_as</span>
151
+ <span class="ruby-keyword">when</span> <span class="ruby-operator">*</span><span class="ruby-constant">DECRYPT_ATTRS_TYPES</span>
144
152
  <span class="ruby-identifier">decrypted_attrs</span>
145
- <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;update_payload&#39;</span>
153
+ <span class="ruby-keyword">when</span> <span class="ruby-operator">*</span><span class="ruby-constant">DECRYPT_UPDATE_ATTRS_TYPES</span>
146
154
  <span class="ruby-identifier">decrypted_update_attrs</span>
155
+ <span class="ruby-keyword">else</span>
156
+ {}
147
157
  <span class="ruby-keyword">end</span>
148
158
  <span class="ruby-keyword">end</span></pre>
149
159
  </div>
150
160
  </div>
151
161
 
152
162
 
163
+ </div>
164
+
165
+ <div id="method-i-deleted-3F" class="method-detail ">
166
+ <div class="method-header">
167
+ <div class="method-heading">
168
+ <span class="method-name">deleted?</span><span
169
+ class="method-args">()</span>
170
+ <span class="method-click-advice">click to toggle source</span>
171
+ </div>
172
+ </div>
173
+
174
+ <div class="method-description">
175
+ <p>Check if the record has been deleted.</p>
176
+
177
+ <p>@return [Boolean] True if the record has been deleted.</p>
178
+
179
+ <div class="method-source-code" id="deleted-3F-source">
180
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 104</span>
181
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">deleted?</span>
182
+ <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">deleted?</span>
183
+ <span class="ruby-keyword">end</span></pre>
184
+ </div>
185
+ </div>
186
+
187
+
153
188
  </div>
154
189
 
155
190
  <div id="method-i-payload_route" class="method-detail ">
@@ -162,12 +197,19 @@ Returns:
162
197
  </div>
163
198
 
164
199
  <div class="method-description">
165
- <p>Returns the route for the payload.</p>
200
+ <p>Returns the route for the payload unless the encryption_key is deleted.</p>
201
+
202
+ <p>Example:</p>
203
+
204
+ <pre class="ruby"><span class="ruby-identifier">payload</span>.<span class="ruby-identifier">payload_route</span>
205
+ </pre>
206
+
207
+ <p>@return [String] The route for the payload.</p>
166
208
 
167
209
  <div class="method-source-code" id="payload_route-source">
168
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 54</span>
210
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 83</span>
169
211
  <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>
212
+ <span class="ruby-keyword">return</span> <span class="ruby-string">&#39;&#39;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">deleted?</span>
171
213
 
172
214
  <span class="ruby-identifier">route</span>
173
215
  <span class="ruby-keyword">end</span></pre>
@@ -177,6 +219,38 @@ Returns:
177
219
 
178
220
  </div>
179
221
 
222
+ <div id="method-i-record_display_name" class="method-detail ">
223
+ <div class="method-header">
224
+ <div class="method-heading">
225
+ <span class="method-name">record_display_name</span><span
226
+ class="method-args">()</span>
227
+ <span class="method-click-advice">click to toggle source</span>
228
+ </div>
229
+ </div>
230
+
231
+ <div class="method-description">
232
+ <p>Returns the display name for the record.</p>
233
+
234
+ <p>Example:</p>
235
+
236
+ <pre class="ruby"><span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_display_name</span>
237
+ </pre>
238
+
239
+ <p>@return [String] The display name for the record.</p>
240
+
241
+ <div class="method-source-code" id="record_display_name-source">
242
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 95</span>
243
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_display_name</span>
244
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;loggable.activity.deleted&#39;</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">deleted?</span>
245
+
246
+ <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_record_name</span>, <span class="ruby-identifier">secret_key</span>)
247
+ <span class="ruby-keyword">end</span></pre>
248
+ </div>
249
+ </div>
250
+
251
+
252
+ </div>
253
+
180
254
  </section>
181
255
 
182
256
  <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
@@ -199,9 +273,10 @@ Returns:
199
273
  <p>@param value [String] The encrypted value to decrypt. @return [String] The decrypted value.</p>
200
274
 
201
275
  <div class="method-source-code" id="decrypt_attr-source">
202
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 110</span>
276
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 159</span>
203
277
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypt_attr</span>(<span class="ruby-identifier">value</span>)
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>)
278
+ <span class="ruby-comment"># return &#39;loggable_activity.attr.deleted&#39; if secret_key.nil?</span>
279
+ <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">value</span>, <span class="ruby-identifier">secret_key</span>)
205
280
  <span class="ruby-keyword">end</span></pre>
206
281
  </div>
207
282
  </div>
@@ -224,7 +299,7 @@ Returns:
224
299
  <p>@return [Hash] The decrypted attributes.</p>
225
300
 
226
301
  <div class="method-source-code" id="decrypted_attrs-source">
227
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 100</span>
302
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 149</span>
228
303
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_attrs</span>
229
304
  <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>
230
305
  <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>)
@@ -251,7 +326,7 @@ Returns:
251
326
  <p>@param change [Hash] The change hash containing ‘from’ and ‘to’ values. @return [Hash] The decrypted ‘from’ and ‘to’ values.</p>
252
327
 
253
328
  <div class="method-source-code" id="decrypted_from_to_attr-source">
254
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 89</span>
329
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 138</span>
255
330
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_from_to_attr</span>(<span class="ruby-identifier">change</span>)
256
331
  <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>
257
332
  <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>])
@@ -280,8 +355,9 @@ Returns:
280
355
  <p>@return [Array&lt;Hash&gt;] The array of decrypted changes.</p>
281
356
 
282
357
  <div class="method-source-code" id="decrypted_update_attrs-source">
283
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 79</span>
358
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 127</span>
284
359
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_update_attrs</span>
360
+ <span class="ruby-comment"># return encrypted_attrs</span>
285
361
  <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>
286
362
  <span class="ruby-identifier">decrypted_from_to_attr</span>(<span class="ruby-identifier">change</span>)
287
363
  <span class="ruby-keyword">end</span>
@@ -307,7 +383,7 @@ Returns:
307
383
  <p>@return [Hash] The hash with deleted attributes.</p>
308
384
 
309
385
  <div class="method-source-code" id="deleted_attrs-source">
310
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 72</span>
386
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 120</span>
311
387
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">deleted_attrs</span>
312
388
  <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>) }
313
389
  <span class="ruby-keyword">end</span></pre>
@@ -317,10 +393,10 @@ Returns:
317
393
 
318
394
  </div>
319
395
 
320
- <div id="method-i-payload_encryption_key" class="method-detail ">
396
+ <div id="method-i-secret_key" class="method-detail ">
321
397
  <div class="method-header">
322
398
  <div class="method-heading">
323
- <span class="method-name">payload_encryption_key</span><span
399
+ <span class="method-name">secret_key</span><span
324
400
  class="method-args">()</span>
325
401
  <span class="method-click-advice">click to toggle source</span>
326
402
  </div>
@@ -331,10 +407,10 @@ Returns:
331
407
 
332
408
  <p>@return [String, nil] The encryption key.</p>
333
409
 
334
- <div class="method-source-code" id="payload_encryption_key-source">
335
- <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 65</span>
336
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payload_encryption_key</span>
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>
410
+ <div class="method-source-code" id="secret_key-source">
411
+ <pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 113</span>
412
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">secret_key</span>
413
+ <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">secret_key</span>
338
414
  <span class="ruby-keyword">end</span></pre>
339
415
  </div>
340
416
  </div>