loggable_activity 0.1.45 → 0.1.46
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/docs/LoggableActivity/Activity.html +213 -0
- data/docs/LoggableActivity/Encryption.html +1 -1
- data/docs/LoggableActivity/EncryptionKey.html +13 -13
- data/docs/LoggableActivity/Hooks.html +456 -1
- data/docs/LoggableActivity/Payload.html +172 -1
- data/docs/LoggableActivity/PayloadsBuilder.html +231 -0
- data/docs/LoggableActivity/UpdatePayloadsBuilder.html +226 -1
- data/docs/created.rid +10 -10
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search_index.js +1 -1
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +230 -0
- data/lib/generators/loggable_activity/templates/create_loggable_encryption_keys.rb +1 -1
- data/lib/loggable_activity/encryption_key.rb +7 -7
- data/lib/loggable_activity/version.rb +1 -1
- metadata +2 -22
- data/doc/.nojekyll +0 -1
- data/doc/CHANGELOG_md.html +0 -125
- data/doc/CODE_OF_CONDUCT_md.html +0 -220
- data/doc/CONSIDERTIONS_md.html +0 -227
- data/doc/CreateLoggableActivities.html +0 -144
- data/doc/CreateLoggableEncryptionKeys.html +0 -140
- data/doc/CreateLoggablePayloads.html +0 -144
- data/doc/GETTING-STARTED_md.html +0 -186
- data/doc/Gemfile.html +0 -104
- data/doc/Gemfile_lock.html +0 -152
- data/doc/LICENSE_txt.html +0 -104
- data/doc/LoggableActivity/CurrentUser.html +0 -99
- data/doc/LoggableActivity/Generators/InstallGenerator.html +0 -178
- data/doc/LoggableActivity/Generators.html +0 -91
- data/doc/README_md.html +0 -138
- data/doc/ROADMAP_md.html +0 -151
- data/doc/Rakefile.html +0 -102
- data/doc/bin/setup.html +0 -100
- data/doc/notes/CHEAT_SHEET_md.html +0 -130
- data/doc/sig/loggable_activity_rbs.html +0 -101
@@ -73,6 +73,12 @@
|
|
73
73
|
|
74
74
|
<ul class="link-list" role="directory">
|
75
75
|
<li ><a href="#method-i-attrs">#attrs</a>
|
76
|
+
<li ><a href="#method-i-decrypt_attr">#decrypt_attr</a>
|
77
|
+
<li ><a href="#method-i-decrypted_attrs">#decrypted_attrs</a>
|
78
|
+
<li ><a href="#method-i-decrypted_from_to_attr">#decrypted_from_to_attr</a>
|
79
|
+
<li ><a href="#method-i-decrypted_update_attrs">#decrypted_update_attrs</a>
|
80
|
+
<li ><a href="#method-i-deleted_attrs">#deleted_attrs</a>
|
81
|
+
<li ><a href="#method-i-payload_encryption_key">#payload_encryption_key</a>
|
76
82
|
</ul>
|
77
83
|
</div>
|
78
84
|
|
@@ -128,7 +134,7 @@ Returns:
|
|
128
134
|
}</pre>
|
129
135
|
|
130
136
|
<div class="method-source-code" id="attrs-source">
|
131
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line
|
137
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/payload.rb, line 40</span>
|
132
138
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attrs</span>
|
133
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>
|
134
140
|
|
@@ -147,6 +153,171 @@ Returns:
|
|
147
153
|
|
148
154
|
</section>
|
149
155
|
|
156
|
+
<section id="private-instance-5Buntitled-5D-method-details" class="method-section">
|
157
|
+
<header>
|
158
|
+
<h3>Private Instance Methods</h3>
|
159
|
+
</header>
|
160
|
+
|
161
|
+
<div id="method-i-decrypt_attr" class="method-detail ">
|
162
|
+
<div class="method-header">
|
163
|
+
<div class="method-heading">
|
164
|
+
<span class="method-name">decrypt_attr</span><span
|
165
|
+
class="method-args">(value)</span>
|
166
|
+
<span class="method-click-advice">click to toggle source</span>
|
167
|
+
</div>
|
168
|
+
</div>
|
169
|
+
|
170
|
+
<div class="method-description">
|
171
|
+
<p>Decrypts a single attribute.</p>
|
172
|
+
|
173
|
+
<p>@param value [String] The encrypted value to decrypt. @return [String] The decrypted value.</p>
|
174
|
+
|
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>
|
177
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypt_attr</span>(<span class="ruby-identifier">value</span>)
|
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
|
+
<span class="ruby-keyword">end</span></pre>
|
180
|
+
</div>
|
181
|
+
</div>
|
182
|
+
|
183
|
+
|
184
|
+
</div>
|
185
|
+
|
186
|
+
<div id="method-i-decrypted_attrs" class="method-detail ">
|
187
|
+
<div class="method-header">
|
188
|
+
<div class="method-heading">
|
189
|
+
<span class="method-name">decrypted_attrs</span><span
|
190
|
+
class="method-args">()</span>
|
191
|
+
<span class="method-click-advice">click to toggle source</span>
|
192
|
+
</div>
|
193
|
+
</div>
|
194
|
+
|
195
|
+
<div class="method-description">
|
196
|
+
<p>Decrypts all attributes.</p>
|
197
|
+
|
198
|
+
<p>@return [Hash] The decrypted attributes.</p>
|
199
|
+
|
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>
|
202
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_attrs</span>
|
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
|
+
<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>)
|
205
|
+
<span class="ruby-keyword">end</span>
|
206
|
+
<span class="ruby-keyword">end</span></pre>
|
207
|
+
</div>
|
208
|
+
</div>
|
209
|
+
|
210
|
+
|
211
|
+
</div>
|
212
|
+
|
213
|
+
<div id="method-i-decrypted_from_to_attr" class="method-detail ">
|
214
|
+
<div class="method-header">
|
215
|
+
<div class="method-heading">
|
216
|
+
<span class="method-name">decrypted_from_to_attr</span><span
|
217
|
+
class="method-args">(change)</span>
|
218
|
+
<span class="method-click-advice">click to toggle source</span>
|
219
|
+
</div>
|
220
|
+
</div>
|
221
|
+
|
222
|
+
<div class="method-description">
|
223
|
+
<p>Decrypts ‘from’ and ‘to’ attributes.</p>
|
224
|
+
|
225
|
+
<p>@param change [Hash] The change hash containing ‘from’ and ‘to’ values. @return [Hash] The decrypted ‘from’ and ‘to’ values.</p>
|
226
|
+
|
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>
|
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
|
+
<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
|
+
<span class="ruby-identifier">from</span> = <span class="ruby-identifier">decrypt_attr</span>(<span class="ruby-identifier">value</span>[<span class="ruby-string">'from'</span>])
|
232
|
+
<span class="ruby-identifier">to</span> = <span class="ruby-identifier">decrypt_attr</span>(<span class="ruby-identifier">value</span>[<span class="ruby-string">'to'</span>])
|
233
|
+
[<span class="ruby-identifier">key</span>, { <span class="ruby-value">from:</span>, <span class="ruby-value">to:</span> }]
|
234
|
+
<span class="ruby-keyword">end</span>
|
235
|
+
<span class="ruby-keyword">end</span></pre>
|
236
|
+
</div>
|
237
|
+
</div>
|
238
|
+
|
239
|
+
|
240
|
+
</div>
|
241
|
+
|
242
|
+
<div id="method-i-decrypted_update_attrs" class="method-detail ">
|
243
|
+
<div class="method-header">
|
244
|
+
<div class="method-heading">
|
245
|
+
<span class="method-name">decrypted_update_attrs</span><span
|
246
|
+
class="method-args">()</span>
|
247
|
+
<span class="method-click-advice">click to toggle source</span>
|
248
|
+
</div>
|
249
|
+
</div>
|
250
|
+
|
251
|
+
<div class="method-description">
|
252
|
+
<p>Decrypts the ‘from’ and ‘to’ attributes in the update payload.</p>
|
253
|
+
|
254
|
+
<p>@return [Array<Hash>] The array of decrypted changes.</p>
|
255
|
+
|
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>
|
258
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decrypted_update_attrs</span>
|
259
|
+
<span class="ruby-identifier">encrypted_attrs</span>[<span class="ruby-string">'changes'</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
|
+
<span class="ruby-identifier">decrypted_from_to_attr</span>(<span class="ruby-identifier">change</span>)
|
261
|
+
<span class="ruby-keyword">end</span>
|
262
|
+
<span class="ruby-keyword">end</span></pre>
|
263
|
+
</div>
|
264
|
+
</div>
|
265
|
+
|
266
|
+
|
267
|
+
</div>
|
268
|
+
|
269
|
+
<div id="method-i-deleted_attrs" class="method-detail ">
|
270
|
+
<div class="method-header">
|
271
|
+
<div class="method-heading">
|
272
|
+
<span class="method-name">deleted_attrs</span><span
|
273
|
+
class="method-args">()</span>
|
274
|
+
<span class="method-click-advice">click to toggle source</span>
|
275
|
+
</div>
|
276
|
+
</div>
|
277
|
+
|
278
|
+
<div class="method-description">
|
279
|
+
<p>Helper method to handle deleted attributes.</p>
|
280
|
+
|
281
|
+
<p>@return [Hash] The hash with deleted attributes.</p>
|
282
|
+
|
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>
|
285
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">deleted_attrs</span>
|
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">'loggable.activity.deleted'</span>) }
|
287
|
+
<span class="ruby-keyword">end</span></pre>
|
288
|
+
</div>
|
289
|
+
</div>
|
290
|
+
|
291
|
+
|
292
|
+
</div>
|
293
|
+
|
294
|
+
<div id="method-i-payload_encryption_key" class="method-detail ">
|
295
|
+
<div class="method-header">
|
296
|
+
<div class="method-heading">
|
297
|
+
<span class="method-name">payload_encryption_key</span><span
|
298
|
+
class="method-args">()</span>
|
299
|
+
<span class="method-click-advice">click to toggle source</span>
|
300
|
+
</div>
|
301
|
+
</div>
|
302
|
+
|
303
|
+
<div class="method-description">
|
304
|
+
<p>Retrieves the encryption key for the payload.</p>
|
305
|
+
|
306
|
+
<p>@return [String, nil] The encryption key.</p>
|
307
|
+
|
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>
|
310
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payload_encryption_key</span>
|
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>)&.<span class="ruby-identifier">key</span>
|
312
|
+
<span class="ruby-keyword">end</span></pre>
|
313
|
+
</div>
|
314
|
+
</div>
|
315
|
+
|
316
|
+
|
317
|
+
</div>
|
318
|
+
|
319
|
+
</section>
|
320
|
+
|
150
321
|
</section>
|
151
322
|
</main>
|
152
323
|
|
@@ -66,7 +66,14 @@
|
|
66
66
|
<h3>Methods</h3>
|
67
67
|
|
68
68
|
<ul class="link-list" role="directory">
|
69
|
+
<li ><a href="#method-i-associated_record_encryption_key">#associated_record_encryption_key</a>
|
70
|
+
<li ><a href="#method-i-build_destroy_payload">#build_destroy_payload</a>
|
71
|
+
<li ><a href="#method-i-build_payload">#build_payload</a>
|
69
72
|
<li ><a href="#method-i-build_payloads">#build_payloads</a>
|
73
|
+
<li ><a href="#method-i-build_primary_payload">#build_primary_payload</a>
|
74
|
+
<li ><a href="#method-i-build_relation_payload">#build_relation_payload</a>
|
75
|
+
<li ><a href="#method-i-encrypt_attr">#encrypt_attr</a>
|
76
|
+
<li ><a href="#method-i-encrypt_attrs">#encrypt_attrs</a>
|
70
77
|
</ul>
|
71
78
|
</div>
|
72
79
|
|
@@ -142,6 +149,230 @@ Returns:
|
|
142
149
|
|
143
150
|
</section>
|
144
151
|
|
152
|
+
<section id="private-instance-5Buntitled-5D-method-details" class="method-section">
|
153
|
+
<header>
|
154
|
+
<h3>Private Instance Methods</h3>
|
155
|
+
</header>
|
156
|
+
|
157
|
+
<div id="method-i-associated_record_encryption_key" class="method-detail ">
|
158
|
+
<div class="method-header">
|
159
|
+
<div class="method-heading">
|
160
|
+
<span class="method-name">associated_record_encryption_key</span><span
|
161
|
+
class="method-args">(associated_record, data_owner)</span>
|
162
|
+
<span class="method-click-advice">click to toggle source</span>
|
163
|
+
</div>
|
164
|
+
</div>
|
165
|
+
|
166
|
+
<div class="method-description">
|
167
|
+
<p>Retrieves the encryption key for the associated record.</p>
|
168
|
+
|
169
|
+
<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
|
+
|
171
|
+
<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>
|
173
|
+
<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
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">data_owner</span>
|
175
|
+
<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>))
|
176
|
+
<span class="ruby-keyword">else</span>
|
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>)
|
178
|
+
<span class="ruby-keyword">end</span>
|
179
|
+
<span class="ruby-keyword">end</span></pre>
|
180
|
+
</div>
|
181
|
+
</div>
|
182
|
+
|
183
|
+
|
184
|
+
</div>
|
185
|
+
|
186
|
+
<div id="method-i-build_destroy_payload" class="method-detail ">
|
187
|
+
<div class="method-header">
|
188
|
+
<div class="method-heading">
|
189
|
+
<span class="method-name">build_destroy_payload</span><span
|
190
|
+
class="method-args">()</span>
|
191
|
+
<span class="method-click-advice">click to toggle source</span>
|
192
|
+
</div>
|
193
|
+
</div>
|
194
|
+
|
195
|
+
<div class="method-description">
|
196
|
+
<p>Builds the payload for destroyed records.</p>
|
197
|
+
|
198
|
+
<div class="method-source-code" id="build_destroy_payload-source">
|
199
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 48</span>
|
200
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_destroy_payload</span>
|
201
|
+
<span class="ruby-identifier">encrypted_attrs</span> = <span class="ruby-identifier">encrypt_attrs</span>(<span class="ruby-identifier">attributes</span>, <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">primary_encryption_key</span>)
|
202
|
+
<span class="ruby-identifier">encrypted_attrs</span>.<span class="ruby-identifier">transform_values!</span> { <span class="ruby-string">'*** DELETED ***'</span> }
|
203
|
+
<span class="ruby-ivar">@payloads</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Payload</span>.<span class="ruby-identifier">new</span>(
|
204
|
+
<span class="ruby-value">record:</span> <span class="ruby-ivar">@record</span>,
|
205
|
+
<span class="ruby-value">payload_type:</span> <span class="ruby-string">'primary_payload'</span>,
|
206
|
+
<span class="ruby-value">encrypted_attrs:</span>,
|
207
|
+
<span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>
|
208
|
+
)
|
209
|
+
<span class="ruby-keyword">end</span></pre>
|
210
|
+
</div>
|
211
|
+
</div>
|
212
|
+
|
213
|
+
|
214
|
+
</div>
|
215
|
+
|
216
|
+
<div id="method-i-build_payload" class="method-detail ">
|
217
|
+
<div class="method-header">
|
218
|
+
<div class="method-heading">
|
219
|
+
<span class="method-name">build_payload</span><span
|
220
|
+
class="method-args">(relation_config, relation_type)</span>
|
221
|
+
<span class="method-click-advice">click to toggle source</span>
|
222
|
+
</div>
|
223
|
+
</div>
|
224
|
+
|
225
|
+
<div class="method-description">
|
226
|
+
<p>Builds the payload for a specific relation.</p>
|
227
|
+
|
228
|
+
<p>@param relation_config [Hash] The configuration of the relation. @param relation_type [String] The type of the relation.</p>
|
229
|
+
|
230
|
+
<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>
|
232
|
+
<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
|
+
<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
|
+
<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
|
+
|
236
|
+
<span class="ruby-identifier">associated_loggable_attrs</span> = <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">'loggable_attrs'</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">'data_owner'</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"><<</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">'current_association'</span>,
|
251
|
+
<span class="ruby-value">data_owner:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">'data_owner'</span>]
|
252
|
+
)
|
253
|
+
<span class="ruby-keyword">end</span></pre>
|
254
|
+
</div>
|
255
|
+
</div>
|
256
|
+
|
257
|
+
|
258
|
+
</div>
|
259
|
+
|
260
|
+
<div id="method-i-build_primary_payload" class="method-detail ">
|
261
|
+
<div class="method-header">
|
262
|
+
<div class="method-heading">
|
263
|
+
<span class="method-name">build_primary_payload</span><span
|
264
|
+
class="method-args">()</span>
|
265
|
+
<span class="method-click-advice">click to toggle source</span>
|
266
|
+
</div>
|
267
|
+
</div>
|
268
|
+
|
269
|
+
<div class="method-description">
|
270
|
+
<p>Builds the primary payload.</p>
|
271
|
+
|
272
|
+
<div class="method-source-code" id="build_primary_payload-source">
|
273
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 37</span>
|
274
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_primary_payload</span>
|
275
|
+
<span class="ruby-identifier">encrypted_attrs</span> = <span class="ruby-identifier">encrypt_attrs</span>(<span class="ruby-identifier">attributes</span>, <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">primary_encryption_key</span>)
|
276
|
+
<span class="ruby-ivar">@payloads</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Payload</span>.<span class="ruby-identifier">new</span>(
|
277
|
+
<span class="ruby-value">record:</span> <span class="ruby-ivar">@record</span>,
|
278
|
+
<span class="ruby-value">payload_type:</span> <span class="ruby-string">'primary_payload'</span>,
|
279
|
+
<span class="ruby-value">encrypted_attrs:</span>,
|
280
|
+
<span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>
|
281
|
+
)
|
282
|
+
<span class="ruby-keyword">end</span></pre>
|
283
|
+
</div>
|
284
|
+
</div>
|
285
|
+
|
286
|
+
|
287
|
+
</div>
|
288
|
+
|
289
|
+
<div id="method-i-build_relation_payload" class="method-detail ">
|
290
|
+
<div class="method-header">
|
291
|
+
<div class="method-heading">
|
292
|
+
<span class="method-name">build_relation_payload</span><span
|
293
|
+
class="method-args">(relation_config)</span>
|
294
|
+
<span class="method-click-advice">click to toggle source</span>
|
295
|
+
</div>
|
296
|
+
</div>
|
297
|
+
|
298
|
+
<div class="method-description">
|
299
|
+
<p>Builds payloads for related records.</p>
|
300
|
+
|
301
|
+
<p>@param relation_config [Hash] The configuration of the relation.</p>
|
302
|
+
|
303
|
+
<div class="method-source-code" id="build_relation_payload-source">
|
304
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 62</span>
|
305
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_payload</span>(<span class="ruby-identifier">relation_config</span>)
|
306
|
+
<span class="ruby-identifier">relation_config</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
|
307
|
+
<span class="ruby-keyword">case</span> <span class="ruby-identifier">key</span>
|
308
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'belongs_to'</span>
|
309
|
+
<span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">'belongs_to'</span>)
|
310
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'has_one'</span>
|
311
|
+
<span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">'has_one'</span>)
|
312
|
+
<span class="ruby-keyword">end</span>
|
313
|
+
<span class="ruby-keyword">end</span>
|
314
|
+
<span class="ruby-keyword">end</span></pre>
|
315
|
+
</div>
|
316
|
+
</div>
|
317
|
+
|
318
|
+
|
319
|
+
</div>
|
320
|
+
|
321
|
+
<div id="method-i-encrypt_attr" class="method-detail ">
|
322
|
+
<div class="method-header">
|
323
|
+
<div class="method-heading">
|
324
|
+
<span class="method-name">encrypt_attr</span><span
|
325
|
+
class="method-args">(attrs, encryption_key)</span>
|
326
|
+
<span class="method-click-advice">click to toggle source</span>
|
327
|
+
</div>
|
328
|
+
</div>
|
329
|
+
|
330
|
+
<div class="method-description">
|
331
|
+
<p>Encrypts a single attribute.</p>
|
332
|
+
|
333
|
+
<p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key [String] The encryption key. @return [Hash] The encrypted attributes.</p>
|
334
|
+
|
335
|
+
<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>
|
337
|
+
<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
|
+
<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
|
+
<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>)
|
340
|
+
<span class="ruby-keyword">end</span>
|
341
|
+
<span class="ruby-keyword">end</span></pre>
|
342
|
+
</div>
|
343
|
+
</div>
|
344
|
+
|
345
|
+
|
346
|
+
</div>
|
347
|
+
|
348
|
+
<div id="method-i-encrypt_attrs" class="method-detail ">
|
349
|
+
<div class="method-header">
|
350
|
+
<div class="method-heading">
|
351
|
+
<span class="method-name">encrypt_attrs</span><span
|
352
|
+
class="method-args">(attrs, loggable_attrs, encryption_key)</span>
|
353
|
+
<span class="method-click-advice">click to toggle source</span>
|
354
|
+
</div>
|
355
|
+
</div>
|
356
|
+
|
357
|
+
<div class="method-description">
|
358
|
+
<p>Encrypts attributes.</p>
|
359
|
+
|
360
|
+
<p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array<String>] The loggable attributes. @param encryption_key [String] The encryption key. @return [Hash] The encrypted attributes.</p>
|
361
|
+
|
362
|
+
<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>
|
364
|
+
<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
|
+
<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
|
+
<span class="ruby-identifier">encrypt_attr</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">encryption_key</span>)
|
367
|
+
<span class="ruby-keyword">end</span></pre>
|
368
|
+
</div>
|
369
|
+
</div>
|
370
|
+
|
371
|
+
|
372
|
+
</div>
|
373
|
+
|
374
|
+
</section>
|
375
|
+
|
145
376
|
</section>
|
146
377
|
</main>
|
147
378
|
|