loggable_activity 0.1.56 → 0.1.59

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) 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/.DS_Store +0 -0
  30. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +9 -10
  31. data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +16 -13
  32. data/lib/loggable_activity/activity.rb +53 -102
  33. data/lib/loggable_activity/configuration.rb +60 -3
  34. data/lib/loggable_activity/data_owner.rb +18 -0
  35. data/lib/loggable_activity/encryption.rb +14 -14
  36. data/lib/loggable_activity/encryption_key.rb +26 -25
  37. data/lib/loggable_activity/error.rb +34 -0
  38. data/lib/loggable_activity/hooks.rb +78 -43
  39. data/lib/loggable_activity/payload.rb +70 -20
  40. data/lib/loggable_activity/services/base_payloads_builder.rb +127 -0
  41. data/lib/loggable_activity/services/destroy_payloads_builder.rb +127 -0
  42. data/lib/loggable_activity/services/payloads_builder.rb +98 -0
  43. data/lib/loggable_activity/services/update_payloads_builder.rb +170 -0
  44. data/lib/loggable_activity/version.rb +1 -1
  45. data/lib/loggable_activity.rb +6 -6
  46. data/lib/schemas/config_schema.json +90 -0
  47. metadata +37 -26
  48. data/docs/LoggableActivity/PayloadsBuilder.html +0 -441
  49. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +0 -424
  50. data/lib/generators/loggable_activity/install_templates_generator.rb +0 -105
  51. data/lib/generators/loggable_activity/templates/helpers/activity_helper.rb +0 -37
  52. data/lib/generators/loggable_activity/templates/helpers/router.rb +0 -52
  53. data/lib/generators/loggable_activity/templates/helpers/routes_helper.rb +0 -20
  54. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +0 -23
  55. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +0 -18
  56. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +0 -18
  57. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +0 -17
  58. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +0 -18
  59. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +0 -17
  60. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +0 -18
  61. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +0 -12
  62. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +0 -12
  63. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +0 -11
  64. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +0 -8
  65. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +0 -6
  66. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +0 -17
  67. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +0 -14
  68. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +0 -23
  69. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +0 -21
  70. data/lib/loggable_activity/payloads_builder.rb +0 -153
  71. 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>