loggable_activity 0.1.45 → 0.1.47
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/GETTING-STARTED.md +6 -0
- data/README.md +2 -0
- 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/activity.rb +2 -0
- data/lib/loggable_activity/encryption.rb +1 -1
- data/lib/loggable_activity/encryption_key.rb +8 -8
- 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
|
|