loggable_activity 0.1.54 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/GETTING-STARTED.md +2 -2
- data/docs/LoggableActivity/Activity.html +108 -139
- data/docs/LoggableActivity/Configuration.html +3 -3
- data/docs/LoggableActivity/Encryption.html +7 -4
- data/docs/LoggableActivity/EncryptionKey.html +4 -2
- data/docs/LoggableActivity/Hooks.html +37 -37
- data/docs/LoggableActivity/Payload.html +32 -6
- data/docs/LoggableActivity/PayloadsBuilder.html +14 -11
- data/docs/LoggableActivity/UpdatePayloadsBuilder.html +27 -26
- data/docs/LoggableActivity.html +3 -1
- data/docs/created.rid +10 -10
- data/docs/js/search_index.js +1 -1
- data/docs/js/search_index.js.gz +0 -0
- data/docs/table_of_contents.html +14 -4
- data/lib/generators/loggable_activity/.DS_Store +0 -0
- data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +1 -0
- data/lib/generators/loggable_activity/templates/helpers/loggable_activity_helper.rb +2 -2
- data/lib/generators/loggable_activity/templates/loggable_activity_helper.rb +14 -5
- data/lib/loggable_activity/activity.rb +56 -107
- data/lib/loggable_activity/configuration.rb +1 -0
- data/lib/loggable_activity/encryption.rb +6 -2
- data/lib/loggable_activity/encryption_key.rb +2 -0
- data/lib/loggable_activity/hooks.rb +20 -1
- data/lib/loggable_activity/payload.rb +7 -0
- data/lib/loggable_activity/payloads_builder.rb +6 -3
- data/lib/loggable_activity/update_payloads_builder.rb +17 -7
- data/lib/loggable_activity/version.rb +3 -1
- data/lib/loggable_activity.rb +0 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e2ab2f4d7ec08a5f53176ae3e3289b8470c5cc39013a1bc48e06c3b596f11ee
|
4
|
+
data.tar.gz: 3c5037f59fc9e408fd693afbd3208f530b52cb4f3791b91f8dfad603a66e2513
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 017f1f1418adb7acd44ed3af4cd08ccdcc396dc9d61c63b2b584c994b46018923832155a1ae64361a8d75c5414257591ff174e33696c356c844c241063343c14
|
7
|
+
data.tar.gz: 2da5d2b4981ad8470f6ed75b2710c6e75f36d19dafb99496cc0e49f1e7c2a0f008b94d234780c693e6eb841437ffa6933f7abd133526a6c9eec56b8e75fa1259
|
data/GETTING-STARTED.md
CHANGED
@@ -116,7 +116,7 @@ $ rails g loggable_activity:install_templates
|
|
116
116
|
```
|
117
117
|
or for the slim template language. (don't run both)
|
118
118
|
```
|
119
|
-
$ rails g loggable_activity:install_templates --template=
|
119
|
+
$ rails g loggable_activity:install_templates --template=slim
|
120
120
|
```
|
121
121
|
Now you got the `loggable_activity_helper.rb' installed.<br/>
|
122
122
|
You can use the `render_activity` method from your view like this.
|
@@ -155,4 +155,4 @@ end
|
|
155
155
|
If you can download and play around with a demo app
|
156
156
|
- 1 Down the demo project from [demo project on github](https://github.com/maxgronlund/LoggableActivityDemoApp)
|
157
157
|
- 2 Update the Gemfile in the demo project so it points to your localhost.
|
158
|
-
- 3 you can now build and test you version of the gem `$ gem build loggable_activity.gemspec`
|
158
|
+
- 3 you can now build and test you version of the gem `$ gem build loggable_activity.gemspec`
|
@@ -80,6 +80,7 @@
|
|
80
80
|
<li ><a href="#method-i-attrs">#attrs</a>
|
81
81
|
<li ><a href="#method-i-must_have_at_least_one_payload">#must_have_at_least_one_payload</a>
|
82
82
|
<li ><a href="#method-i-ordered_payloads">#ordered_payloads</a>
|
83
|
+
<li ><a href="#method-i-path">#path</a>
|
83
84
|
<li ><a href="#method-i-previous_associations_attrs">#previous_associations_attrs</a>
|
84
85
|
<li ><a href="#method-i-primary_payload">#primary_payload</a>
|
85
86
|
<li ><a href="#method-i-primary_payload_attrs">#primary_payload_attrs</a>
|
@@ -130,7 +131,7 @@
|
|
130
131
|
<p>Returns a list of activities for a given actor.</p>
|
131
132
|
|
132
133
|
<div class="method-source-code" id="activities_for_actor-source">
|
133
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
134
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 155</span>
|
134
135
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">activities_for_actor</span>(<span class="ruby-identifier">actor</span>, <span class="ruby-identifier">limit</span> = <span class="ruby-value">20</span>, <span class="ruby-identifier">params</span> = { <span class="ruby-value">offset:</span> <span class="ruby-value">0</span> })
|
135
136
|
<span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>.<span class="ruby-identifier">latest</span>(<span class="ruby-identifier">limit</span>, <span class="ruby-identifier">params</span>).<span class="ruby-identifier">where</span>(<span class="ruby-value">actor:</span>)
|
136
137
|
<span class="ruby-keyword">end</span></pre>
|
@@ -153,7 +154,7 @@
|
|
153
154
|
<p>Returns the last activity.</p>
|
154
155
|
|
155
156
|
<div class="method-source-code" id="last-source">
|
156
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
157
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 171</span>
|
157
158
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">last</span>(<span class="ruby-identifier">limit</span> = <span class="ruby-value">1</span>)
|
158
159
|
<span class="ruby-keyword">return</span> <span class="ruby-identifier">latest</span>(<span class="ruby-value">1</span>).<span class="ruby-identifier">first</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">limit</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
159
160
|
|
@@ -178,7 +179,7 @@
|
|
178
179
|
<p>Returns a list of activities ordered by creation date.</p>
|
179
180
|
|
180
181
|
<div class="method-source-code" id="latest-source">
|
181
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
182
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 160</span>
|
182
183
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">latest</span>(<span class="ruby-identifier">limit</span> = <span class="ruby-value">20</span>, <span class="ruby-identifier">params</span> = { <span class="ruby-value">offset:</span> <span class="ruby-value">0</span> })
|
183
184
|
<span class="ruby-identifier">offset</span> = <span class="ruby-identifier">params</span>[<span class="ruby-value">:offset</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
|
184
185
|
<span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>
|
@@ -224,7 +225,7 @@
|
|
224
225
|
</pre>
|
225
226
|
|
226
227
|
<div class="method-source-code" id="actor_display_name-source">
|
227
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
228
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 148</span>
|
228
229
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_display_name</span>
|
229
230
|
<span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">'loggable.activity.deleted'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">encrypted_actor_display_name</span>.<span class="ruby-identifier">nil?</span>
|
230
231
|
|
@@ -246,63 +247,40 @@
|
|
246
247
|
</div>
|
247
248
|
|
248
249
|
<div class="method-description">
|
249
|
-
<p>Returns
|
250
|
+
<p>Returns an array of hashes, each representing an activity’s attributes and its associated relations. The structure and relations to include are specified in ‘config/loggable_activity.yaml’. This format is designed for UI display purposes.</p>
|
250
251
|
|
251
|
-
<p>
|
252
|
+
<p>Each hash in the array contains:</p>
|
253
|
+
<ul><li>
|
254
|
+
<p>:record_type: The class name of the record.</p>
|
255
|
+
</li><li>
|
256
|
+
<p>:payload_type: A descriptor of the payload’s role (e.g., ‘primary_payload’ or ‘current_association’).</p>
|
257
|
+
</li><li>
|
258
|
+
<p>:attrs: A hash of the record’s attributes.</p>
|
259
|
+
</li></ul>
|
260
|
+
|
261
|
+
<p>Example usage:</p>
|
252
262
|
|
253
263
|
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">attrs</span>
|
254
264
|
</pre>
|
255
265
|
|
256
|
-
<p>
|
266
|
+
<p>Sample return value:</p>
|
257
267
|
|
258
|
-
<pre
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
<span class="ruby-string">"first_name"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"David"</span>,
|
264
|
-
<span class="ruby-string">"last_name"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Bowie"</span>,
|
265
|
-
<span class="ruby-string">"age"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"69"</span>,
|
266
|
-
<span class="ruby-string">"email"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"david@example.com"</span>,
|
267
|
-
<span class="ruby-string">"user_type"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Patient"</span>
|
268
|
-
}
|
269
|
-
},
|
270
|
-
{
|
271
|
-
<span class="ruby-value">record_class:</span> <span class="ruby-string">"Demo::UserProfile"</span>,
|
272
|
-
<span class="ruby-value">payload_type:</span> <span class="ruby-string">"current_association"</span>,
|
273
|
-
<span class="ruby-value">attrs:</span> {
|
274
|
-
<span class="ruby-string">"sex"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Male"</span>,
|
275
|
-
<span class="ruby-string">"religion"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Agnostic"</span>
|
276
|
-
}
|
277
|
-
},
|
278
|
-
{
|
279
|
-
<span class="ruby-value">record_class:</span> <span class="ruby-string">"Demo::Address"</span>,
|
280
|
-
<span class="ruby-value">payload_type:</span> <span class="ruby-string">"current_association"</span>,
|
281
|
-
<span class="ruby-value">attrs:</span> {
|
282
|
-
<span class="ruby-string">"street"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Eiffel Tower"</span>,
|
283
|
-
<span class="ruby-string">"city"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Paris"</span>,
|
284
|
-
<span class="ruby-string">"country"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"France"</span>,
|
285
|
-
<span class="ruby-string">"postal_code"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"75007"</span>
|
286
|
-
}
|
287
|
-
},
|
288
|
-
{
|
289
|
-
<span class="ruby-value">record_class:</span> <span class="ruby-string">"Demo::Club"</span>,
|
290
|
-
<span class="ruby-value">payload_type:</span> <span class="ruby-string">"current_association"</span>,
|
291
|
-
<span class="ruby-value">attrs:</span> {
|
292
|
-
<span class="ruby-string">"name"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Mystic Fusion Lounge"</span>
|
293
|
-
}
|
294
|
-
}
|
295
|
-
]
|
296
|
-
</pre>
|
268
|
+
<pre>[
|
269
|
+
{ record_type: MODEL_NAME, payload_type: "primary_payload", attrs: { "KEY" => "VALUE", ... } },
|
270
|
+
{ record_type: MODEL_NAME, payload_type: "current_association", attrs: { "KEY" => "VALUE", ... } },
|
271
|
+
...
|
272
|
+
]</pre>
|
297
273
|
|
298
274
|
<div class="method-source-code" id="attrs-source">
|
299
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
275
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 37</span>
|
300
276
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attrs</span>
|
301
277
|
<span class="ruby-identifier">ordered_payloads</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">payload</span><span class="ruby-operator">|</span>
|
302
278
|
{
|
303
|
-
<span class="ruby-value">
|
279
|
+
<span class="ruby-value">record_type:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_type</span>,
|
280
|
+
<span class="ruby-value">record_id:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_id</span>,
|
304
281
|
<span class="ruby-value">payload_type:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">payload_type</span>,
|
305
|
-
<span class="ruby-value">attrs:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">attrs</span
|
282
|
+
<span class="ruby-value">attrs:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">attrs</span>,
|
283
|
+
<span class="ruby-value">path:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">payload_route</span>
|
306
284
|
}
|
307
285
|
<span class="ruby-keyword">end</span>
|
308
286
|
<span class="ruby-keyword">end</span></pre>
|
@@ -310,6 +288,39 @@
|
|
310
288
|
</div>
|
311
289
|
|
312
290
|
|
291
|
+
</div>
|
292
|
+
|
293
|
+
<div id="method-i-path" class="method-detail ">
|
294
|
+
<div class="method-header">
|
295
|
+
<div class="method-heading">
|
296
|
+
<span class="method-name">path</span><span
|
297
|
+
class="method-args">()</span>
|
298
|
+
<span class="method-click-advice">click to toggle source</span>
|
299
|
+
</div>
|
300
|
+
</div>
|
301
|
+
|
302
|
+
<div class="method-description">
|
303
|
+
<p>Returns the path for the activity.</p>
|
304
|
+
|
305
|
+
<p>Example:</p>
|
306
|
+
|
307
|
+
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">path</span>
|
308
|
+
</pre>
|
309
|
+
|
310
|
+
<p>Returns:</p>
|
311
|
+
|
312
|
+
<pre class="ruby"><span class="ruby-string">"/path/to/activity"</span>
|
313
|
+
</pre>
|
314
|
+
|
315
|
+
<div class="method-source-code" id="path-source">
|
316
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 135</span>
|
317
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">path</span>
|
318
|
+
<span class="ruby-identifier">primary_payload</span>&.<span class="ruby-identifier">route</span>
|
319
|
+
<span class="ruby-keyword">end</span></pre>
|
320
|
+
</div>
|
321
|
+
</div>
|
322
|
+
|
323
|
+
|
313
324
|
</div>
|
314
325
|
|
315
326
|
<div id="method-i-primary_payload_attrs" class="method-detail ">
|
@@ -331,17 +342,10 @@
|
|
331
342
|
|
332
343
|
<p>Returns:</p>
|
333
344
|
|
334
|
-
<pre
|
335
|
-
<span class="ruby-string">"first_name"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"David"</span>,
|
336
|
-
<span class="ruby-string">"last_name"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Bowie"</span>,
|
337
|
-
<span class="ruby-string">"age"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"69"</span>,
|
338
|
-
<span class="ruby-string">"email"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"david@example.com"</span>,
|
339
|
-
<span class="ruby-string">"user_type"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Patient"</span>
|
340
|
-
}
|
341
|
-
</pre>
|
345
|
+
<pre>{ "KEY_A" => "VALUE_A", "KEY_B" => "VALUE_B", ... }</pre>
|
342
346
|
|
343
347
|
<div class="method-source-code" id="primary_payload_attrs-source">
|
344
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
348
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 88</span>
|
345
349
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_payload_attrs</span>
|
346
350
|
<span class="ruby-identifier">primary_payload</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">primary_payload</span>.<span class="ruby-identifier">attrs</span> <span class="ruby-operator">:</span> {}
|
347
351
|
<span class="ruby-keyword">end</span></pre>
|
@@ -374,7 +378,7 @@
|
|
374
378
|
</pre>
|
375
379
|
|
376
380
|
<div class="method-source-code" id="record_display_name-source">
|
377
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
381
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 120</span>
|
378
382
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_display_name</span>
|
379
383
|
<span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">'loggable.activity.deleted'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">encrypted_record_display_name</span>.<span class="ruby-identifier">nil?</span>
|
380
384
|
|
@@ -405,24 +409,17 @@
|
|
405
409
|
|
406
410
|
<p>Returns:</p>
|
407
411
|
|
408
|
-
<pre
|
412
|
+
<pre>[
|
409
413
|
{
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
<span class="ruby-value">attrs:</span> {
|
415
|
-
<span class="ruby-string">"street"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"The Palace of Versailles"</span>,
|
416
|
-
<span class="ruby-string">"city"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Versailles"</span>,
|
417
|
-
<span class="ruby-string">"country"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"France"</span>,
|
418
|
-
<span class="ruby-string">"postal_code"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"78000"</span>
|
419
|
-
}
|
414
|
+
record_type: CLASS.NAME,
|
415
|
+
record_id: INTEGER,
|
416
|
+
payload_type: ENUM
|
417
|
+
attrs: { "KEY_A" => "VALUE_A", "KEY_B" => "VALUE_B", ... }
|
420
418
|
}
|
421
|
-
]
|
422
|
-
</pre>
|
419
|
+
]</pre>
|
423
420
|
|
424
421
|
<div class="method-source-code" id="relations_attrs-source">
|
425
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
422
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 107</span>
|
426
423
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">relations_attrs</span>
|
427
424
|
<span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">filter</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'current_association'</span> }
|
428
425
|
<span class="ruby-keyword">end</span></pre>
|
@@ -442,66 +439,38 @@
|
|
442
439
|
</div>
|
443
440
|
|
444
441
|
<div class="method-description">
|
445
|
-
<p>Returns the attributes of an
|
442
|
+
<p>Returns a hash describing the attributes of an update activity, including updated attributes for a record and any updated related attributes.</p>
|
446
443
|
|
447
444
|
<p>Example:</p>
|
448
445
|
|
449
446
|
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">update_activity_attrs</span>
|
450
447
|
</pre>
|
451
448
|
|
452
|
-
<p>
|
449
|
+
<p>The return value is structured as follows:</p>
|
450
|
+
<ul><li>
|
451
|
+
<p>:update_attrs contains the attributes of the record being updated, detailing changes from previous to new values.</p>
|
452
|
+
</li><li>
|
453
|
+
<p>:updated_relations_attrs is an array of hashes, each representing an updated related record. Each hash details the previous and current attributes of the relation.</p>
|
454
|
+
</li></ul>
|
455
|
+
|
456
|
+
<p>Example Return Structure:</p>
|
453
457
|
|
454
|
-
<pre
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
<span class="ruby-value">attrs:</span> [
|
459
|
-
{
|
460
|
-
<span class="ruby-string">"name"</span> <span class="ruby-operator">=></span> {
|
461
|
-
<span class="ruby-comment"># Previous name</span>
|
462
|
-
<span class="ruby-value">from:</span> <span class="ruby-string">"Electric Oasis Club"</span>,
|
463
|
-
<span class="ruby-comment"># New name</span>
|
464
|
-
<span class="ruby-value">to:</span> <span class="ruby-string">"Electric Oasis Club nr 5"</span>
|
465
|
-
}
|
466
|
-
}
|
467
|
-
]
|
458
|
+
<pre>{
|
459
|
+
update_attrs: {
|
460
|
+
record_class: "CLASS.NAME",
|
461
|
+
attrs: [{ "KEY" => { from: "OLD_VALUE", to: "NEW_VALUE" } }]
|
468
462
|
},
|
469
|
-
|
470
|
-
<span class="ruby-value">updated_relations_attrs:</span> [
|
463
|
+
updated_relations_attrs: [
|
471
464
|
{
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
<span class="ruby-value">record_class:</span> <span class="ruby-string">"Demo::Address"</span>,
|
476
|
-
<span class="ruby-comment"># Previous association payload type</span>
|
477
|
-
<span class="ruby-value">payload_type:</span> <span class="ruby-string">"previous_association"</span>,
|
478
|
-
<span class="ruby-comment"># Previous attributes for Demo::Address</span>
|
479
|
-
<span class="ruby-value">attrs:</span> {
|
480
|
-
<span class="ruby-string">"street"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Ice Hotel, Marknadsvägen 63"</span>,
|
481
|
-
<span class="ruby-string">"city"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Jukkasjärvi"</span>,
|
482
|
-
<span class="ruby-string">"country"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Sweden"</span>,
|
483
|
-
<span class="ruby-string">"postal_code"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"981 91"</span>
|
484
|
-
}
|
485
|
-
},
|
486
|
-
<span class="ruby-value">current_attrs:</span> {
|
487
|
-
<span class="ruby-value">record_class:</span> <span class="ruby-string">"Demo::Address"</span>,
|
488
|
-
<span class="ruby-comment"># Current association payload type</span>
|
489
|
-
<span class="ruby-value">payload_type:</span> <span class="ruby-string">"current_association"</span>,
|
490
|
-
<span class="ruby-comment"># Current attributes for Demo::Address</span>
|
491
|
-
<span class="ruby-value">attrs:</span> {
|
492
|
-
<span class="ruby-string">"street"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"The Palace of Versailles"</span>,
|
493
|
-
<span class="ruby-string">"city"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Versailles"</span>,
|
494
|
-
<span class="ruby-string">"country"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"France"</span>,
|
495
|
-
<span class="ruby-string">"postal_code"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"78000"</span>
|
496
|
-
}
|
497
|
-
}
|
465
|
+
record_class: "CLASS.NAME",
|
466
|
+
previous_attrs: { attrs: { "KEY" => "VALUE", ... } },
|
467
|
+
current_attrs: { attrs: { "KEY" => "VALUE", ... } }
|
498
468
|
}
|
499
469
|
]
|
500
|
-
}
|
501
|
-
</pre>
|
470
|
+
}</pre>
|
502
471
|
|
503
472
|
<div class="method-source-code" id="update_activity_attrs-source">
|
504
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
473
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 72</span>
|
505
474
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">update_activity_attrs</span>
|
506
475
|
{
|
507
476
|
<span class="ruby-value">update_attrs:</span>,
|
@@ -531,10 +500,10 @@
|
|
531
500
|
</div>
|
532
501
|
|
533
502
|
<div class="method-description">
|
534
|
-
|
503
|
+
<p>Returns the key for the actor.</p>
|
535
504
|
|
536
505
|
<div class="method-source-code" id="actor_key-source">
|
537
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
506
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 224</span>
|
538
507
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_key</span>
|
539
508
|
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">actor</span>.<span class="ruby-identifier">nil?</span>
|
540
509
|
|
@@ -556,10 +525,10 @@
|
|
556
525
|
</div>
|
557
526
|
|
558
527
|
<div class="method-description">
|
559
|
-
|
528
|
+
<p>Validates that the activity has at least one payload.</p>
|
560
529
|
|
561
530
|
<div class="method-source-code" id="must_have_at_least_one_payload-source">
|
562
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
531
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 231</span>
|
563
532
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">must_have_at_least_one_payload</span>
|
564
533
|
<span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-value">:payloads</span>, <span class="ruby-string">'must have at least one payload'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">empty?</span>
|
565
534
|
<span class="ruby-keyword">end</span></pre>
|
@@ -579,10 +548,10 @@
|
|
579
548
|
</div>
|
580
549
|
|
581
550
|
<div class="method-description">
|
582
|
-
|
551
|
+
<p>Returns payloads sorted by :payload_type.</p>
|
583
552
|
|
584
553
|
<div class="method-source-code" id="ordered_payloads-source">
|
585
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
554
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 212</span>
|
586
555
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ordered_payloads</span>
|
587
556
|
<span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">order</span>(<span class="ruby-value">:payload_type</span>)
|
588
557
|
<span class="ruby-keyword">end</span></pre>
|
@@ -602,10 +571,10 @@
|
|
602
571
|
</div>
|
603
572
|
|
604
573
|
<div class="method-description">
|
605
|
-
|
574
|
+
<p>Returns the previous association attributes.</p>
|
606
575
|
|
607
576
|
<div class="method-source-code" id="previous_associations_attrs-source">
|
608
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
577
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 207</span>
|
609
578
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">previous_associations_attrs</span>
|
610
579
|
<span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'previous_association'</span> }
|
611
580
|
<span class="ruby-keyword">end</span></pre>
|
@@ -625,10 +594,10 @@
|
|
625
594
|
</div>
|
626
595
|
|
627
596
|
<div class="method-description">
|
628
|
-
|
597
|
+
<p>Returns the primary payload.</p>
|
629
598
|
|
630
599
|
<div class="method-source-code" id="primary_payload-source">
|
631
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
600
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 189</span>
|
632
601
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_payload</span>
|
633
602
|
<span class="ruby-identifier">ordered_payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">payload_type</span> <span class="ruby-operator">==</span> <span class="ruby-string">'primary_payload'</span> }
|
634
603
|
<span class="ruby-keyword">end</span></pre>
|
@@ -648,10 +617,10 @@
|
|
648
617
|
</div>
|
649
618
|
|
650
619
|
<div class="method-description">
|
651
|
-
|
620
|
+
<p>Returns the key for the logged record.</p>
|
652
621
|
|
653
622
|
<div class="method-source-code" id="record_key-source">
|
654
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
623
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 217</span>
|
655
624
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_key</span>
|
656
625
|
<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>
|
657
626
|
|
@@ -673,10 +642,10 @@
|
|
673
642
|
</div>
|
674
643
|
|
675
644
|
<div class="method-description">
|
676
|
-
|
645
|
+
<p>Returns the attributes for the update+payload.</p>
|
677
646
|
|
678
647
|
<div class="method-source-code" id="update_attrs-source">
|
679
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
648
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 180</span>
|
680
649
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">update_attrs</span>
|
681
650
|
<span class="ruby-identifier">update_payload_attrs</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'update_payload'</span> }
|
682
651
|
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">update_payload_attrs</span>
|
@@ -700,19 +669,19 @@
|
|
700
669
|
</div>
|
701
670
|
|
702
671
|
<div class="method-description">
|
703
|
-
|
672
|
+
<p>Returns the attributes for the updated relations.</p>
|
704
673
|
|
705
674
|
<div class="method-source-code" id="updated_relations_attrs-source">
|
706
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line
|
675
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 194</span>
|
707
676
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">updated_relations_attrs</span>
|
708
|
-
<span class="ruby-identifier">grouped_associations</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">group_by</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:
|
677
|
+
<span class="ruby-identifier">grouped_associations</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">group_by</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:record_type</span>] }
|
709
678
|
|
710
|
-
<span class="ruby-identifier">grouped_associations</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">
|
679
|
+
<span class="ruby-identifier">grouped_associations</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record_type</span>, <span class="ruby-identifier">payloads</span><span class="ruby-operator">|</span>
|
711
680
|
<span class="ruby-identifier">previous_attrs</span> = <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'previous_association'</span> }
|
712
681
|
<span class="ruby-identifier">current_attrs</span> = <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'current_association'</span> }
|
713
682
|
<span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">previous_attrs</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">current_attrs</span>.<span class="ruby-identifier">nil?</span>
|
714
683
|
|
715
|
-
{ <span class="ruby-value">
|
684
|
+
{ <span class="ruby-value">record_type:</span>, <span class="ruby-value">previous_attrs:</span>, <span class="ruby-value">current_attrs:</span> }
|
716
685
|
<span class="ruby-keyword">end</span>.<span class="ruby-identifier">compact</span>
|
717
686
|
<span class="ruby-keyword">end</span></pre>
|
718
687
|
</div>
|
@@ -136,7 +136,7 @@
|
|
136
136
|
</pre>
|
137
137
|
|
138
138
|
<div class="method-source-code" id="for_class-source">
|
139
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/configuration.rb, line
|
139
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/configuration.rb, line 28</span>
|
140
140
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">for_class</span>(<span class="ruby-identifier">class_name</span>)
|
141
141
|
<span class="ruby-ivar">@config_data</span>[<span class="ruby-identifier">class_name</span>]
|
142
142
|
<span class="ruby-keyword">end</span></pre>
|
@@ -156,10 +156,10 @@
|
|
156
156
|
</div>
|
157
157
|
|
158
158
|
<div class="method-description">
|
159
|
-
|
159
|
+
<p>Loads the configuration file</p>
|
160
160
|
|
161
161
|
<div class="method-source-code" id="load_config_file-source">
|
162
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/configuration.rb, line
|
162
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/configuration.rb, line 7</span>
|
163
163
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">load_config_file</span>(<span class="ruby-identifier">config_file_path</span>)
|
164
164
|
<span class="ruby-ivar">@config_data</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">config_file_path</span>)
|
165
165
|
<span class="ruby-keyword">end</span></pre>
|
@@ -107,10 +107,10 @@
|
|
107
107
|
</div>
|
108
108
|
|
109
109
|
<div class="method-description">
|
110
|
-
|
110
|
+
<p>Returns true if the given value is blank</p>
|
111
111
|
|
112
112
|
<div class="method-source-code" id="blank-3F-source">
|
113
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption.rb, line
|
113
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption.rb, line 69</span>
|
114
114
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">blank?</span>(<span class="ruby-identifier">value</span>)
|
115
115
|
<span class="ruby-identifier">value</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:empty?</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">:</span> <span class="ruby-operator">!</span><span class="ruby-identifier">value</span>
|
116
116
|
<span class="ruby-keyword">end</span></pre>
|
@@ -148,7 +148,7 @@
|
|
148
148
|
<span class="ruby-keyword">return</span> <span class="ruby-string">''</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">encoded_key</span>.<span class="ruby-identifier">nil?</span>
|
149
149
|
|
150
150
|
<span class="ruby-identifier">encryption_key</span> = <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">decode64</span>(<span class="ruby-identifier">encoded_key</span>)
|
151
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">EncryptionError</span>, <span class="ruby-
|
151
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">EncryptionError</span>, <span class="ruby-node">"Decryption failed: Invalid encoded_key length: #{encryption_key.bytesize}"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">bytesize</span> <span class="ruby-operator">==</span> <span class="ruby-value">32</span>
|
152
152
|
|
153
153
|
<span class="ruby-identifier">cipher</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Cipher</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">'AES-256-CBC'</span>).<span class="ruby-identifier">decrypt</span>
|
154
154
|
<span class="ruby-identifier">cipher</span>.<span class="ruby-identifier">key</span> = <span class="ruby-identifier">encryption_key</span>
|
@@ -160,6 +160,9 @@
|
|
160
160
|
<span class="ruby-identifier">decrypted_data</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">'UTF-8'</span>)
|
161
161
|
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Cipher</span><span class="ruby-operator">::</span><span class="ruby-constant">CipherError</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
|
162
162
|
<span class="ruby-identifier">raise</span> <span class="ruby-constant">EncryptionError</span>, <span class="ruby-node">"Decryption failed: #{e.message}"</span>
|
163
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">EncryptionError</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
|
164
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
|
165
|
+
<span class="ruby-string">'*** DECRYPTION FAILED ***'</span>
|
163
166
|
<span class="ruby-keyword">end</span></pre>
|
164
167
|
</div>
|
165
168
|
</div>
|
@@ -195,7 +198,7 @@
|
|
195
198
|
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">encoded_key</span>.<span class="ruby-identifier">nil?</span>
|
196
199
|
|
197
200
|
<span class="ruby-identifier">encryption_key</span> = <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">decode64</span>(<span class="ruby-identifier">encoded_key</span>)
|
198
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">EncryptionError</span>, <span class="ruby-node">"Encryption failed: Invalid
|
201
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">EncryptionError</span>, <span class="ruby-node">"Encryption failed: Invalid encoded_key length #{encryption_key.bytesize}"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">bytesize</span> <span class="ruby-operator">==</span> <span class="ruby-value">32</span>
|
199
202
|
|
200
203
|
<span class="ruby-identifier">cipher</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Cipher</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">'AES-256-CBC'</span>).<span class="ruby-identifier">encrypt</span>
|
201
204
|
<span class="ruby-identifier">cipher</span>.<span class="ruby-identifier">key</span> = <span class="ruby-identifier">encryption_key</span>
|
@@ -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
|
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
|
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>)
|