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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/docs/LoggableActivity/Activity.html +213 -0
  3. data/docs/LoggableActivity/Encryption.html +1 -1
  4. data/docs/LoggableActivity/EncryptionKey.html +13 -13
  5. data/docs/LoggableActivity/Hooks.html +456 -1
  6. data/docs/LoggableActivity/Payload.html +172 -1
  7. data/docs/LoggableActivity/PayloadsBuilder.html +231 -0
  8. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +226 -1
  9. data/docs/created.rid +10 -10
  10. data/docs/js/navigation.js.gz +0 -0
  11. data/docs/js/search_index.js +1 -1
  12. data/docs/js/search_index.js.gz +0 -0
  13. data/docs/js/searcher.js.gz +0 -0
  14. data/docs/table_of_contents.html +230 -0
  15. data/lib/generators/loggable_activity/templates/create_loggable_encryption_keys.rb +1 -1
  16. data/lib/loggable_activity/encryption_key.rb +7 -7
  17. data/lib/loggable_activity/version.rb +1 -1
  18. metadata +2 -22
  19. data/doc/.nojekyll +0 -1
  20. data/doc/CHANGELOG_md.html +0 -125
  21. data/doc/CODE_OF_CONDUCT_md.html +0 -220
  22. data/doc/CONSIDERTIONS_md.html +0 -227
  23. data/doc/CreateLoggableActivities.html +0 -144
  24. data/doc/CreateLoggableEncryptionKeys.html +0 -140
  25. data/doc/CreateLoggablePayloads.html +0 -144
  26. data/doc/GETTING-STARTED_md.html +0 -186
  27. data/doc/Gemfile.html +0 -104
  28. data/doc/Gemfile_lock.html +0 -152
  29. data/doc/LICENSE_txt.html +0 -104
  30. data/doc/LoggableActivity/CurrentUser.html +0 -99
  31. data/doc/LoggableActivity/Generators/InstallGenerator.html +0 -178
  32. data/doc/LoggableActivity/Generators.html +0 -91
  33. data/doc/README_md.html +0 -138
  34. data/doc/ROADMAP_md.html +0 -151
  35. data/doc/Rakefile.html +0 -102
  36. data/doc/bin/setup.html +0 -100
  37. data/doc/notes/CHEAT_SHEET_md.html +0 -130
  38. 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