loggable_activity 0.5.6 → 0.5.7

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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/GETTING-STARTED.md +1 -0
  4. data/docker-compose.yml +27 -0
  5. data/docs/CHANGELOG_md.html +318 -0
  6. data/docs/CHEAT_SHEET_md.html +168 -0
  7. data/docs/CODE_OF_CONDUCT_md.html +250 -0
  8. data/docs/CreateLoggableActivities.html +175 -0
  9. data/docs/CreateLoggableActivityTables.html +173 -0
  10. data/docs/GETTING-STARTED_md.html +211 -0
  11. data/docs/Gemfile.html +153 -0
  12. data/docs/Gemfile_lock.html +438 -0
  13. data/docs/LoggableActivity/ActivitiesController.html +160 -0
  14. data/docs/LoggableActivity/ActivitiesHelper.html +158 -0
  15. data/docs/LoggableActivity/Activity.html +565 -0
  16. data/docs/LoggableActivity/ApplicationController.html +97 -0
  17. data/docs/LoggableActivity/ApplicationHelper.html +91 -0
  18. data/docs/LoggableActivity/ApplicationJob.html +97 -0
  19. data/docs/LoggableActivity/ApplicationMailer.html +97 -0
  20. data/docs/LoggableActivity/ApplicationRecord.html +97 -0
  21. data/docs/LoggableActivity/Configuration.html +237 -0
  22. data/docs/LoggableActivity/ConfigurationError.html +142 -0
  23. data/docs/LoggableActivity/CurrentActor.html +166 -0
  24. data/docs/LoggableActivity/DataOwner.html +138 -0
  25. data/docs/LoggableActivity/Encryption.html +321 -0
  26. data/docs/LoggableActivity/EncryptionError.html +142 -0
  27. data/docs/LoggableActivity/EncryptionKey.html +399 -0
  28. data/docs/LoggableActivity/Engine.html +108 -0
  29. data/docs/LoggableActivity/Error.html +142 -0
  30. data/docs/LoggableActivity/Generators/InstallGenerator.html +212 -0
  31. data/docs/LoggableActivity/Generators.html +91 -0
  32. data/docs/LoggableActivity/Hooks.html +841 -0
  33. data/docs/LoggableActivity/Payload.html +430 -0
  34. data/docs/LoggableActivity/Sanitizer.html +134 -0
  35. data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +472 -0
  36. data/docs/LoggableActivity/Services/CustomPayloadsBuilder.html +225 -0
  37. data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +396 -0
  38. data/docs/LoggableActivity/Services/PayloadsBuilder.html +348 -0
  39. data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +540 -0
  40. data/docs/LoggableActivity/Services.html +93 -0
  41. data/docs/LoggableActivity.html +173 -0
  42. data/docs/MIT-LICENSE.html +132 -0
  43. data/docs/Object.html +110 -0
  44. data/docs/README_md.html +186 -0
  45. data/docs/Rakefile.html +134 -0
  46. data/docs/app/assets/config/loggable_activity_manifest_js.html +126 -0
  47. data/docs/app/assets/javascripts/loggable_activity/application_js.html +124 -0
  48. data/docs/app/assets/stylesheets/loggable_activity/activities_scss.html +154 -0
  49. data/docs/app/assets/stylesheets/loggable_activity/application_scss.html +142 -0
  50. data/docs/app/views/layouts/loggable_activity/application_html_slim.html +145 -0
  51. data/docs/app/views/loggable_activity/activities/_activities_html_slim.html +159 -0
  52. data/docs/created.rid +74 -0
  53. data/docs/css/fonts.css +167 -0
  54. data/docs/css/rdoc.css +687 -0
  55. data/docs/fonts/Lato-Light.ttf +0 -0
  56. data/docs/fonts/Lato-LightItalic.ttf +0 -0
  57. data/docs/fonts/Lato-Regular.ttf +0 -0
  58. data/docs/fonts/Lato-RegularItalic.ttf +0 -0
  59. data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
  60. data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
  61. data/docs/git-org/HEAD.html +126 -0
  62. data/docs/git-org/config.html +128 -0
  63. data/docs/git-org/description.html +126 -0
  64. data/docs/git-org/hooks/applypatch-msg_sample.html +128 -0
  65. data/docs/git-org/hooks/commit-msg_sample.html +138 -0
  66. data/docs/git-org/hooks/fsmonitor-watchman_sample.html +302 -0
  67. data/docs/git-org/hooks/post-update_sample.html +128 -0
  68. data/docs/git-org/hooks/pre-applypatch_sample.html +128 -0
  69. data/docs/git-org/hooks/pre-commit_sample.html +174 -0
  70. data/docs/git-org/hooks/pre-merge-commit_sample.html +133 -0
  71. data/docs/git-org/hooks/pre-push_sample.html +161 -0
  72. data/docs/git-org/hooks/pre-rebase_sample.html +282 -0
  73. data/docs/git-org/hooks/pre-receive_sample.html +144 -0
  74. data/docs/git-org/hooks/prepare-commit-msg_sample.html +136 -0
  75. data/docs/git-org/hooks/push-to-checkout_sample.html +178 -0
  76. data/docs/git-org/hooks/update_sample.html +226 -0
  77. data/docs/git-org/info/exclude.html +126 -0
  78. data/docs/images/add.png +0 -0
  79. data/docs/images/arrow_up.png +0 -0
  80. data/docs/images/brick.png +0 -0
  81. data/docs/images/brick_link.png +0 -0
  82. data/docs/images/bug.png +0 -0
  83. data/docs/images/bullet_black.png +0 -0
  84. data/docs/images/bullet_toggle_minus.png +0 -0
  85. data/docs/images/bullet_toggle_plus.png +0 -0
  86. data/docs/images/date.png +0 -0
  87. data/docs/images/delete.png +0 -0
  88. data/docs/images/find.png +0 -0
  89. data/docs/images/loadingAnimation.gif +0 -0
  90. data/docs/images/macFFBgHack.png +0 -0
  91. data/docs/images/package.png +0 -0
  92. data/docs/images/page_green.png +0 -0
  93. data/docs/images/page_white_text.png +0 -0
  94. data/docs/images/page_white_width.png +0 -0
  95. data/docs/images/plugin.png +0 -0
  96. data/docs/images/ruby.png +0 -0
  97. data/docs/images/tag_blue.png +0 -0
  98. data/docs/images/tag_green.png +0 -0
  99. data/docs/images/transparent.png +0 -0
  100. data/docs/images/wrench.png +0 -0
  101. data/docs/images/wrench_orange.png +0 -0
  102. data/docs/images/zoom.png +0 -0
  103. data/docs/index.html +166 -0
  104. data/docs/js/darkfish.js +97 -0
  105. data/docs/js/navigation.js +105 -0
  106. data/docs/js/navigation.js.gz +0 -0
  107. data/docs/js/search.js +110 -0
  108. data/docs/js/search_index.js +1 -0
  109. data/docs/js/search_index.js.gz +0 -0
  110. data/docs/js/searcher.js +229 -0
  111. data/docs/js/searcher.js.gz +0 -0
  112. data/docs/lib/loggable_activity/config_schema_json.html +205 -0
  113. data/docs/lib/tasks/loggable_activity_tasks_rake.html +128 -0
  114. data/docs/table_of_contents.html +954 -0
  115. data/lib/loggable_activity/concerns/current_actor.rb +25 -0
  116. data/lib/loggable_activity/hooks.rb +41 -19
  117. data/lib/loggable_activity/version.rb +1 -1
  118. data/lib/loggable_activity.rb +1 -1
  119. metadata +114 -3
  120. data/lib/loggable_activity/concerns/current_user.rb +0 -26
@@ -0,0 +1,841 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>module LoggableActivity::Hooks - 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
+ <div id="extends-section" class="nav-section">
64
+ <h3>Extended With Modules</h3>
65
+
66
+ <ul class="link-list">
67
+ <li><span class="extend">ActiveSupport::Concern</span>
68
+ </ul>
69
+ </div>
70
+
71
+
72
+ <!-- Method Quickref -->
73
+ <div id="method-list-section" class="nav-section">
74
+ <h3>Methods</h3>
75
+
76
+ <ul class="link-list" role="directory">
77
+ <li ><a href="#method-i-action_key">#action_key</a>
78
+ <li ><a href="#method-i-actor_secret_key">#actor_secret_key</a>
79
+ <li ><a href="#method-i-base_action">#base_action</a>
80
+ <li ><a href="#method-i-build_custom_payload">#build_custom_payload</a>
81
+ <li ><a href="#method-i-build_destroy_payload">#build_destroy_payload</a>
82
+ <li ><a href="#method-i-build_payloads">#build_payloads</a>
83
+ <li ><a href="#method-i-build_update_payloads">#build_update_payloads</a>
84
+ <li ><a href="#method-i-create_activity">#create_activity</a>
85
+ <li ><a href="#method-i-disable_hooks-21">#disable_hooks!</a>
86
+ <li ><a href="#method-i-encrypted_actor_name">#encrypted_actor_name</a>
87
+ <li ><a href="#method-i-encryption_key_for_record">#encryption_key_for_record</a>
88
+ <li ><a href="#method-i-fetch_actor_name_from">#fetch_actor_name_from</a>
89
+ <li ><a href="#method-i-hooks_enabled-3F">#hooks_enabled?</a>
90
+ <li ><a href="#method-i-log">#log</a>
91
+ <li ><a href="#method-i-log_activity">#log_activity</a>
92
+ <li ><a href="#method-i-log_create_activity">#log_create_activity</a>
93
+ <li ><a href="#method-i-log_custom_activity">#log_custom_activity</a>
94
+ <li ><a href="#method-i-log_destroy">#log_destroy</a>
95
+ <li ><a href="#method-i-log_destroy_activity">#log_destroy_activity</a>
96
+ <li ><a href="#method-i-log_login">#log_login</a>
97
+ <li ><a href="#method-i-log_logout">#log_logout</a>
98
+ <li ><a href="#method-i-log_sign_up">#log_sign_up</a>
99
+ <li ><a href="#method-i-log_update">#log_update</a>
100
+ <li ><a href="#method-i-log_update_activity">#log_update_activity</a>
101
+ <li ><a href="#method-i-mark_encryption_keys_as_deleted">#mark_encryption_keys_as_deleted</a>
102
+ <li ><a href="#method-i-nothing_to_log-3F">#nothing_to_log?</a>
103
+ <li ><a href="#method-i-primary_encryption_key">#primary_encryption_key</a>
104
+ </ul>
105
+ </div>
106
+
107
+ </div>
108
+ </nav>
109
+
110
+ <main role="main" aria-labelledby="module-LoggableActivity::Hooks">
111
+ <h1 id="module-LoggableActivity::Hooks" class="module">
112
+ module LoggableActivity::Hooks
113
+ </h1>
114
+
115
+ <section class="description">
116
+
117
+ <p>When included to a model, it provides the features for logging events regarding to the model. For this to work you have to update the configuration file ‘config/loggable_activity.yaml</p>
118
+
119
+ </section>
120
+
121
+ <section id="5Buntitled-5D" class="documentation-section">
122
+
123
+
124
+
125
+ <section class="attribute-method-details" class="method-section">
126
+ <header>
127
+ <h3>Attributes</h3>
128
+ </header>
129
+
130
+ <div id="attribute-i-disable_hooks" class="method-detail">
131
+ <div class="method-heading attribute-method-heading">
132
+ <span class="method-name">disable_hooks</span><span
133
+ class="attribute-access-type">[RW]</span>
134
+ </div>
135
+
136
+ <div class="method-description">
137
+ <p>The <a href="Hooks.html#attribute-i-disable_hooks"><code>disable_hooks</code></a> attribute is used to disable hooks when a model is created or updated by a parent model.</p>
138
+ </div>
139
+ </div>
140
+ </section>
141
+
142
+
143
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
144
+ <header>
145
+ <h3>Public Instance Methods</h3>
146
+ </header>
147
+
148
+ <div id="method-i-disable_hooks-21" class="method-detail ">
149
+ <div class="method-header">
150
+ <div class="method-heading">
151
+ <span class="method-name">disable_hooks!</span><span
152
+ class="method-args">()</span>
153
+ <span class="method-click-advice">click to toggle source</span>
154
+ </div>
155
+ </div>
156
+
157
+ <div class="method-description">
158
+
159
+
160
+ <div class="method-source-code" id="disable_hooks-21-source">
161
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 70</span>
162
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">disable_hooks!</span>
163
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">disable_hooks</span> = <span class="ruby-keyword">true</span>
164
+ <span class="ruby-keyword">end</span></pre>
165
+ </div>
166
+ </div>
167
+
168
+
169
+ </div>
170
+
171
+ <div id="method-i-log" class="method-detail ">
172
+ <div class="method-header">
173
+ <div class="method-heading">
174
+ <span class="method-name">log</span><span
175
+ class="method-args">(action, actor: nil, params: {})</span>
176
+ <span class="method-click-advice">click to toggle source</span>
177
+ </div>
178
+ </div>
179
+
180
+ <div class="method-description">
181
+ <p>Logs an activity with the specified action, actor, and params.</p>
182
+
183
+ <pre>@param action [Symbol] The action to log (:create, :update, :destroy, or custom).
184
+ @param actor [Object] The actor performing the action.
185
+ @param params [Hash] Additional parameters for the activity.</pre>
186
+
187
+ <div class="method-source-code" id="log-source">
188
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 43</span>
189
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log</span>(<span class="ruby-identifier">action</span>, <span class="ruby-value">actor:</span> <span class="ruby-keyword">nil</span>, <span class="ruby-value">params:</span> {})
190
+ <span class="ruby-ivar">@action</span> = <span class="ruby-identifier">action</span>
191
+ <span class="ruby-ivar">@actor</span> = <span class="ruby-identifier">actor</span> <span class="ruby-operator">||</span> <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-value">:current_actor</span>]
192
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@actor</span>.<span class="ruby-identifier">nil?</span>
193
+
194
+ <span class="ruby-ivar">@record</span> = <span class="ruby-keyword">self</span>
195
+ <span class="ruby-ivar">@params</span> = <span class="ruby-identifier">params</span>
196
+ <span class="ruby-ivar">@payloads</span> = []
197
+
198
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">action</span>
199
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:create</span>, <span class="ruby-value">:show</span>
200
+ <span class="ruby-identifier">log_activity</span>
201
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:destroy</span>
202
+ <span class="ruby-identifier">log_destroy</span>
203
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:update</span>
204
+ <span class="ruby-identifier">log_update</span>
205
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:login</span>
206
+ <span class="ruby-identifier">log_login</span>
207
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:logout</span>
208
+ <span class="ruby-identifier">log_logout</span>
209
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:sign_up</span>
210
+ <span class="ruby-identifier">log_sign_up</span>
211
+ <span class="ruby-keyword">else</span>
212
+ <span class="ruby-identifier">log_custom_activity</span>
213
+ <span class="ruby-keyword">end</span>
214
+ <span class="ruby-keyword">end</span></pre>
215
+ </div>
216
+ </div>
217
+
218
+
219
+ </div>
220
+
221
+ </section>
222
+
223
+ <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
224
+ <header>
225
+ <h3>Private Instance Methods</h3>
226
+ </header>
227
+
228
+ <div id="method-i-action_key" class="method-detail ">
229
+ <div class="method-header">
230
+ <div class="method-heading">
231
+ <span class="method-name">action_key</span><span
232
+ class="method-args">()</span>
233
+ <span class="method-click-advice">click to toggle source</span>
234
+ </div>
235
+ </div>
236
+
237
+ <div class="method-description">
238
+ <p>Returns the action key for the current action.</p>
239
+
240
+ <div class="method-source-code" id="action_key-source">
241
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 203</span>
242
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">action_key</span>
243
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">base_action</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;.#{@action}&quot;</span>
244
+ <span class="ruby-keyword">end</span></pre>
245
+ </div>
246
+ </div>
247
+
248
+
249
+ </div>
250
+
251
+ <div id="method-i-actor_secret_key" class="method-detail ">
252
+ <div class="method-header">
253
+ <div class="method-heading">
254
+ <span class="method-name">actor_secret_key</span><span
255
+ class="method-args">()</span>
256
+ <span class="method-click-advice">click to toggle source</span>
257
+ </div>
258
+ </div>
259
+
260
+ <div class="method-description">
261
+ <p>Returns the encryption key for the actor.</p>
262
+
263
+ <div class="method-source-code" id="actor_secret_key-source">
264
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 218</span>
265
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_secret_key</span>
266
+ <span class="ruby-identifier">encryption_key_for_record</span>(<span class="ruby-ivar">@actor</span>)&amp;.<span class="ruby-identifier">secret_key</span>
267
+ <span class="ruby-keyword">end</span></pre>
268
+ </div>
269
+ </div>
270
+
271
+
272
+ </div>
273
+
274
+ <div id="method-i-base_action" class="method-detail ">
275
+ <div class="method-header">
276
+ <div class="method-heading">
277
+ <span class="method-name">base_action</span><span
278
+ class="method-args">()</span>
279
+ <span class="method-click-advice">click to toggle source</span>
280
+ </div>
281
+ </div>
282
+
283
+ <div class="method-description">
284
+ <p>Convert the model name and name space in to ‘base_action’.</p>
285
+
286
+ <div class="method-source-code" id="base_action-source">
287
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 227</span>
288
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">base_action</span>
289
+ <span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&#39;::&#39;</span>, <span class="ruby-string">&#39;/&#39;</span>)
290
+ <span class="ruby-keyword">end</span></pre>
291
+ </div>
292
+ </div>
293
+
294
+
295
+ </div>
296
+
297
+ <div id="method-i-build_custom_payload" class="method-detail ">
298
+ <div class="method-header">
299
+ <div class="method-heading">
300
+ <span class="method-name">build_custom_payload</span><span
301
+ class="method-args">()</span>
302
+ <span class="method-click-advice">click to toggle source</span>
303
+ </div>
304
+ </div>
305
+
306
+ <div class="method-description">
307
+
308
+
309
+ <div class="method-source-code" id="build_custom_payload-source">
310
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 121</span>
311
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_custom_payload</span>
312
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Services</span><span class="ruby-operator">::</span><span class="ruby-constant">CustomPayloadsBuilder</span>
313
+ .<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@payloads</span>, <span class="ruby-ivar">@params</span>).<span class="ruby-identifier">build</span>
314
+ <span class="ruby-keyword">end</span></pre>
315
+ </div>
316
+ </div>
317
+
318
+
319
+ </div>
320
+
321
+ <div id="method-i-build_destroy_payload" class="method-detail ">
322
+ <div class="method-header">
323
+ <div class="method-heading">
324
+ <span class="method-name">build_destroy_payload</span><span
325
+ class="method-args">()</span>
326
+ <span class="method-click-advice">click to toggle source</span>
327
+ </div>
328
+ </div>
329
+
330
+ <div class="method-description">
331
+ <p>Builds destroy payloads for the current action.</p>
332
+
333
+ <div class="method-source-code" id="build_destroy_payload-source">
334
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 139</span>
335
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_destroy_payload</span>
336
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Services</span><span class="ruby-operator">::</span><span class="ruby-constant">DestroyPayloadsBuilder</span>
337
+ .<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@payloads</span>).<span class="ruby-identifier">build</span>
338
+ <span class="ruby-keyword">end</span></pre>
339
+ </div>
340
+ </div>
341
+
342
+
343
+ </div>
344
+
345
+ <div id="method-i-build_payloads" class="method-detail ">
346
+ <div class="method-header">
347
+ <div class="method-heading">
348
+ <span class="method-name">build_payloads</span><span
349
+ class="method-args">()</span>
350
+ <span class="method-click-advice">click to toggle source</span>
351
+ </div>
352
+ </div>
353
+
354
+ <div class="method-description">
355
+ <p>Builds payloads for the current action.</p>
356
+
357
+ <div class="method-source-code" id="build_payloads-source">
358
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 133</span>
359
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_payloads</span>
360
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Services</span><span class="ruby-operator">::</span><span class="ruby-constant">PayloadsBuilder</span>
361
+ .<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@payloads</span>).<span class="ruby-identifier">build</span>
362
+ <span class="ruby-keyword">end</span></pre>
363
+ </div>
364
+ </div>
365
+
366
+
367
+ </div>
368
+
369
+ <div id="method-i-build_update_payloads" class="method-detail ">
370
+ <div class="method-header">
371
+ <div class="method-heading">
372
+ <span class="method-name">build_update_payloads</span><span
373
+ class="method-args">()</span>
374
+ <span class="method-click-advice">click to toggle source</span>
375
+ </div>
376
+ </div>
377
+
378
+ <div class="method-description">
379
+ <p>Builds update payloads for the current action.</p>
380
+
381
+ <div class="method-source-code" id="build_update_payloads-source">
382
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 127</span>
383
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_update_payloads</span>
384
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Services</span><span class="ruby-operator">::</span><span class="ruby-constant">UpdatePayloadsBuilder</span>
385
+ .<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@payloads</span>).<span class="ruby-identifier">build</span>
386
+ <span class="ruby-keyword">end</span></pre>
387
+ </div>
388
+ </div>
389
+
390
+
391
+ </div>
392
+
393
+ <div id="method-i-create_activity" class="method-detail ">
394
+ <div class="method-header">
395
+ <div class="method-heading">
396
+ <span class="method-name">create_activity</span><span
397
+ class="method-args">(payloads)</span>
398
+ <span class="method-click-advice">click to toggle source</span>
399
+ </div>
400
+ </div>
401
+
402
+ <div class="method-description">
403
+ <p>Creates an activity with the specified payloads.</p>
404
+
405
+ <div class="method-source-code" id="create_activity-source">
406
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 92</span>
407
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">create_activity</span>(<span class="ruby-identifier">payloads</span>)
408
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">nothing_to_log?</span>(<span class="ruby-identifier">payloads</span>)
409
+
410
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>.<span class="ruby-identifier">create!</span>(
411
+ <span class="ruby-value">encrypted_actor_name:</span>,
412
+ <span class="ruby-value">action:</span> <span class="ruby-identifier">action_key</span>,
413
+ <span class="ruby-value">actor:</span> <span class="ruby-ivar">@actor</span>,
414
+ <span class="ruby-value">record:</span> <span class="ruby-keyword">self</span>,
415
+ <span class="ruby-value">payloads:</span>
416
+ )
417
+ <span class="ruby-keyword">end</span></pre>
418
+ </div>
419
+ </div>
420
+
421
+
422
+ </div>
423
+
424
+ <div id="method-i-encrypted_actor_name" class="method-detail ">
425
+ <div class="method-header">
426
+ <div class="method-heading">
427
+ <span class="method-name">encrypted_actor_name</span><span
428
+ class="method-args">()</span>
429
+ <span class="method-click-advice">click to toggle source</span>
430
+ </div>
431
+ </div>
432
+
433
+ <div class="method-description">
434
+ <p>Returns the encrypted name of the actor.</p>
435
+
436
+ <div class="method-source-code" id="encrypted_actor_name-source">
437
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 192</span>
438
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypted_actor_name</span>
439
+ <span class="ruby-identifier">name</span> = <span class="ruby-ivar">@actor</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">fetch_actor_name_from</span>)
440
+ <span class="ruby-operator">::</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">name</span>, <span class="ruby-identifier">actor_secret_key</span>)
441
+ <span class="ruby-keyword">end</span></pre>
442
+ </div>
443
+ </div>
444
+
445
+
446
+ </div>
447
+
448
+ <div id="method-i-encryption_key_for_record" class="method-detail ">
449
+ <div class="method-header">
450
+ <div class="method-heading">
451
+ <span class="method-name">encryption_key_for_record</span><span
452
+ class="method-args">(record = @record)</span>
453
+ <span class="method-click-advice">click to toggle source</span>
454
+ </div>
455
+ </div>
456
+
457
+ <div class="method-description">
458
+ <p>Returns the encryption key for the record.</p>
459
+
460
+ <div class="method-source-code" id="encryption_key_for_record-source">
461
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 213</span>
462
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encryption_key_for_record</span>(<span class="ruby-identifier">record</span> = <span class="ruby-ivar">@record</span>)
463
+ <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>)
464
+ <span class="ruby-keyword">end</span></pre>
465
+ </div>
466
+ </div>
467
+
468
+
469
+ </div>
470
+
471
+ <div id="method-i-fetch_actor_name_from" class="method-detail ">
472
+ <div class="method-header">
473
+ <div class="method-heading">
474
+ <span class="method-name">fetch_actor_name_from</span><span
475
+ class="method-args">()</span>
476
+ <span class="method-click-advice">click to toggle source</span>
477
+ </div>
478
+ </div>
479
+
480
+ <div class="method-description">
481
+ <p>Reads the field to feetch the record name from.</p>
482
+
483
+ <div class="method-source-code" id="fetch_actor_name_from-source">
484
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 198</span>
485
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">fetch_actor_name_from</span>
486
+ <span class="ruby-constant">LoggableActivity</span>.<span class="ruby-identifier">fetch_actor_name_from</span>
487
+ <span class="ruby-keyword">end</span></pre>
488
+ </div>
489
+ </div>
490
+
491
+
492
+ </div>
493
+
494
+ <div id="method-i-hooks_enabled-3F" class="method-detail ">
495
+ <div class="method-header">
496
+ <div class="method-heading">
497
+ <span class="method-name">hooks_enabled?</span><span
498
+ class="method-args">()</span>
499
+ <span class="method-click-advice">click to toggle source</span>
500
+ </div>
501
+ </div>
502
+
503
+ <div class="method-description">
504
+ <p><a href="Hooks.html"><code>Hooks</code></a> can disabled when a model is created or updated by a parrent model.</p>
505
+
506
+ <div class="method-source-code" id="hooks_enabled-3F-source">
507
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 158</span>
508
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">hooks_enabled?</span>
509
+ <span class="ruby-identifier">enabled</span> = <span class="ruby-identifier">disable_hooks</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">disable_hooks</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
510
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">disable_hooks</span> = <span class="ruby-keyword">false</span>
511
+ <span class="ruby-identifier">enabled</span>
512
+ <span class="ruby-keyword">end</span></pre>
513
+ </div>
514
+ </div>
515
+
516
+
517
+ </div>
518
+
519
+ <div id="method-i-log_activity" class="method-detail ">
520
+ <div class="method-header">
521
+ <div class="method-heading">
522
+ <span class="method-name">log_activity</span><span
523
+ class="method-args">()</span>
524
+ <span class="method-click-advice">click to toggle source</span>
525
+ </div>
526
+ </div>
527
+
528
+ <div class="method-description">
529
+ <p>Logs an activity for the current action.</p>
530
+
531
+ <div class="method-source-code" id="log_activity-source">
532
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 77</span>
533
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_activity</span>
534
+ <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_payloads</span>)
535
+ <span class="ruby-keyword">end</span></pre>
536
+ </div>
537
+ </div>
538
+
539
+
540
+ </div>
541
+
542
+ <div id="method-i-log_create_activity" class="method-detail ">
543
+ <div class="method-header">
544
+ <div class="method-heading">
545
+ <span class="method-name">log_create_activity</span><span
546
+ class="method-args">()</span>
547
+ <span class="method-click-advice">click to toggle source</span>
548
+ </div>
549
+ </div>
550
+
551
+ <div class="method-description">
552
+ <p>Logs a create activity automatically if configured.</p>
553
+
554
+ <div class="method-source-code" id="log_create_activity-source">
555
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 165</span>
556
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_create_activity</span>
557
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hooks_enabled?</span>
558
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">id</span>.<span class="ruby-identifier">nil?</span>
559
+
560
+ <span class="ruby-identifier">log</span>(<span class="ruby-value">:create</span>) <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">auto_log</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&#39;create&#39;</span>)
561
+ <span class="ruby-keyword">end</span></pre>
562
+ </div>
563
+ </div>
564
+
565
+
566
+ </div>
567
+
568
+ <div id="method-i-log_custom_activity" class="method-detail ">
569
+ <div class="method-header">
570
+ <div class="method-heading">
571
+ <span class="method-name">log_custom_activity</span><span
572
+ class="method-args">()</span>
573
+ <span class="method-click-advice">click to toggle source</span>
574
+ </div>
575
+ </div>
576
+
577
+ <div class="method-description">
578
+ <p>Logs a custom activity.</p>
579
+
580
+ <div class="method-source-code" id="log_custom_activity-source">
581
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 117</span>
582
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_custom_activity</span>
583
+ <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_custom_payload</span>)
584
+ <span class="ruby-keyword">end</span></pre>
585
+ </div>
586
+ </div>
587
+
588
+
589
+ </div>
590
+
591
+ <div id="method-i-log_destroy" class="method-detail ">
592
+ <div class="method-header">
593
+ <div class="method-heading">
594
+ <span class="method-name">log_destroy</span><span
595
+ class="method-args">()</span>
596
+ <span class="method-click-advice">click to toggle source</span>
597
+ </div>
598
+ </div>
599
+
600
+ <div class="method-description">
601
+ <p>Logs an activity for the destroy action.</p>
602
+
603
+ <div class="method-source-code" id="log_destroy-source">
604
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 87</span>
605
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_destroy</span>
606
+ <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_destroy_payload</span>)
607
+ <span class="ruby-keyword">end</span></pre>
608
+ </div>
609
+ </div>
610
+
611
+
612
+ </div>
613
+
614
+ <div id="method-i-log_destroy_activity" class="method-detail ">
615
+ <div class="method-header">
616
+ <div class="method-heading">
617
+ <span class="method-name">log_destroy_activity</span><span
618
+ class="method-args">()</span>
619
+ <span class="method-click-advice">click to toggle source</span>
620
+ </div>
621
+ </div>
622
+
623
+ <div class="method-description">
624
+ <p>Logs a destroy activity automatically if configured.</p>
625
+
626
+ <div class="method-source-code" id="log_destroy_activity-source">
627
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 173</span>
628
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_destroy_activity</span>
629
+ <span class="ruby-identifier">mark_encryption_keys_as_deleted</span>
630
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hooks_enabled?</span>
631
+
632
+ <span class="ruby-identifier">log</span>(<span class="ruby-value">:destroy</span>) <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">auto_log</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&#39;destroy&#39;</span>)
633
+ <span class="ruby-keyword">end</span></pre>
634
+ </div>
635
+ </div>
636
+
637
+
638
+ </div>
639
+
640
+ <div id="method-i-log_login" class="method-detail ">
641
+ <div class="method-header">
642
+ <div class="method-heading">
643
+ <span class="method-name">log_login</span><span
644
+ class="method-args">()</span>
645
+ <span class="method-click-advice">click to toggle source</span>
646
+ </div>
647
+ </div>
648
+
649
+ <div class="method-description">
650
+
651
+
652
+ <div class="method-source-code" id="log_login-source">
653
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 104</span>
654
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_login</span>
655
+ <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_payloads</span>)
656
+ <span class="ruby-keyword">end</span></pre>
657
+ </div>
658
+ </div>
659
+
660
+
661
+ </div>
662
+
663
+ <div id="method-i-log_logout" class="method-detail ">
664
+ <div class="method-header">
665
+ <div class="method-heading">
666
+ <span class="method-name">log_logout</span><span
667
+ class="method-args">()</span>
668
+ <span class="method-click-advice">click to toggle source</span>
669
+ </div>
670
+ </div>
671
+
672
+ <div class="method-description">
673
+
674
+
675
+ <div class="method-source-code" id="log_logout-source">
676
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 108</span>
677
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_logout</span>
678
+ <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_payloads</span>)
679
+ <span class="ruby-keyword">end</span></pre>
680
+ </div>
681
+ </div>
682
+
683
+
684
+ </div>
685
+
686
+ <div id="method-i-log_sign_up" class="method-detail ">
687
+ <div class="method-header">
688
+ <div class="method-heading">
689
+ <span class="method-name">log_sign_up</span><span
690
+ class="method-args">()</span>
691
+ <span class="method-click-advice">click to toggle source</span>
692
+ </div>
693
+ </div>
694
+
695
+ <div class="method-description">
696
+
697
+
698
+ <div class="method-source-code" id="log_sign_up-source">
699
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 112</span>
700
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_sign_up</span>
701
+ <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_payloads</span>)
702
+ <span class="ruby-keyword">end</span></pre>
703
+ </div>
704
+ </div>
705
+
706
+
707
+ </div>
708
+
709
+ <div id="method-i-log_update" class="method-detail ">
710
+ <div class="method-header">
711
+ <div class="method-heading">
712
+ <span class="method-name">log_update</span><span
713
+ class="method-args">()</span>
714
+ <span class="method-click-advice">click to toggle source</span>
715
+ </div>
716
+ </div>
717
+
718
+ <div class="method-description">
719
+ <p>Logs an activity for the update action.</p>
720
+
721
+ <div class="method-source-code" id="log_update-source">
722
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 82</span>
723
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_update</span>
724
+ <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_update_payloads</span>)
725
+ <span class="ruby-keyword">end</span></pre>
726
+ </div>
727
+ </div>
728
+
729
+
730
+ </div>
731
+
732
+ <div id="method-i-log_update_activity" class="method-detail ">
733
+ <div class="method-header">
734
+ <div class="method-heading">
735
+ <span class="method-name">log_update_activity</span><span
736
+ class="method-args">()</span>
737
+ <span class="method-click-advice">click to toggle source</span>
738
+ </div>
739
+ </div>
740
+
741
+ <div class="method-description">
742
+ <p>Logs an update activity automatically if configured.</p>
743
+
744
+ <div class="method-source-code" id="log_update_activity-source">
745
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 150</span>
746
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_update_activity</span>
747
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hooks_enabled?</span>
748
+
749
+ <span class="ruby-identifier">log</span>(<span class="ruby-value">:update</span>) <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">auto_log</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&#39;update&#39;</span>)
750
+ <span class="ruby-keyword">end</span></pre>
751
+ </div>
752
+ </div>
753
+
754
+
755
+ </div>
756
+
757
+ <div id="method-i-mark_encryption_keys_as_deleted" class="method-detail ">
758
+ <div class="method-header">
759
+ <div class="method-heading">
760
+ <span class="method-name">mark_encryption_keys_as_deleted</span><span
761
+ class="method-args">()</span>
762
+ <span class="method-click-advice">click to toggle source</span>
763
+ </div>
764
+ </div>
765
+
766
+ <div class="method-description">
767
+ <p>Fullfill the needs of the data owners. Mostly this will be performend a few one, from 1 to 5. Enumeration for different payload relation types</p>
768
+
769
+ <div class="method-source-code" id="mark_encryption_keys_as_deleted-source">
770
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 183</span>
771
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">mark_encryption_keys_as_deleted</span>
772
+ <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-keyword">self</span>)&amp;.<span class="ruby-identifier">mark_as_deleted!</span>
773
+ <span class="ruby-comment"># data_owners = ::LoggableActivity::DataOwner.where(record: self)</span>
774
+ <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">DataOwner</span>
775
+ .<span class="ruby-identifier">where</span>(<span class="ruby-value">record:</span> <span class="ruby-keyword">self</span>)
776
+ .<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:mark_as_deleted!</span>)
777
+ <span class="ruby-keyword">end</span></pre>
778
+ </div>
779
+ </div>
780
+
781
+
782
+ </div>
783
+
784
+ <div id="method-i-nothing_to_log-3F" class="method-detail ">
785
+ <div class="method-header">
786
+ <div class="method-heading">
787
+ <span class="method-name">nothing_to_log?</span><span
788
+ class="method-args">(_payloads)</span>
789
+ <span class="method-click-advice">click to toggle source</span>
790
+ </div>
791
+ </div>
792
+
793
+ <div class="method-description">
794
+ <p>Returns true if there are no payloads to log.</p>
795
+
796
+ <div class="method-source-code" id="nothing_to_log-3F-source">
797
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 145</span>
798
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">nothing_to_log?</span>(<span class="ruby-identifier">_payloads</span>)
799
+ <span class="ruby-ivar">@payloads</span>.<span class="ruby-identifier">empty?</span>
800
+ <span class="ruby-keyword">end</span></pre>
801
+ </div>
802
+ </div>
803
+
804
+
805
+ </div>
806
+
807
+ <div id="method-i-primary_encryption_key" class="method-detail ">
808
+ <div class="method-header">
809
+ <div class="method-heading">
810
+ <span class="method-name">primary_encryption_key</span><span
811
+ class="method-args">()</span>
812
+ <span class="method-click-advice">click to toggle source</span>
813
+ </div>
814
+ </div>
815
+
816
+ <div class="method-description">
817
+ <p>Returns the primary encryption key for the activity</p>
818
+
819
+ <div class="method-source-code" id="primary_encryption_key-source">
820
+ <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 208</span>
821
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_encryption_key</span>
822
+ <span class="ruby-identifier">encryption_key_for_record</span>
823
+ <span class="ruby-keyword">end</span></pre>
824
+ </div>
825
+ </div>
826
+
827
+
828
+ </div>
829
+
830
+ </section>
831
+
832
+ </section>
833
+ </main>
834
+
835
+
836
+ <footer id="validator-badges" role="contentinfo">
837
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
838
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.7.0.
839
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
840
+ </footer>
841
+