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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -1
  3. data/GETTING-STARTED.md +6 -0
  4. data/README.md +2 -0
  5. data/docs/LoggableActivity/Activity.html +213 -0
  6. data/docs/LoggableActivity/Encryption.html +1 -1
  7. data/docs/LoggableActivity/EncryptionKey.html +13 -13
  8. data/docs/LoggableActivity/Hooks.html +456 -1
  9. data/docs/LoggableActivity/Payload.html +172 -1
  10. data/docs/LoggableActivity/PayloadsBuilder.html +231 -0
  11. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +226 -1
  12. data/docs/created.rid +10 -10
  13. data/docs/js/navigation.js.gz +0 -0
  14. data/docs/js/search_index.js +1 -1
  15. data/docs/js/search_index.js.gz +0 -0
  16. data/docs/js/searcher.js.gz +0 -0
  17. data/docs/table_of_contents.html +230 -0
  18. data/lib/generators/loggable_activity/templates/create_loggable_encryption_keys.rb +1 -1
  19. data/lib/loggable_activity/activity.rb +2 -0
  20. data/lib/loggable_activity/encryption.rb +1 -1
  21. data/lib/loggable_activity/encryption_key.rb +8 -8
  22. data/lib/loggable_activity/version.rb +1 -1
  23. metadata +2 -22
  24. data/doc/.nojekyll +0 -1
  25. data/doc/CHANGELOG_md.html +0 -125
  26. data/doc/CODE_OF_CONDUCT_md.html +0 -220
  27. data/doc/CONSIDERTIONS_md.html +0 -227
  28. data/doc/CreateLoggableActivities.html +0 -144
  29. data/doc/CreateLoggableEncryptionKeys.html +0 -140
  30. data/doc/CreateLoggablePayloads.html +0 -144
  31. data/doc/GETTING-STARTED_md.html +0 -186
  32. data/doc/Gemfile.html +0 -104
  33. data/doc/Gemfile_lock.html +0 -152
  34. data/doc/LICENSE_txt.html +0 -104
  35. data/doc/LoggableActivity/CurrentUser.html +0 -99
  36. data/doc/LoggableActivity/Generators/InstallGenerator.html +0 -178
  37. data/doc/LoggableActivity/Generators.html +0 -91
  38. data/doc/README_md.html +0 -138
  39. data/doc/ROADMAP_md.html +0 -151
  40. data/doc/Rakefile.html +0 -102
  41. data/doc/bin/setup.html +0 -100
  42. data/doc/notes/CHEAT_SHEET_md.html +0 -130
  43. 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 38</span>
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">&#39;from&#39;</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">&#39;to&#39;</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&lt;Hash&gt;] 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">&#39;changes&#39;</span>].<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">change</span><span class="ruby-operator">|</span>
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">&#39;loggable.activity.deleted&#39;</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>)&amp;.<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">&#39;*** DELETED ***&#39;</span> }
203
+ <span class="ruby-ivar">@payloads</span> <span class="ruby-operator">&lt;&lt;</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">&#39;primary_payload&#39;</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">&#39;loggable_attrs&#39;</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">&#39;data_owner&#39;</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">&lt;&lt;</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">&#39;current_association&#39;</span>,
251
+ <span class="ruby-value">data_owner:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;data_owner&#39;</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">&lt;&lt;</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">&#39;primary_payload&#39;</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">&#39;belongs_to&#39;</span>
309
+ <span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;belongs_to&#39;</span>)
310
+ <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_one&#39;</span>
311
+ <span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;has_one&#39;</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&lt;String&gt;] 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