loggable_activity 0.1.56 → 0.1.58

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -1
  3. data/CHANGELOG.md +9 -0
  4. data/GETTING-STARTED.md +8 -47
  5. data/PAYLOAD_EXAMPLE.md +63 -0
  6. data/docs/LoggableActivity/Activity.html +92 -241
  7. data/docs/LoggableActivity/Configuration.html +162 -15
  8. data/docs/LoggableActivity/ConfigurationError.html +148 -0
  9. data/docs/LoggableActivity/DataOwner.html +138 -0
  10. data/docs/LoggableActivity/Encryption.html +18 -14
  11. data/docs/LoggableActivity/EncryptionError.html +47 -1
  12. data/docs/LoggableActivity/EncryptionKey.html +54 -35
  13. data/docs/LoggableActivity/Error.html +48 -0
  14. data/docs/LoggableActivity/Hooks.html +221 -89
  15. data/docs/LoggableActivity/Payload.html +103 -27
  16. data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +442 -0
  17. data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +395 -0
  18. data/docs/LoggableActivity/Services/PayloadsBuilder.html +342 -0
  19. data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +490 -0
  20. data/docs/LoggableActivity/Services.html +93 -0
  21. data/docs/created.rid +14 -10
  22. data/docs/index.html +10 -2
  23. data/docs/js/navigation.js.gz +0 -0
  24. data/docs/js/search_index.js +1 -1
  25. data/docs/js/search_index.js.gz +0 -0
  26. data/docs/js/searcher.js.gz +0 -0
  27. data/docs/table_of_contents.html +253 -85
  28. data/lib/generators/loggable_activity/install_generator.rb +2 -18
  29. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +9 -10
  30. data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +16 -13
  31. data/lib/loggable_activity/activity.rb +53 -102
  32. data/lib/loggable_activity/configuration.rb +60 -3
  33. data/lib/loggable_activity/data_owner.rb +18 -0
  34. data/lib/loggable_activity/encryption.rb +14 -14
  35. data/lib/loggable_activity/encryption_key.rb +26 -25
  36. data/lib/loggable_activity/error.rb +34 -0
  37. data/lib/loggable_activity/hooks.rb +78 -43
  38. data/lib/loggable_activity/payload.rb +70 -20
  39. data/lib/loggable_activity/services/base_payloads_builder.rb +127 -0
  40. data/lib/loggable_activity/services/destroy_payloads_builder.rb +127 -0
  41. data/lib/loggable_activity/services/payloads_builder.rb +98 -0
  42. data/lib/loggable_activity/services/update_payloads_builder.rb +168 -0
  43. data/lib/loggable_activity/version.rb +1 -1
  44. data/lib/loggable_activity.rb +6 -6
  45. data/lib/schemas/config_schema.json +90 -0
  46. metadata +37 -26
  47. data/docs/LoggableActivity/PayloadsBuilder.html +0 -441
  48. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +0 -424
  49. data/lib/generators/loggable_activity/install_templates_generator.rb +0 -105
  50. data/lib/generators/loggable_activity/templates/helpers/activity_helper.rb +0 -37
  51. data/lib/generators/loggable_activity/templates/helpers/router.rb +0 -52
  52. data/lib/generators/loggable_activity/templates/helpers/routes_helper.rb +0 -20
  53. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +0 -23
  54. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +0 -18
  55. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +0 -18
  56. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +0 -17
  57. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +0 -18
  58. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +0 -17
  59. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +0 -18
  60. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +0 -12
  61. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +0 -12
  62. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +0 -11
  63. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +0 -8
  64. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +0 -6
  65. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +0 -17
  66. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +0 -14
  67. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +0 -23
  68. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +0 -21
  69. data/lib/loggable_activity/payloads_builder.rb +0 -153
  70. data/lib/loggable_activity/update_payloads_builder.rb +0 -127
@@ -1,441 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
-
7
- <title>module LoggableActivity::PayloadsBuilder - RDoc Documentation</title>
8
-
9
- <script type="text/javascript">
10
- var rdoc_rel_prefix = "../";
11
- var index_rel_prefix = "../";
12
- </script>
13
-
14
- <script src="../js/navigation.js" defer></script>
15
- <script src="../js/search.js" defer></script>
16
- <script src="../js/search_index.js" defer></script>
17
- <script src="../js/searcher.js" defer></script>
18
- <script src="../js/darkfish.js" defer></script>
19
-
20
- <link href="../css/fonts.css" rel="stylesheet">
21
- <link href="../css/rdoc.css" rel="stylesheet">
22
-
23
-
24
- <body id="top" role="document" class="module">
25
- <nav role="navigation">
26
- <div id="project-navigation">
27
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
- <h2>
29
- <a href="../index.html" rel="home">Home</a>
30
- </h2>
31
-
32
- <div id="table-of-contents-navigation">
33
- <a href="../table_of_contents.html#pages">Pages</a>
34
- <a href="../table_of_contents.html#classes">Classes</a>
35
- <a href="../table_of_contents.html#methods">Methods</a>
36
- </div>
37
- </div>
38
-
39
- <div id="search-section" role="search" class="project-section initially-hidden">
40
- <form action="#" method="get" accept-charset="utf-8">
41
- <div id="search-field-wrapper">
42
- <input id="search-field" role="combobox" aria-label="Search"
43
- aria-autocomplete="list" aria-controls="search-results"
44
- type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
45
- title="Type to search, Up and Down to navigate, Enter to load">
46
- </div>
47
-
48
- <ul id="search-results" aria-label="Search Results"
49
- aria-busy="false" aria-expanded="false"
50
- aria-atomic="false" class="initially-hidden"></ul>
51
- </form>
52
- </div>
53
-
54
- </div>
55
-
56
-
57
-
58
- <div id="class-metadata">
59
-
60
-
61
-
62
-
63
-
64
- <!-- Method Quickref -->
65
- <div id="method-list-section" class="nav-section">
66
- <h3>Methods</h3>
67
-
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_associated_payload">#build_associated_payload</a>
71
- <li ><a href="#method-i-build_destroy_payload">#build_destroy_payload</a>
72
- <li ><a href="#method-i-build_has_many_payloads">#build_has_many_payloads</a>
73
- <li ><a href="#method-i-build_payload">#build_payload</a>
74
- <li ><a href="#method-i-build_payloads">#build_payloads</a>
75
- <li ><a href="#method-i-build_primary_payload">#build_primary_payload</a>
76
- <li ><a href="#method-i-build_relation_payload">#build_relation_payload</a>
77
- <li ><a href="#method-i-encrypt_attr">#encrypt_attr</a>
78
- <li ><a href="#method-i-encrypt_attrs">#encrypt_attrs</a>
79
- </ul>
80
- </div>
81
-
82
- </div>
83
- </nav>
84
-
85
- <main role="main" aria-labelledby="module-LoggableActivity::PayloadsBuilder">
86
- <h1 id="module-LoggableActivity::PayloadsBuilder" class="module">
87
- module LoggableActivity::PayloadsBuilder
88
- </h1>
89
-
90
- <section class="description">
91
-
92
- <p>This module is responsible for building payloads used in loggable activities.</p>
93
-
94
- </section>
95
-
96
- <section id="5Buntitled-5D" class="documentation-section">
97
-
98
-
99
-
100
-
101
-
102
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
103
- <header>
104
- <h3>Public Instance Methods</h3>
105
- </header>
106
-
107
- <div id="method-i-build_payloads" class="method-detail ">
108
- <div class="method-header">
109
- <div class="method-heading">
110
- <span class="method-name">build_payloads</span><span
111
- class="method-args">()</span>
112
- <span class="method-click-advice">click to toggle source</span>
113
- </div>
114
- </div>
115
-
116
- <div class="method-description">
117
- <p>Builds payloads for the loggable activity.</p>
118
-
119
- <pre>Example:
120
- build_payloads
121
-
122
- Returns:
123
- #&lt;LoggableActivity::Payload:0x0000000109658718&gt; {
124
- :id =&gt; 129,
125
- :record_type =&gt; &quot;Demo::Club&quot;,
126
- :record_id =&gt; 4,
127
- :encrypted_attrs =&gt; {
128
- &quot;name&quot; =&gt; &quot;z/jigjcm3Fb89L7QT8XiNhvVgjtRXKkmg/xohR6wIc0=\n&quot;
129
- },
130
- :payload_type =&gt; &quot;current_association&quot;,
131
- :data_owner =&gt; nil,
132
- :activity_id =&gt; 50,
133
- :created_at =&gt; Wed, 14 Feb 2024 13:21:13.964339000 UTC +00:00,
134
- :updated_at =&gt; Wed, 14 Feb 2024 13:21:13.964339000 UTC +00:00
135
- }</pre>
136
-
137
- <div class="method-source-code" id="build_payloads-source">
138
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 26</span>
139
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_payloads</span>
140
- <span class="ruby-identifier">build_primary_payload</span>
141
- <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">relations</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">relation_config</span><span class="ruby-operator">|</span>
142
- <span class="ruby-identifier">build_relation_payload</span>(<span class="ruby-identifier">relation_config</span>)
143
- <span class="ruby-keyword">end</span>
144
- <span class="ruby-ivar">@payloads</span>
145
- <span class="ruby-keyword">end</span></pre>
146
- </div>
147
- </div>
148
-
149
-
150
- </div>
151
-
152
- </section>
153
-
154
- <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
155
- <header>
156
- <h3>Private Instance Methods</h3>
157
- </header>
158
-
159
- <div id="method-i-associated_record_encryption_key" class="method-detail ">
160
- <div class="method-header">
161
- <div class="method-heading">
162
- <span class="method-name">associated_record_encryption_key</span><span
163
- class="method-args">(associated_record, data_owner)</span>
164
- <span class="method-click-advice">click to toggle source</span>
165
- </div>
166
- </div>
167
-
168
- <div class="method-description">
169
- <p>Retrieves the encryption key for the associated record.</p>
170
-
171
- <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>
172
-
173
- <div class="method-source-code" id="associated_record_encryption_key-source">
174
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 123</span>
175
- <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>)
176
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">data_owner</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>, <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>))
178
- <span class="ruby-keyword">else</span>
179
- <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>)
180
- <span class="ruby-keyword">end</span>
181
- <span class="ruby-keyword">end</span></pre>
182
- </div>
183
- </div>
184
-
185
-
186
- </div>
187
-
188
- <div id="method-i-build_associated_payload" class="method-detail ">
189
- <div class="method-header">
190
- <div class="method-heading">
191
- <span class="method-name">build_associated_payload</span><span
192
- class="method-args">(associated_record, relation_config)</span>
193
- <span class="method-click-advice">click to toggle source</span>
194
- </div>
195
- </div>
196
-
197
- <div class="method-description">
198
- <p>Builds the payload for an associated record.</p>
199
-
200
- <div class="method-source-code" id="build_associated_payload-source">
201
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 99</span>
202
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_associated_payload</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">relation_config</span>)
203
- <span class="ruby-identifier">associated_loggable_attrs</span> = <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;loggable_attrs&#39;</span>]
204
- <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>])
205
- <span class="ruby-identifier">encrypted_attrs</span> =
206
- <span class="ruby-identifier">encrypt_attrs</span>(
207
- <span class="ruby-identifier">associated_record</span>.<span class="ruby-identifier">attributes</span>,
208
- <span class="ruby-identifier">associated_loggable_attrs</span>,
209
- <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">key</span>
210
- )
211
-
212
- <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>(
213
- <span class="ruby-value">record:</span> <span class="ruby-identifier">associated_record</span>,
214
- <span class="ruby-value">encrypted_attrs:</span>,
215
- <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;current_association&#39;</span>,
216
- <span class="ruby-value">data_owner:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;data_owner&#39;</span>],
217
- <span class="ruby-value">route:</span> <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;route&#39;</span>]
218
- )
219
- <span class="ruby-keyword">end</span></pre>
220
- </div>
221
- </div>
222
-
223
-
224
- </div>
225
-
226
- <div id="method-i-build_destroy_payload" class="method-detail ">
227
- <div class="method-header">
228
- <div class="method-heading">
229
- <span class="method-name">build_destroy_payload</span><span
230
- class="method-args">()</span>
231
- <span class="method-click-advice">click to toggle source</span>
232
- </div>
233
- </div>
234
-
235
- <div class="method-description">
236
- <p>Builds the payload for destroyed records.</p>
237
-
238
- <div class="method-source-code" id="build_destroy_payload-source">
239
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 49</span>
240
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_destroy_payload</span>
241
- <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>)
242
- <span class="ruby-identifier">encrypted_attrs</span>.<span class="ruby-identifier">transform_values!</span> { <span class="ruby-string">&#39;*** DELETED ***&#39;</span> }
243
- <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>(
244
- <span class="ruby-value">record:</span> <span class="ruby-ivar">@record</span>,
245
- <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;primary_payload&#39;</span>,
246
- <span class="ruby-value">encrypted_attrs:</span>,
247
- <span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>,
248
- <span class="ruby-value">route:</span> <span class="ruby-keyword">nil</span>
249
- )
250
- <span class="ruby-keyword">end</span></pre>
251
- </div>
252
- </div>
253
-
254
-
255
- </div>
256
-
257
- <div id="method-i-build_has_many_payloads" class="method-detail ">
258
- <div class="method-header">
259
- <div class="method-heading">
260
- <span class="method-name">build_has_many_payloads</span><span
261
- class="method-args">(relation_config, relation_type)</span>
262
- <span class="method-click-advice">click to toggle source</span>
263
- </div>
264
- </div>
265
-
266
- <div class="method-description">
267
- <p>Builds payloads for has_many relations.</p>
268
-
269
- <div class="method-source-code" id="build_has_many_payloads-source">
270
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 89</span>
271
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_has_many_payloads</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-identifier">relation_type</span>)
272
- <span class="ruby-identifier">associated_records</span> = <span class="ruby-identifier">send</span>(<span class="ruby-identifier">relation_config</span>[<span class="ruby-identifier">relation_type</span>])
273
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">associated_records</span>.<span class="ruby-identifier">empty?</span>
274
-
275
- <span class="ruby-identifier">associated_records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">associated_record</span><span class="ruby-operator">|</span>
276
- <span class="ruby-identifier">build_associated_payload</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">relation_config</span>)
277
- <span class="ruby-keyword">end</span>
278
- <span class="ruby-keyword">end</span></pre>
279
- </div>
280
- </div>
281
-
282
-
283
- </div>
284
-
285
- <div id="method-i-build_payload" class="method-detail ">
286
- <div class="method-header">
287
- <div class="method-heading">
288
- <span class="method-name">build_payload</span><span
289
- class="method-args">(relation_config, relation_type)</span>
290
- <span class="method-click-advice">click to toggle source</span>
291
- </div>
292
- </div>
293
-
294
- <div class="method-description">
295
- <p>Builds the payload for a specific relation.</p>
296
-
297
- <p>@param relation_config [Hash] The configuration of the relation. @param relation_type [String] The type of the relation.</p>
298
-
299
- <div class="method-source-code" id="build_payload-source">
300
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 81</span>
301
- <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>)
302
- <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>])
303
- <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>
304
-
305
- <span class="ruby-identifier">build_associated_payload</span>(<span class="ruby-identifier">associated_record</span>, <span class="ruby-identifier">relation_config</span>)
306
- <span class="ruby-keyword">end</span></pre>
307
- </div>
308
- </div>
309
-
310
-
311
- </div>
312
-
313
- <div id="method-i-build_primary_payload" class="method-detail ">
314
- <div class="method-header">
315
- <div class="method-heading">
316
- <span class="method-name">build_primary_payload</span><span
317
- class="method-args">()</span>
318
- <span class="method-click-advice">click to toggle source</span>
319
- </div>
320
- </div>
321
-
322
- <div class="method-description">
323
- <p>Builds the primary payload.</p>
324
-
325
- <div class="method-source-code" id="build_primary_payload-source">
326
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 37</span>
327
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_primary_payload</span>
328
- <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>)
329
- <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>(
330
- <span class="ruby-value">record:</span> <span class="ruby-ivar">@record</span>,
331
- <span class="ruby-value">payload_type:</span> <span class="ruby-string">&#39;primary_payload&#39;</span>,
332
- <span class="ruby-value">encrypted_attrs:</span>,
333
- <span class="ruby-value">data_owner:</span> <span class="ruby-keyword">true</span>,
334
- <span class="ruby-value">route:</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">route</span>
335
- )
336
- <span class="ruby-keyword">end</span></pre>
337
- </div>
338
- </div>
339
-
340
-
341
- </div>
342
-
343
- <div id="method-i-build_relation_payload" class="method-detail ">
344
- <div class="method-header">
345
- <div class="method-heading">
346
- <span class="method-name">build_relation_payload</span><span
347
- class="method-args">(relation_config)</span>
348
- <span class="method-click-advice">click to toggle source</span>
349
- </div>
350
- </div>
351
-
352
- <div class="method-description">
353
- <p>Builds payloads for relations</p>
354
-
355
- <p>@param relation_config [Hash] The configuration of the relation.</p>
356
-
357
- <div class="method-source-code" id="build_relation_payload-source">
358
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 64</span>
359
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_payload</span>(<span class="ruby-identifier">relation_config</span>)
360
- <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>
361
- <span class="ruby-keyword">case</span> <span class="ruby-identifier">key</span>
362
- <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;belongs_to&#39;</span>
363
- <span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;belongs_to&#39;</span>)
364
- <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_one&#39;</span>
365
- <span class="ruby-identifier">build_payload</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;has_one&#39;</span>)
366
- <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_many&#39;</span>
367
- <span class="ruby-identifier">build_has_many_payloads</span>(<span class="ruby-identifier">relation_config</span>, <span class="ruby-string">&#39;has_many&#39;</span>)
368
- <span class="ruby-keyword">end</span>
369
- <span class="ruby-keyword">end</span>
370
- <span class="ruby-keyword">end</span></pre>
371
- </div>
372
- </div>
373
-
374
-
375
- </div>
376
-
377
- <div id="method-i-encrypt_attr" class="method-detail ">
378
- <div class="method-header">
379
- <div class="method-heading">
380
- <span class="method-name">encrypt_attr</span><span
381
- class="method-args">(attrs, encryption_key)</span>
382
- <span class="method-click-advice">click to toggle source</span>
383
- </div>
384
- </div>
385
-
386
- <div class="method-description">
387
- <p>Encrypts a single attribute.</p>
388
-
389
- <p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key [String] The encryption key. @return [Hash] The encrypted attributes.</p>
390
-
391
- <div class="method-source-code" id="encrypt_attr-source">
392
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 147</span>
393
- <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>)
394
- <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>
395
- <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>)
396
- <span class="ruby-keyword">end</span>
397
- <span class="ruby-keyword">end</span></pre>
398
- </div>
399
- </div>
400
-
401
-
402
- </div>
403
-
404
- <div id="method-i-encrypt_attrs" class="method-detail ">
405
- <div class="method-header">
406
- <div class="method-heading">
407
- <span class="method-name">encrypt_attrs</span><span
408
- class="method-args">(attrs, loggable_attrs, encryption_key)</span>
409
- <span class="method-click-advice">click to toggle source</span>
410
- </div>
411
- </div>
412
-
413
- <div class="method-description">
414
- <p>Encrypts attributes.</p>
415
-
416
- <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>
417
-
418
- <div class="method-source-code" id="encrypt_attrs-source">
419
- <pre><span class="ruby-comment"># File lib/loggable_activity/payloads_builder.rb, line 137</span>
420
- <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>)
421
- <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>)
422
- <span class="ruby-identifier">encrypt_attr</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">encryption_key</span>)
423
- <span class="ruby-keyword">end</span></pre>
424
- </div>
425
- </div>
426
-
427
-
428
- </div>
429
-
430
- </section>
431
-
432
- </section>
433
- </main>
434
-
435
-
436
- <footer id="validator-badges" role="contentinfo">
437
- <p><a href="https://validator.w3.org/check/referer">Validate</a>
438
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.6.2.
439
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
440
- </footer>
441
-