loggable_activity 0.2.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +29 -42
  3. data/.vscode/commands.json +2 -2
  4. data/.vscode/terminals.json +8 -8
  5. data/CHEAT_SHEET.md +31 -0
  6. data/MIT-LICENSE +21 -0
  7. data/README.md +31 -45
  8. data/Rakefile +6 -4
  9. data/app/assets/config/loggable_activity_manifest.js +4 -0
  10. data/app/assets/javascripts/loggable_activity/application.js +2 -0
  11. data/app/assets/stylesheets/loggable_activity/application.scss +20 -0
  12. data/app/controllers/concerns/.keep +0 -0
  13. data/app/controllers/loggable_activity/activities_controller.rb +12 -0
  14. data/app/controllers/loggable_activity/application_controller.rb +6 -0
  15. data/app/helpers/loggable_activity/activities_helper.rb +17 -0
  16. data/app/helpers/loggable_activity/application_helper.rb +6 -0
  17. data/app/jobs/loggable_activity/application_job.rb +6 -0
  18. data/app/mailers/loggable_activity/application_mailer.rb +8 -0
  19. data/app/models/loggable_activity/application_record.rb +7 -0
  20. data/app/views/kaminari/kaminari-turbo-bootstrap/_first_page.html.erb +14 -0
  21. data/app/views/kaminari/kaminari-turbo-bootstrap/_gap.html.erb +8 -0
  22. data/app/views/kaminari/kaminari-turbo-bootstrap/_last_page.html.erb +13 -0
  23. data/app/views/kaminari/kaminari-turbo-bootstrap/_next_page.html.erb +13 -0
  24. data/app/views/kaminari/kaminari-turbo-bootstrap/_page.html.erb +14 -0
  25. data/app/views/kaminari/kaminari-turbo-bootstrap/_paginator.html.erb +27 -0
  26. data/app/views/kaminari/kaminari-turbo-bootstrap/_prev_page.html.erb +14 -0
  27. data/app/views/layouts/loggable_activity/application.html.erb +19 -0
  28. data/app/views/loggable_activity/activities/_activities.html.erb +56 -0
  29. data/app/views/loggable_activity/activities/index.html.erb +7 -0
  30. data/app/views/loggable_activity/activities/show.html.erb +2 -0
  31. data/config/initializers/kaminari_config.rb +14 -0
  32. data/config/routes.rb +7 -0
  33. data/{lib/generators/loggable_activity/templates/create_loggable_activities.rb → db/migrate/20240702092648_create_loggable_activity_tables.rb} +18 -10
  34. data/git-org/HEAD +1 -0
  35. data/git-org/config +7 -0
  36. data/git-org/description +1 -0
  37. data/git-org/hooks/applypatch-msg.sample +15 -0
  38. data/git-org/hooks/commit-msg.sample +24 -0
  39. data/git-org/hooks/fsmonitor-watchman.sample +174 -0
  40. data/git-org/hooks/post-update.sample +8 -0
  41. data/git-org/hooks/pre-applypatch.sample +14 -0
  42. data/git-org/hooks/pre-commit.sample +49 -0
  43. data/git-org/hooks/pre-merge-commit.sample +13 -0
  44. data/git-org/hooks/pre-push.sample +53 -0
  45. data/git-org/hooks/pre-rebase.sample +169 -0
  46. data/git-org/hooks/pre-receive.sample +24 -0
  47. data/git-org/hooks/prepare-commit-msg.sample +42 -0
  48. data/git-org/hooks/push-to-checkout.sample +78 -0
  49. data/git-org/hooks/update.sample +128 -0
  50. data/git-org/info/exclude +6 -0
  51. data/lib/loggable_activity/activity.rb +3 -3
  52. data/lib/{schemas → loggable_activity}/config_schema.json +3 -3
  53. data/lib/loggable_activity/configuration.rb +51 -75
  54. data/lib/loggable_activity/data_owner.rb +0 -1
  55. data/lib/loggable_activity/encryption.rb +16 -7
  56. data/lib/loggable_activity/encryption_key.rb +4 -7
  57. data/lib/loggable_activity/engine.rb +27 -0
  58. data/lib/loggable_activity/error.rb +0 -10
  59. data/lib/loggable_activity/hooks.rb +10 -5
  60. data/lib/loggable_activity/payload.rb +8 -11
  61. data/lib/loggable_activity/sanitizer.rb +6 -2
  62. data/lib/loggable_activity/services/base_payloads_builder.rb +14 -5
  63. data/lib/loggable_activity/services/destroy_payloads_builder.rb +2 -1
  64. data/lib/loggable_activity/services/payloads_builder.rb +9 -2
  65. data/lib/loggable_activity/services/update_payloads_builder.rb +30 -2
  66. data/lib/loggable_activity/version.rb +1 -1
  67. data/lib/loggable_activity.rb +51 -14
  68. data/lib/tasks/loggable_activity_tasks.rake +6 -0
  69. metadata +129 -117
  70. data/.document +0 -1
  71. data/.nojekyll +0 -1
  72. data/.rspec +0 -3
  73. data/CONSIDERTIONS.md +0 -129
  74. data/GETTING-STARTED.md +0 -119
  75. data/LICENSE.txt +0 -21
  76. data/PAYLOAD_EXAMPLE.md +0 -63
  77. data/ROADMAP.md +0 -23
  78. data/docs/LoggableActivity/Activity.html +0 -555
  79. data/docs/LoggableActivity/Configuration.html +0 -330
  80. data/docs/LoggableActivity/ConfigurationError.html +0 -148
  81. data/docs/LoggableActivity/DataOwner.html +0 -138
  82. data/docs/LoggableActivity/Encryption.html +0 -234
  83. data/docs/LoggableActivity/EncryptionError.html +0 -145
  84. data/docs/LoggableActivity/EncryptionKey.html +0 -351
  85. data/docs/LoggableActivity/Error.html +0 -145
  86. data/docs/LoggableActivity/Hooks.html +0 -759
  87. data/docs/LoggableActivity/Payload.html +0 -432
  88. data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +0 -442
  89. data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +0 -395
  90. data/docs/LoggableActivity/Services/PayloadsBuilder.html +0 -342
  91. data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +0 -490
  92. data/docs/LoggableActivity/Services.html +0 -93
  93. data/docs/LoggableActivity.html +0 -102
  94. data/docs/created.rid +0 -14
  95. data/docs/css/fonts.css +0 -167
  96. data/docs/css/rdoc.css +0 -687
  97. data/docs/fonts/Lato-Light.ttf +0 -0
  98. data/docs/fonts/Lato-LightItalic.ttf +0 -0
  99. data/docs/fonts/Lato-Regular.ttf +0 -0
  100. data/docs/fonts/Lato-RegularItalic.ttf +0 -0
  101. data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
  102. data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
  103. data/docs/images/add.png +0 -0
  104. data/docs/images/arrow_up.png +0 -0
  105. data/docs/images/brick.png +0 -0
  106. data/docs/images/brick_link.png +0 -0
  107. data/docs/images/bug.png +0 -0
  108. data/docs/images/bullet_black.png +0 -0
  109. data/docs/images/bullet_toggle_minus.png +0 -0
  110. data/docs/images/bullet_toggle_plus.png +0 -0
  111. data/docs/images/date.png +0 -0
  112. data/docs/images/delete.png +0 -0
  113. data/docs/images/find.png +0 -0
  114. data/docs/images/loadingAnimation.gif +0 -0
  115. data/docs/images/macFFBgHack.png +0 -0
  116. data/docs/images/package.png +0 -0
  117. data/docs/images/page_green.png +0 -0
  118. data/docs/images/page_white_text.png +0 -0
  119. data/docs/images/page_white_width.png +0 -0
  120. data/docs/images/plugin.png +0 -0
  121. data/docs/images/ruby.png +0 -0
  122. data/docs/images/tag_blue.png +0 -0
  123. data/docs/images/tag_green.png +0 -0
  124. data/docs/images/transparent.png +0 -0
  125. data/docs/images/wrench.png +0 -0
  126. data/docs/images/wrench_orange.png +0 -0
  127. data/docs/images/zoom.png +0 -0
  128. data/docs/index.html +0 -99
  129. data/docs/js/darkfish.js +0 -97
  130. data/docs/js/navigation.js +0 -105
  131. data/docs/js/navigation.js.gz +0 -0
  132. data/docs/js/search.js +0 -110
  133. data/docs/js/search_index.js +0 -1
  134. data/docs/js/search_index.js.gz +0 -0
  135. data/docs/js/searcher.js +0 -229
  136. data/docs/js/searcher.js.gz +0 -0
  137. data/docs/table_of_contents.html +0 -617
  138. data/help/loggable_activity_help.txt +0 -19
  139. data/lib/generators/.DS_Store +0 -0
  140. data/lib/generators/loggable_activity/.DS_Store +0 -0
  141. data/lib/generators/loggable_activity/install_generator.rb +0 -109
  142. data/lib/generators/loggable_activity/templates/.DS_Store +0 -0
  143. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +0 -30
  144. data/lib/generators/loggable_activity/templates/config/locales/loggable_activity.en.yml +0 -36
  145. data/lib/generators/loggable_activity/templates/config/loggable_activity.yaml +0 -29
  146. data/lib/generators/loggable_activity/templates/loggable_activity.en.yaml +0 -36
  147. data/pkg/loggable_activity-0.1.35.gem +0 -0
  148. data/sig/loggable_activity.rbs +0 -4
  149. /data/{.rspec_status → app/assets/images/loggable_activity/.keep} +0 -0
  150. /data/lib/{generators/loggable_activity/templates → loggable_activity/concerns}/current_user.rb +0 -0
@@ -1,759 +0,0 @@
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__name_field">#actor__name_field</a>
79
- <li ><a href="#method-i-actor_secret_key">#actor_secret_key</a>
80
- <li ><a href="#method-i-base_action">#base_action</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-current_user_model-3F">#current_user_model?</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_current_user_name_from">#fetch_current_user_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_update">#log_update</a>
97
- <li ><a href="#method-i-log_update_activity">#log_update_activity</a>
98
- <li ><a href="#method-i-mark_encryption_keys_as_deleted">#mark_encryption_keys_as_deleted</a>
99
- <li ><a href="#method-i-nothing_to_log-3F">#nothing_to_log?</a>
100
- <li ><a href="#method-i-primary_encryption_key">#primary_encryption_key</a>
101
- </ul>
102
- </div>
103
-
104
- </div>
105
- </nav>
106
-
107
- <main role="main" aria-labelledby="module-LoggableActivity::Hooks">
108
- <h1 id="module-LoggableActivity::Hooks" class="module">
109
- module LoggableActivity::Hooks
110
- </h1>
111
-
112
- <section class="description">
113
-
114
- <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>
115
-
116
- </section>
117
-
118
- <section id="5Buntitled-5D" class="documentation-section">
119
-
120
-
121
-
122
- <section class="attribute-method-details" class="method-section">
123
- <header>
124
- <h3>Attributes</h3>
125
- </header>
126
-
127
- <div id="attribute-i-disable_hooks" class="method-detail">
128
- <div class="method-heading attribute-method-heading">
129
- <span class="method-name">disable_hooks</span><span
130
- class="attribute-access-type">[RW]</span>
131
- </div>
132
-
133
- <div class="method-description">
134
- <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>
135
- </div>
136
- </div>
137
- </section>
138
-
139
-
140
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
141
- <header>
142
- <h3>Public Instance Methods</h3>
143
- </header>
144
-
145
- <div id="method-i-log" class="method-detail ">
146
- <div class="method-header">
147
- <div class="method-heading">
148
- <span class="method-name">log</span><span
149
- class="method-args">(action, actor: nil, params: {})</span>
150
- <span class="method-click-advice">click to toggle source</span>
151
- </div>
152
- </div>
153
-
154
- <div class="method-description">
155
- <p>Logs an activity with the specified action, actor, and params.</p>
156
-
157
- <pre>@param action [Symbol] The action to log (:create, :update, :destroy, or custom).
158
- @param actor [Object] The actor performing the action.
159
- @param params [Hash] Additional parameters for the activity.</pre>
160
-
161
- <div class="method-source-code" id="log-source">
162
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 42</span>
163
- <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> {})
164
- <span class="ruby-ivar">@action</span> = <span class="ruby-identifier">action</span>
165
- <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_user</span>]
166
- <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>
167
-
168
- <span class="ruby-ivar">@record</span> = <span class="ruby-keyword">self</span>
169
- <span class="ruby-ivar">@params</span> = <span class="ruby-identifier">params</span>
170
- <span class="ruby-ivar">@payloads</span> = []
171
-
172
- <span class="ruby-keyword">case</span> <span class="ruby-identifier">action</span>
173
- <span class="ruby-keyword">when</span> <span class="ruby-value">:create</span>, <span class="ruby-value">:show</span>
174
- <span class="ruby-identifier">log_activity</span>
175
- <span class="ruby-keyword">when</span> <span class="ruby-value">:destroy</span>
176
- <span class="ruby-identifier">log_destroy</span>
177
- <span class="ruby-keyword">when</span> <span class="ruby-value">:update</span>
178
- <span class="ruby-identifier">log_update</span>
179
- <span class="ruby-keyword">else</span>
180
- <span class="ruby-identifier">log_custom_activity</span>(<span class="ruby-identifier">action</span>)
181
- <span class="ruby-keyword">end</span>
182
- <span class="ruby-keyword">end</span></pre>
183
- </div>
184
- </div>
185
-
186
-
187
- </div>
188
-
189
- </section>
190
-
191
- <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
192
- <header>
193
- <h3>Private Instance Methods</h3>
194
- </header>
195
-
196
- <div id="method-i-action_key" class="method-detail ">
197
- <div class="method-header">
198
- <div class="method-heading">
199
- <span class="method-name">action_key</span><span
200
- class="method-args">()</span>
201
- <span class="method-click-advice">click to toggle source</span>
202
- </div>
203
- </div>
204
-
205
- <div class="method-description">
206
- <p>Returns the action key for the current action.</p>
207
-
208
- <div class="method-source-code" id="action_key-source">
209
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 172</span>
210
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">action_key</span>
211
- <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>
212
- <span class="ruby-keyword">end</span></pre>
213
- </div>
214
- </div>
215
-
216
-
217
- </div>
218
-
219
- <div id="method-i-actor__name_field" class="method-detail ">
220
- <div class="method-header">
221
- <div class="method-heading">
222
- <span class="method-name">actor__name_field</span><span
223
- class="method-args">()</span>
224
- <span class="method-click-advice">click to toggle source</span>
225
- </div>
226
- </div>
227
-
228
- <div class="method-description">
229
- <p>Returns the display name of the actor.</p>
230
-
231
- <div class="method-source-code" id="actor__name_field-source">
232
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 192</span>
233
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor__name_field</span>
234
- <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">application</span>.<span class="ruby-identifier">config</span>.<span class="ruby-identifier">loggable_activity</span>.<span class="ruby-identifier">actor_display_name</span> <span class="ruby-operator">||</span> <span class="ruby-node">&quot;id: #{@actor.id}, class: #{@actor.class.name}&quot;</span>
235
- <span class="ruby-keyword">end</span></pre>
236
- </div>
237
- </div>
238
-
239
-
240
- </div>
241
-
242
- <div id="method-i-actor_secret_key" class="method-detail ">
243
- <div class="method-header">
244
- <div class="method-heading">
245
- <span class="method-name">actor_secret_key</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>Returns the encryption key for the actor.</p>
253
-
254
- <div class="method-source-code" id="actor_secret_key-source">
255
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 187</span>
256
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_secret_key</span>
257
- <span class="ruby-identifier">encryption_key_for_record</span>(<span class="ruby-ivar">@actor</span>)&amp;.<span class="ruby-identifier">secret_key</span>
258
- <span class="ruby-keyword">end</span></pre>
259
- </div>
260
- </div>
261
-
262
-
263
- </div>
264
-
265
- <div id="method-i-base_action" class="method-detail ">
266
- <div class="method-header">
267
- <div class="method-heading">
268
- <span class="method-name">base_action</span><span
269
- class="method-args">()</span>
270
- <span class="method-click-advice">click to toggle source</span>
271
- </div>
272
- </div>
273
-
274
- <div class="method-description">
275
- <p>Convert the model name and name space in to ‘base_action’.</p>
276
-
277
- <div class="method-source-code" id="base_action-source">
278
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 206</span>
279
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">base_action</span>
280
- <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>)
281
- <span class="ruby-keyword">end</span></pre>
282
- </div>
283
- </div>
284
-
285
-
286
- </div>
287
-
288
- <div id="method-i-build_destroy_payload" class="method-detail ">
289
- <div class="method-header">
290
- <div class="method-heading">
291
- <span class="method-name">build_destroy_payload</span><span
292
- class="method-args">()</span>
293
- <span class="method-click-advice">click to toggle source</span>
294
- </div>
295
- </div>
296
-
297
- <div class="method-description">
298
- <p>Builds destroy payloads for the current action.</p>
299
-
300
- <div class="method-source-code" id="build_destroy_payload-source">
301
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 106</span>
302
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_destroy_payload</span>
303
- <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>
304
- .<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@payloads</span>).<span class="ruby-identifier">build</span>
305
- <span class="ruby-keyword">end</span></pre>
306
- </div>
307
- </div>
308
-
309
-
310
- </div>
311
-
312
- <div id="method-i-build_payloads" class="method-detail ">
313
- <div class="method-header">
314
- <div class="method-heading">
315
- <span class="method-name">build_payloads</span><span
316
- class="method-args">()</span>
317
- <span class="method-click-advice">click to toggle source</span>
318
- </div>
319
- </div>
320
-
321
- <div class="method-description">
322
- <p>Builds payloads for the current action.</p>
323
-
324
- <div class="method-source-code" id="build_payloads-source">
325
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 100</span>
326
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_payloads</span>
327
- <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>
328
- .<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@payloads</span>).<span class="ruby-identifier">build</span>
329
- <span class="ruby-keyword">end</span></pre>
330
- </div>
331
- </div>
332
-
333
-
334
- </div>
335
-
336
- <div id="method-i-build_update_payloads" class="method-detail ">
337
- <div class="method-header">
338
- <div class="method-heading">
339
- <span class="method-name">build_update_payloads</span><span
340
- class="method-args">()</span>
341
- <span class="method-click-advice">click to toggle source</span>
342
- </div>
343
- </div>
344
-
345
- <div class="method-description">
346
- <p>Builds update payloads for the current action.</p>
347
-
348
- <div class="method-source-code" id="build_update_payloads-source">
349
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 94</span>
350
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_update_payloads</span>
351
- <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>
352
- .<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@payloads</span>).<span class="ruby-identifier">build</span>
353
- <span class="ruby-keyword">end</span></pre>
354
- </div>
355
- </div>
356
-
357
-
358
- </div>
359
-
360
- <div id="method-i-create_activity" class="method-detail ">
361
- <div class="method-header">
362
- <div class="method-heading">
363
- <span class="method-name">create_activity</span><span
364
- class="method-args">(payloads)</span>
365
- <span class="method-click-advice">click to toggle source</span>
366
- </div>
367
- </div>
368
-
369
- <div class="method-description">
370
- <p>Creates an activity with the specified payloads.</p>
371
-
372
- <div class="method-source-code" id="create_activity-source">
373
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 81</span>
374
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">create_activity</span>(<span class="ruby-identifier">payloads</span>)
375
- <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>)
376
-
377
- <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>(
378
- <span class="ruby-value">encrypted_actor_name:</span>,
379
- <span class="ruby-value">action:</span> <span class="ruby-identifier">action_key</span>,
380
- <span class="ruby-value">actor:</span> <span class="ruby-ivar">@actor</span>,
381
- <span class="ruby-value">record:</span> <span class="ruby-keyword">self</span>,
382
- <span class="ruby-value">payloads:</span>
383
- )
384
- <span class="ruby-keyword">end</span></pre>
385
- </div>
386
- </div>
387
-
388
-
389
- </div>
390
-
391
- <div id="method-i-current_user_model-3F" class="method-detail ">
392
- <div class="method-header">
393
- <div class="method-heading">
394
- <span class="method-name">current_user_model?</span><span
395
- class="method-args">()</span>
396
- <span class="method-click-advice">click to toggle source</span>
397
- </div>
398
- </div>
399
-
400
- <div class="method-description">
401
- <p>Returns the model name of the current user.</p>
402
-
403
- <div class="method-source-code" id="current_user_model-3F-source">
404
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 197</span>
405
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">current_user_model?</span>
406
- <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">application</span>.<span class="ruby-identifier">config</span>.<span class="ruby-identifier">loggable_activity</span>.<span class="ruby-identifier">current_user_model_name</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>
407
- <span class="ruby-keyword">end</span></pre>
408
- </div>
409
- </div>
410
-
411
-
412
- </div>
413
-
414
- <div id="method-i-encrypted_actor_name" class="method-detail ">
415
- <div class="method-header">
416
- <div class="method-heading">
417
- <span class="method-name">encrypted_actor_name</span><span
418
- class="method-args">()</span>
419
- <span class="method-click-advice">click to toggle source</span>
420
- </div>
421
- </div>
422
-
423
- <div class="method-description">
424
- <p>Returns the encrypted name of the actor.</p>
425
-
426
- <div class="method-source-code" id="encrypted_actor_name-source">
427
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 161</span>
428
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypted_actor_name</span>
429
- <span class="ruby-identifier">name</span> = <span class="ruby-ivar">@actor</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">fetch_current_user_name_from</span>)
430
- <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>)
431
- <span class="ruby-keyword">end</span></pre>
432
- </div>
433
- </div>
434
-
435
-
436
- </div>
437
-
438
- <div id="method-i-encryption_key_for_record" class="method-detail ">
439
- <div class="method-header">
440
- <div class="method-heading">
441
- <span class="method-name">encryption_key_for_record</span><span
442
- class="method-args">(record = @record)</span>
443
- <span class="method-click-advice">click to toggle source</span>
444
- </div>
445
- </div>
446
-
447
- <div class="method-description">
448
- <p>Returns the encryption key for the record.</p>
449
-
450
- <div class="method-source-code" id="encryption_key_for_record-source">
451
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 182</span>
452
- <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>)
453
- <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>)
454
- <span class="ruby-keyword">end</span></pre>
455
- </div>
456
- </div>
457
-
458
-
459
- </div>
460
-
461
- <div id="method-i-fetch_current_user_name_from" class="method-detail ">
462
- <div class="method-header">
463
- <div class="method-heading">
464
- <span class="method-name">fetch_current_user_name_from</span><span
465
- class="method-args">()</span>
466
- <span class="method-click-advice">click to toggle source</span>
467
- </div>
468
- </div>
469
-
470
- <div class="method-description">
471
- <p>Reads the field to feetch the record name from.</p>
472
-
473
- <div class="method-source-code" id="fetch_current_user_name_from-source">
474
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 167</span>
475
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">fetch_current_user_name_from</span>
476
- <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">fetch_current_user_name_from</span>
477
- <span class="ruby-keyword">end</span></pre>
478
- </div>
479
- </div>
480
-
481
-
482
- </div>
483
-
484
- <div id="method-i-hooks_enabled-3F" class="method-detail ">
485
- <div class="method-header">
486
- <div class="method-heading">
487
- <span class="method-name">hooks_enabled?</span><span
488
- class="method-args">()</span>
489
- <span class="method-click-advice">click to toggle source</span>
490
- </div>
491
- </div>
492
-
493
- <div class="method-description">
494
- <p><a href="Hooks.html"><code>Hooks</code></a> can disabled when a model is created or updated by a parrent model.</p>
495
-
496
- <div class="method-source-code" id="hooks_enabled-3F-source">
497
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 128</span>
498
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">hooks_enabled?</span>
499
- <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>
500
- <span class="ruby-keyword">self</span>.<span class="ruby-identifier">disable_hooks</span> = <span class="ruby-keyword">false</span>
501
- <span class="ruby-identifier">enabled</span>
502
- <span class="ruby-keyword">end</span></pre>
503
- </div>
504
- </div>
505
-
506
-
507
- </div>
508
-
509
- <div id="method-i-log_activity" class="method-detail ">
510
- <div class="method-header">
511
- <div class="method-heading">
512
- <span class="method-name">log_activity</span><span
513
- class="method-args">()</span>
514
- <span class="method-click-advice">click to toggle source</span>
515
- </div>
516
- </div>
517
-
518
- <div class="method-description">
519
- <p>Logs an activity for the current action.</p>
520
-
521
- <div class="method-source-code" id="log_activity-source">
522
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 66</span>
523
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_activity</span>
524
- <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_payloads</span>)
525
- <span class="ruby-keyword">end</span></pre>
526
- </div>
527
- </div>
528
-
529
-
530
- </div>
531
-
532
- <div id="method-i-log_create_activity" class="method-detail ">
533
- <div class="method-header">
534
- <div class="method-heading">
535
- <span class="method-name">log_create_activity</span><span
536
- class="method-args">()</span>
537
- <span class="method-click-advice">click to toggle source</span>
538
- </div>
539
- </div>
540
-
541
- <div class="method-description">
542
- <p>Logs a create activity automatically if configured.</p>
543
-
544
- <div class="method-source-code" id="log_create_activity-source">
545
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 135</span>
546
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_create_activity</span>
547
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hooks_enabled?</span>
548
-
549
- <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>)
550
- <span class="ruby-keyword">end</span></pre>
551
- </div>
552
- </div>
553
-
554
-
555
- </div>
556
-
557
- <div id="method-i-log_custom_activity" class="method-detail ">
558
- <div class="method-header">
559
- <div class="method-heading">
560
- <span class="method-name">log_custom_activity</span><span
561
- class="method-args">(activity)</span>
562
- <span class="method-click-advice">click to toggle source</span>
563
- </div>
564
- </div>
565
-
566
- <div class="method-description">
567
- <p>Logs a custom activity.</p>
568
-
569
- <div class="method-source-code" id="log_custom_activity-source">
570
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 117</span>
571
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_custom_activity</span>(<span class="ruby-identifier">activity</span>); <span class="ruby-keyword">end</span></pre>
572
- </div>
573
- </div>
574
-
575
-
576
- </div>
577
-
578
- <div id="method-i-log_destroy" class="method-detail ">
579
- <div class="method-header">
580
- <div class="method-heading">
581
- <span class="method-name">log_destroy</span><span
582
- class="method-args">()</span>
583
- <span class="method-click-advice">click to toggle source</span>
584
- </div>
585
- </div>
586
-
587
- <div class="method-description">
588
- <p>Logs an activity for the destroy action.</p>
589
-
590
- <div class="method-source-code" id="log_destroy-source">
591
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 76</span>
592
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_destroy</span>
593
- <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_destroy_payload</span>)
594
- <span class="ruby-keyword">end</span></pre>
595
- </div>
596
- </div>
597
-
598
-
599
- </div>
600
-
601
- <div id="method-i-log_destroy_activity" class="method-detail ">
602
- <div class="method-header">
603
- <div class="method-heading">
604
- <span class="method-name">log_destroy_activity</span><span
605
- class="method-args">()</span>
606
- <span class="method-click-advice">click to toggle source</span>
607
- </div>
608
- </div>
609
-
610
- <div class="method-description">
611
- <p>Logs a destroy activity automatically if configured.</p>
612
-
613
- <div class="method-source-code" id="log_destroy_activity-source">
614
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 142</span>
615
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_destroy_activity</span>
616
- <span class="ruby-identifier">mark_encryption_keys_as_deleted</span>
617
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hooks_enabled?</span>
618
-
619
- <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>)
620
- <span class="ruby-keyword">end</span></pre>
621
- </div>
622
- </div>
623
-
624
-
625
- </div>
626
-
627
- <div id="method-i-log_update" class="method-detail ">
628
- <div class="method-header">
629
- <div class="method-heading">
630
- <span class="method-name">log_update</span><span
631
- class="method-args">()</span>
632
- <span class="method-click-advice">click to toggle source</span>
633
- </div>
634
- </div>
635
-
636
- <div class="method-description">
637
- <p>Logs an activity for the update action.</p>
638
-
639
- <div class="method-source-code" id="log_update-source">
640
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 71</span>
641
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_update</span>
642
- <span class="ruby-identifier">create_activity</span>(<span class="ruby-identifier">build_update_payloads</span>)
643
- <span class="ruby-keyword">end</span></pre>
644
- </div>
645
- </div>
646
-
647
-
648
- </div>
649
-
650
- <div id="method-i-log_update_activity" class="method-detail ">
651
- <div class="method-header">
652
- <div class="method-heading">
653
- <span class="method-name">log_update_activity</span><span
654
- class="method-args">()</span>
655
- <span class="method-click-advice">click to toggle source</span>
656
- </div>
657
- </div>
658
-
659
- <div class="method-description">
660
- <p>Logs an update activity automatically if configured.</p>
661
-
662
- <div class="method-source-code" id="log_update_activity-source">
663
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 120</span>
664
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">log_update_activity</span>
665
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hooks_enabled?</span>
666
-
667
- <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>)
668
- <span class="ruby-keyword">end</span></pre>
669
- </div>
670
- </div>
671
-
672
-
673
- </div>
674
-
675
- <div id="method-i-mark_encryption_keys_as_deleted" class="method-detail ">
676
- <div class="method-header">
677
- <div class="method-heading">
678
- <span class="method-name">mark_encryption_keys_as_deleted</span><span
679
- class="method-args">()</span>
680
- <span class="method-click-advice">click to toggle source</span>
681
- </div>
682
- </div>
683
-
684
- <div class="method-description">
685
- <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>
686
-
687
- <div class="method-source-code" id="mark_encryption_keys_as_deleted-source">
688
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 152</span>
689
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">mark_encryption_keys_as_deleted</span>
690
- <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>
691
- <span class="ruby-comment"># data_owners = ::LoggableActivity::DataOwner.where(record: self)</span>
692
- <span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">DataOwner</span>
693
- .<span class="ruby-identifier">where</span>(<span class="ruby-value">record:</span> <span class="ruby-keyword">self</span>)
694
- .<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:mark_as_deleted!</span>)
695
- <span class="ruby-keyword">end</span></pre>
696
- </div>
697
- </div>
698
-
699
-
700
- </div>
701
-
702
- <div id="method-i-nothing_to_log-3F" class="method-detail ">
703
- <div class="method-header">
704
- <div class="method-heading">
705
- <span class="method-name">nothing_to_log?</span><span
706
- class="method-args">(_payloads)</span>
707
- <span class="method-click-advice">click to toggle source</span>
708
- </div>
709
- </div>
710
-
711
- <div class="method-description">
712
- <p>Returns true if there are no payloads to log.</p>
713
-
714
- <div class="method-source-code" id="nothing_to_log-3F-source">
715
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 112</span>
716
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">nothing_to_log?</span>(<span class="ruby-identifier">_payloads</span>)
717
- <span class="ruby-ivar">@payloads</span>.<span class="ruby-identifier">empty?</span>
718
- <span class="ruby-keyword">end</span></pre>
719
- </div>
720
- </div>
721
-
722
-
723
- </div>
724
-
725
- <div id="method-i-primary_encryption_key" class="method-detail ">
726
- <div class="method-header">
727
- <div class="method-heading">
728
- <span class="method-name">primary_encryption_key</span><span
729
- class="method-args">()</span>
730
- <span class="method-click-advice">click to toggle source</span>
731
- </div>
732
- </div>
733
-
734
- <div class="method-description">
735
- <p>Returns the primary encryption key for the activity</p>
736
-
737
- <div class="method-source-code" id="primary_encryption_key-source">
738
- <pre><span class="ruby-comment"># File lib/loggable_activity/hooks.rb, line 177</span>
739
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_encryption_key</span>
740
- <span class="ruby-identifier">encryption_key_for_record</span>
741
- <span class="ruby-keyword">end</span></pre>
742
- </div>
743
- </div>
744
-
745
-
746
- </div>
747
-
748
- </section>
749
-
750
- </section>
751
- </main>
752
-
753
-
754
- <footer id="validator-badges" role="contentinfo">
755
- <p><a href="https://validator.w3.org/check/referer">Validate</a>
756
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.6.2.
757
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
758
- </footer>
759
-