loggable_activity 0.1.52 → 0.1.54

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/CHANGELOG.md +14 -1
  4. data/GETTING-STARTED.md +96 -42
  5. data/README.md +5 -0
  6. data/docs/LoggableActivity/Activity.html +44 -16
  7. data/docs/LoggableActivity/Encryption.html +31 -24
  8. data/docs/LoggableActivity/EncryptionKey.html +10 -7
  9. data/docs/LoggableActivity/Hooks.html +19 -19
  10. data/docs/LoggableActivity/Payload.html +7 -7
  11. data/docs/LoggableActivity/PayloadsBuilder.html +75 -22
  12. data/docs/LoggableActivity/UpdatePayloadsBuilder.html +66 -67
  13. data/docs/created.rid +10 -10
  14. data/docs/js/search_index.js +1 -1
  15. data/docs/js/search_index.js.gz +0 -0
  16. data/docs/table_of_contents.html +25 -0
  17. data/help/loggable_activity_help.txt +19 -0
  18. data/lib/generators/.DS_Store +0 -0
  19. data/lib/generators/loggable_activity/.DS_Store +0 -0
  20. data/lib/generators/loggable_activity/install_generator.rb +104 -11
  21. data/lib/generators/loggable_activity/install_templates_generator.rb +103 -0
  22. data/lib/generators/loggable_activity/templates/.DS_Store +0 -0
  23. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +31 -0
  24. data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +16 -0
  25. data/lib/generators/loggable_activity/templates/helpers/loggable_activity_helper.rb +49 -0
  26. data/lib/generators/loggable_activity/templates/loggable_activity.en.yaml +36 -0
  27. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +23 -0
  28. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +18 -0
  29. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +18 -0
  30. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +17 -0
  31. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +18 -0
  32. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +17 -0
  33. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +18 -0
  34. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +12 -0
  35. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +12 -0
  36. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +11 -0
  37. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +8 -0
  38. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +6 -0
  39. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +17 -0
  40. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +14 -0
  41. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +23 -0
  42. data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +21 -0
  43. data/lib/loggable_activity/payloads_builder.rb +3 -19
  44. data/lib/loggable_activity/update_payloads_builder.rb +18 -60
  45. data/lib/loggable_activity/version.rb +1 -1
  46. metadata +37 -18
  47. data/lib/generators/loggable_activity/templates/create_loggable_encryption_keys.rb +0 -11
  48. data/lib/generators/loggable_activity/templates/create_loggable_payloads.rb +0 -15
  49. /data/lib/generators/loggable_activity/templates/{loggable_activity.en.yml → config/locales/loggable_activity.en.yml} +0 -0
  50. /data/lib/generators/loggable_activity/templates/{loggable_activity.yml → config/loggable_activity.yaml} +0 -0
@@ -68,6 +68,8 @@
68
68
  <ul class="link-list" role="directory">
69
69
  <li ><a href="#method-i-build_primary_update_payload">#build_primary_update_payload</a>
70
70
  <li ><a href="#method-i-build_relation_update_for_belongs_to">#build_relation_update_for_belongs_to</a>
71
+ <li ><a href="#method-i-build_relation_update_for_has_many">#build_relation_update_for_has_many</a>
72
+ <li ><a href="#method-i-build_relation_update_for_has_one">#build_relation_update_for_has_one</a>
71
73
  <li ><a href="#method-i-build_relation_update_payload">#build_relation_update_payload</a>
72
74
  <li ><a href="#method-i-build_update_payloads">#build_update_payloads</a>
73
75
  <li ><a href="#method-i-build_update_relation_payloads">#build_update_relation_payloads</a>
@@ -114,67 +116,8 @@
114
116
  <div class="method-description">
115
117
  <p>Builds payloads for an activity update event.</p>
116
118
 
117
- <pre>Example:
118
- build_update_payloads
119
-
120
- Returns:
121
- [
122
- [0] #&lt;LoggableActivity::Payload:0x00000001047d31d8&gt; {
123
- :id =&gt; nil,
124
- :record_type =&gt; &quot;Demo::Club&quot;,
125
- :record_id =&gt; 7,
126
- :encrypted_attrs =&gt; {
127
- &quot;changes&quot; =&gt; [
128
- [0] {
129
- &quot;name&quot; =&gt; {
130
- &quot;from&quot; =&gt; &quot;+aQznZK64KLQ8wsyZlSOGQbqm+J8gDX93rNFeF+wY68=\n&quot;,
131
- &quot;to&quot; =&gt; &quot;OdS834ZDS06+AYxmz4cUjhtgk7Jc8NoOVAAqR81Is7w=\n&quot;
132
- }
133
- }
134
- ]
135
- },
136
- :payload_type =&gt; &quot;update_payload&quot;,
137
- :data_owner =&gt; false,
138
- :activity_id =&gt; nil,
139
- :created_at =&gt; nil,
140
- :updated_at =&gt; nil
141
- },
142
- [1] #&lt;LoggableActivity::Payload:0x0000000107847f80&gt; {
143
- :id =&gt; nil,
144
- :record_type =&gt; &quot;Demo::Address&quot;,
145
- :record_id =&gt; 7,
146
- :encrypted_attrs =&gt; {
147
- &quot;street&quot; =&gt; &quot;W7cmT22Bb5TKVmtxTYJt1w==\n&quot;,
148
- &quot;city&quot; =&gt; &quot;AAwdTI7Xo86cMbFBAMsMIw==\n&quot;,
149
- &quot;country&quot; =&gt; &quot;7gu5wdu6O9tD7Q7+EDOqAg==\n&quot;,
150
- &quot;postal_code&quot; =&gt; &quot;ljjfT6MXGNK33/PUyi6Nmw==\n&quot;
151
- },
152
- :payload_type =&gt; &quot;previous_association&quot;,
153
- :data_owner =&gt; false,
154
- :activity_id =&gt; nil,
155
- :created_at =&gt; nil,
156
- :updated_at =&gt; nil
157
- },
158
- [2] #&lt;LoggableActivity::Payload:0x0000000107802a98&gt; {
159
- :id =&gt; nil,
160
- :record_type =&gt; &quot;Demo::Address&quot;,
161
- :record_id =&gt; 8,
162
- :encrypted_attrs =&gt; {
163
- &quot;street&quot; =&gt; &quot;CuULVgIEgrOcWBxegKEvSg==\n&quot;,
164
- &quot;city&quot; =&gt; &quot;QbvodOYMvNFpkvsCprqGqg==\n&quot;,
165
- &quot;country&quot; =&gt; &quot;/N03d1OL3TY+aaiPUQ5N1A==\n&quot;,
166
- &quot;postal_code&quot; =&gt; &quot;ZZu3S5tnaTeq+wBu0dPKBw==\n&quot;
167
- },
168
- :payload_type =&gt; &quot;current_association&quot;,
169
- :data_owner =&gt; false,
170
- :activity_id =&gt; nil,
171
- :created_at =&gt; nil,
172
- :updated_at =&gt; nil
173
- }
174
- ]</pre>
175
-
176
119
  <div class="method-source-code" id="build_update_payloads-source">
177
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 67</span>
120
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 7</span>
178
121
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_update_payloads</span>
179
122
  <span class="ruby-ivar">@update_payloads</span> = []
180
123
 
@@ -212,7 +155,7 @@
212
155
 
213
156
 
214
157
  <div class="method-source-code" id="build_primary_update_payload-source">
215
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 88</span>
158
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 28</span>
216
159
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_primary_update_payload</span>(<span class="ruby-identifier">previous_values</span>, <span class="ruby-identifier">current_values</span>)
217
160
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">previous_values</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current_values</span>
218
161
 
@@ -242,7 +185,7 @@
242
185
 
243
186
 
244
187
  <div class="method-source-code" id="build_relation_update_for_belongs_to-source">
245
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 120</span>
188
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 78</span>
246
189
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_belongs_to</span>(<span class="ruby-identifier">relation_config</span>)
247
190
  <span class="ruby-identifier">relation_id</span> = <span class="ruby-node">&quot;#{relation_config[&#39;belongs_to&#39;]}_id&quot;</span>
248
191
  <span class="ruby-identifier">model_class_name</span> = <span class="ruby-identifier">relation_config</span>[<span class="ruby-string">&#39;model&#39;</span>]
@@ -270,6 +213,58 @@
270
213
  </div>
271
214
 
272
215
 
216
+ </div>
217
+
218
+ <div id="method-i-build_relation_update_for_has_many" class="method-detail ">
219
+ <div class="method-header">
220
+ <div class="method-heading">
221
+ <span class="method-name">build_relation_update_for_has_many</span><span
222
+ class="method-args">(relation_config)</span>
223
+ <span class="method-click-advice">click to toggle source</span>
224
+ </div>
225
+ </div>
226
+
227
+ <div class="method-description">
228
+
229
+
230
+ <div class="method-source-code" id="build_relation_update_for_has_many-source">
231
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 64</span>
232
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_has_many</span>(<span class="ruby-identifier">relation_config</span>)
233
+ <span class="ruby-comment"># NOTE: This method is not implemented yet.</span>
234
+ <span class="ruby-comment"># It requires that there is a form where it is possible to change</span>
235
+ <span class="ruby-comment"># the related records. This is not implemented yet. in the Demo app</span>
236
+ <span class="ruby-comment"># puts relation_config[&#39;has_many&#39;]</span>
237
+ <span class="ruby-keyword">end</span></pre>
238
+ </div>
239
+ </div>
240
+
241
+
242
+ </div>
243
+
244
+ <div id="method-i-build_relation_update_for_has_one" class="method-detail ">
245
+ <div class="method-header">
246
+ <div class="method-heading">
247
+ <span class="method-name">build_relation_update_for_has_one</span><span
248
+ class="method-args">(relation_config)</span>
249
+ <span class="method-click-advice">click to toggle source</span>
250
+ </div>
251
+ </div>
252
+
253
+ <div class="method-description">
254
+
255
+
256
+ <div class="method-source-code" id="build_relation_update_for_has_one-source">
257
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 71</span>
258
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_for_has_one</span>(<span class="ruby-identifier">relation_config</span>)
259
+ <span class="ruby-comment"># NOTE: This method is not implemented yet.</span>
260
+ <span class="ruby-comment"># It requires that there is a form where it is possible to change</span>
261
+ <span class="ruby-comment"># the related records. This is not implemented yet. in the Demo app</span>
262
+ <span class="ruby-comment"># puts relation_config[&#39;has_many&#39;]</span>
263
+ <span class="ruby-keyword">end</span></pre>
264
+ </div>
265
+ </div>
266
+
267
+
273
268
  </div>
274
269
 
275
270
  <div id="method-i-build_relation_update_payload" class="method-detail ">
@@ -285,7 +280,7 @@
285
280
 
286
281
 
287
282
  <div class="method-source-code" id="build_relation_update_payload-source">
288
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 144</span>
283
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 102</span>
289
284
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_relation_update_payload</span>(<span class="ruby-identifier">_attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">record</span>, <span class="ruby-identifier">payload_type</span>)
290
285
  <span class="ruby-identifier">encryption_key</span> = <span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record</span>(<span class="ruby-identifier">record</span>)&amp;.<span class="ruby-identifier">key</span>
291
286
  <span class="ruby-identifier">encrypted_attrs</span> = <span class="ruby-identifier">relation_encrypted_attrs</span>(<span class="ruby-identifier">record</span>.<span class="ruby-identifier">attributes</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
@@ -315,12 +310,16 @@
315
310
 
316
311
 
317
312
  <div class="method-source-code" id="build_update_relation_payloads-source">
318
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 111</span>
313
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 51</span>
319
314
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">build_update_relation_payloads</span>(<span class="ruby-identifier">relation_config</span>)
320
315
  <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>
321
316
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">key</span>
322
317
  <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;belongs_to&#39;</span>
323
318
  <span class="ruby-identifier">build_relation_update_for_belongs_to</span>(<span class="ruby-identifier">relation_config</span>)
319
+ <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_one&#39;</span>
320
+ <span class="ruby-identifier">build_relation_update_for_has_one</span>(<span class="ruby-identifier">relation_config</span>)
321
+ <span class="ruby-keyword">when</span> <span class="ruby-string">&#39;has_many&#39;</span>
322
+ <span class="ruby-identifier">build_relation_update_for_has_many</span>(<span class="ruby-identifier">relation_config</span>)
324
323
  <span class="ruby-keyword">end</span>
325
324
  <span class="ruby-keyword">end</span>
326
325
  <span class="ruby-keyword">end</span></pre>
@@ -343,7 +342,7 @@
343
342
 
344
343
 
345
344
  <div class="method-source-code" id="encrypted_update_attrs-source">
346
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 99</span>
345
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 39</span>
347
346
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encrypted_update_attrs</span>(<span class="ruby-identifier">previous_values</span>, <span class="ruby-identifier">current_values</span>)
348
347
  <span class="ruby-identifier">changes</span> = []
349
348
  <span class="ruby-identifier">changed_attrs</span> = <span class="ruby-identifier">previous_values</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">loggable_attrs</span>)
@@ -374,7 +373,7 @@
374
373
 
375
374
 
376
375
  <div class="method-source-code" id="primary_update_attrs-source">
377
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 81</span>
376
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 21</span>
378
377
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_update_attrs</span>
379
378
  <span class="ruby-identifier">previous_values</span> = <span class="ruby-identifier">saved_changes</span>.<span class="ruby-identifier">transform_values</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:first</span>)
380
379
  <span class="ruby-identifier">current_values</span> = <span class="ruby-identifier">saved_changes</span>.<span class="ruby-identifier">transform_values</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:last</span>)
@@ -400,7 +399,7 @@
400
399
 
401
400
 
402
401
  <div class="method-source-code" id="relation_encrypted_attrs-source">
403
- <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 155</span>
402
+ <pre><span class="ruby-comment"># File lib/loggable_activity/update_payloads_builder.rb, line 113</span>
404
403
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">relation_encrypted_attrs</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
405
404
  <span class="ruby-identifier">encrypt_attrs</span>(<span class="ruby-identifier">attrs</span>, <span class="ruby-identifier">loggable_attrs</span>, <span class="ruby-identifier">encryption_key</span>)
406
405
  <span class="ruby-keyword">end</span></pre>
data/docs/created.rid CHANGED
@@ -1,10 +1,10 @@
1
- Fri, 16 Feb 2024 07:34:33 +0100
2
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/activity.rb Thu, 15 Feb 2024 13:53:38 +0100
3
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/configuration.rb Wed, 14 Feb 2024 15:28:50 +0100
4
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption.rb Thu, 15 Feb 2024 13:53:38 +0100
5
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption_key.rb Fri, 16 Feb 2024 07:32:02 +0100
6
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/hooks.rb Wed, 14 Feb 2024 15:28:50 +0100
7
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payload.rb Wed, 14 Feb 2024 15:28:50 +0100
8
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payloads_builder.rb Wed, 14 Feb 2024 15:28:50 +0100
9
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/update_payloads_builder.rb Wed, 14 Feb 2024 15:28:50 +0100
10
- /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/version.rb Thu, 15 Feb 2024 13:53:47 +0100
1
+ Sat, 24 Feb 2024 15:48:31 +0100
2
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/activity.rb Wed, 21 Feb 2024 12:58:24 +0100
3
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/configuration.rb Mon, 19 Feb 2024 15:59:34 +0100
4
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption.rb Fri, 16 Feb 2024 15:03:24 +0100
5
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/encryption_key.rb Wed, 21 Feb 2024 12:58:24 +0100
6
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/hooks.rb Wed, 21 Feb 2024 12:58:24 +0100
7
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payload.rb Wed, 21 Feb 2024 12:58:24 +0100
8
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/payloads_builder.rb Thu, 22 Feb 2024 17:26:16 +0100
9
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/update_payloads_builder.rb Thu, 22 Feb 2024 17:26:16 +0100
10
+ /Users/maxgronlund/Documents/Max/open-source/LoggableActivity/lib/loggable_activity/version.rb Thu, 22 Feb 2024 17:26:42 +0100
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["loggableactivity","activity","configuration","encryption","encryptionerror","encryptionkey","hooks","payload","payloadsbuilder","updatepayloadsbuilder","action_key()","activities_for_actor()","actor_display_name()","actor_display_name_field()","actor_encryption_key()","actor_key()","associated_record_encryption_key()","attrs()","attrs()","base_action()","blank?()","build_destroy_payload()","build_payload()","build_payloads()","build_primary_payload()","build_primary_update_payload()","build_relation_payload()","build_relation_update_for_belongs_to()","build_relation_update_payload()","build_update_payloads()","build_update_relation_payloads()","create_activity()","create_encryption_key()","current_user_model?()","decrypt()","decrypt_attr()","decrypted_attrs()","decrypted_from_to_attr()","decrypted_update_attrs()","deleted_attrs()","encrypt()","encrypt_attr()","encrypt_attrs()","encrypted_actor_name()","encrypted_record_name()","encrypted_update_attrs()","for_class()","for_record()","for_record_by_type_and_id()","latest()","load_config_file()","log()","log_activity()","log_create_activity()","log_custom_activity()","log_destroy()","log_destroy_activity()","log_update()","log_update_activity()","mark_as_deleted()","must_have_at_least_one_payload()","nothing_to_log?()","ordered_payloads()","payload_encryption_key()","previous_associations_attrs()","primary_encryption_key()","primary_encryption_key_deleted?()","primary_payload()","primary_payload_attrs()","primary_update_attrs()","random_key()","record_display_name()","record_key()","relation_encrypted_attrs()","relations_attrs()","update_activity_attrs()","update_attrs()","updated_relations_attrs()"],"longSearchIndex":["loggableactivity","loggableactivity::activity","loggableactivity::configuration","loggableactivity::encryption","loggableactivity::encryptionerror","loggableactivity::encryptionkey","loggableactivity::hooks","loggableactivity::payload","loggableactivity::payloadsbuilder","loggableactivity::updatepayloadsbuilder","loggableactivity::hooks#action_key()","loggableactivity::activity::activities_for_actor()","loggableactivity::activity#actor_display_name()","loggableactivity::hooks#actor_display_name_field()","loggableactivity::hooks#actor_encryption_key()","loggableactivity::activity#actor_key()","loggableactivity::payloadsbuilder#associated_record_encryption_key()","loggableactivity::activity#attrs()","loggableactivity::payload#attrs()","loggableactivity::hooks#base_action()","loggableactivity::encryption::blank?()","loggableactivity::payloadsbuilder#build_destroy_payload()","loggableactivity::payloadsbuilder#build_payload()","loggableactivity::payloadsbuilder#build_payloads()","loggableactivity::payloadsbuilder#build_primary_payload()","loggableactivity::updatepayloadsbuilder#build_primary_update_payload()","loggableactivity::payloadsbuilder#build_relation_payload()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_belongs_to()","loggableactivity::updatepayloadsbuilder#build_relation_update_payload()","loggableactivity::updatepayloadsbuilder#build_update_payloads()","loggableactivity::updatepayloadsbuilder#build_update_relation_payloads()","loggableactivity::hooks#create_activity()","loggableactivity::encryptionkey::create_encryption_key()","loggableactivity::hooks#current_user_model?()","loggableactivity::encryption::decrypt()","loggableactivity::payload#decrypt_attr()","loggableactivity::payload#decrypted_attrs()","loggableactivity::payload#decrypted_from_to_attr()","loggableactivity::payload#decrypted_update_attrs()","loggableactivity::payload#deleted_attrs()","loggableactivity::encryption::encrypt()","loggableactivity::payloadsbuilder#encrypt_attr()","loggableactivity::payloadsbuilder#encrypt_attrs()","loggableactivity::hooks#encrypted_actor_name()","loggableactivity::hooks#encrypted_record_name()","loggableactivity::updatepayloadsbuilder#encrypted_update_attrs()","loggableactivity::configuration::for_class()","loggableactivity::encryptionkey::for_record()","loggableactivity::encryptionkey::for_record_by_type_and_id()","loggableactivity::activity::latest()","loggableactivity::configuration::load_config_file()","loggableactivity::hooks#log()","loggableactivity::hooks#log_activity()","loggableactivity::hooks#log_create_activity()","loggableactivity::hooks#log_custom_activity()","loggableactivity::hooks#log_destroy()","loggableactivity::hooks#log_destroy_activity()","loggableactivity::hooks#log_update()","loggableactivity::hooks#log_update_activity()","loggableactivity::encryptionkey#mark_as_deleted()","loggableactivity::activity#must_have_at_least_one_payload()","loggableactivity::hooks#nothing_to_log?()","loggableactivity::activity#ordered_payloads()","loggableactivity::payload#payload_encryption_key()","loggableactivity::activity#previous_associations_attrs()","loggableactivity::hooks#primary_encryption_key()","loggableactivity::hooks#primary_encryption_key_deleted?()","loggableactivity::activity#primary_payload()","loggableactivity::activity#primary_payload_attrs()","loggableactivity::updatepayloadsbuilder#primary_update_attrs()","loggableactivity::encryptionkey::random_key()","loggableactivity::activity#record_display_name()","loggableactivity::activity#record_key()","loggableactivity::updatepayloadsbuilder#relation_encrypted_attrs()","loggableactivity::activity#relations_attrs()","loggableactivity::activity#update_activity_attrs()","loggableactivity::activity#update_attrs()","loggableactivity::activity#updated_relations_attrs()"],"info":[["LoggableActivity","","LoggableActivity.html","",""],["LoggableActivity::Activity","","LoggableActivity/Activity.html","","<p>Represents one action in the activity log.\n"],["LoggableActivity::Configuration","","LoggableActivity/Configuration.html","","<p>This class is used to load the configuration file located at config/loggable_activity.yml\n"],["LoggableActivity::Encryption","","LoggableActivity/Encryption.html","","<p>This module is used to encrypt and decrypt attributes\n"],["LoggableActivity::EncryptionError","","LoggableActivity/EncryptionError.html","","<p>This error is raised when encryption or decryption fails\n"],["LoggableActivity::EncryptionKey","","LoggableActivity/EncryptionKey.html","","<p>This class represents the encryption key used to unlock the data for one payload. When deleted, only …\n"],["LoggableActivity::Hooks","","LoggableActivity/Hooks.html","","<p>This module provides hooks for creating activities when included in a model.\n"],["LoggableActivity::Payload","","LoggableActivity/Payload.html","","<p>This class represents a payload in the log, containing encrypted data of one record in the database. …\n"],["LoggableActivity::PayloadsBuilder","","LoggableActivity/PayloadsBuilder.html","","<p>This module is responsible for building payloads used in loggable activities.\n"],["LoggableActivity::UpdatePayloadsBuilder","","LoggableActivity/UpdatePayloadsBuilder.html","","<p>This module is responsible for building update payloads used in loggable activities.\n"],["action_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-action_key","()",""],["activities_for_actor","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-activities_for_actor","(actor, limit = 20, params = { offset: 0 })","<p>Returns a list of activities for a given actor.\n"],["actor_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_display_name","()","<p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["actor_display_name_field","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_display_name_field","()",""],["actor_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_encryption_key","()",""],["actor_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_key","()",""],["associated_record_encryption_key","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-associated_record_encryption_key","(associated_record, data_owner)","<p>Retrieves the encryption key for the associated record.\n<p>@param associated_record [ActiveRecord::Base] …\n"],["attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-attrs","()","<p>Returns a list of attributes of the activity includig the indliced relations. The included relations …\n"],["attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-attrs","()","<p>Returns the decrypted attributes of the payload based on its type.\n<p>@return [Hash] The decrypted attributes. …\n"],["base_action","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-base_action","()",""],["blank?","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-blank-3F","(value)",""],["build_destroy_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload","()","<p>Builds the payload for destroyed records.\n"],["build_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payload","(relation_config, relation_type)","<p>Builds the payload for a specific relation.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payloads","()","<p>Builds payloads for the loggable activity.\n\n<pre>Example:\n build_payloads\n\nReturns:\n #&lt;LoggableActivity::Payload:0x0000000109658718&gt; ...</pre>\n"],["build_primary_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_primary_payload","()","<p>Builds the primary payload.\n"],["build_primary_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_primary_update_payload","(previous_values, current_values)",""],["build_relation_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_relation_payload","(relation_config)","<p>Builds payloads for related records.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_relation_update_for_belongs_to","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_belongs_to","(relation_config)",""],["build_relation_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload","(_attrs, loggable_attrs, record, payload_type)",""],["build_update_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_payloads","()","<p>Builds payloads for an activity update event.\n\n<pre>Example:\n build_update_payloads\n\n Returns:\n [\n [0] #&lt;LoggableActivity::Payload:0x00000001047d31d8&gt; ...</pre>\n"],["build_update_relation_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_relation_payloads","(relation_config)",""],["create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-create_activity","(payloads)",""],["create_encryption_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-create_encryption_key","(record_type, record_id, parent_key = nil)","<p>Creates an encryption key for a record, optionally using a parent key.\n\n<pre>@param record_type [String] The ...</pre>\n"],["current_user_model?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-current_user_model-3F","()",""],["decrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-decrypt","(data, encryption_key)","<p>Decrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.decrypt(&#39;SOME_ENCRYPTED_STRING&#39;, ...</pre>\n"],["decrypt_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypt_attr","(value)","<p>Decrypts a single attribute.\n<p>@param value [String] The encrypted value to decrypt. @return [String] The …\n"],["decrypted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_attrs","()","<p>Decrypts all attributes.\n<p>@return [Hash] The decrypted attributes.\n"],["decrypted_from_to_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_from_to_attr","(change)","<p>Decrypts ‘from’ and ‘to’ attributes.\n<p>@param change [Hash] The change hash containing ‘from’ …\n"],["decrypted_update_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_update_attrs","()","<p>Decrypts the ‘from’ and ‘to’ attributes in the update payload.\n<p>@return [Array&lt;Hash&gt;] …\n"],["deleted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-deleted_attrs","()","<p>Helper method to handle deleted attributes.\n<p>@return [Hash] The hash with deleted attributes.\n"],["encrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-encrypt","(data, encryption_key)","<p>Encrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.encrypt(&#39;my ...</pre>\n"],["encrypt_attr","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attr","(attrs, encryption_key)","<p>Encrypts a single attribute.\n<p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key …\n"],["encrypt_attrs","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attrs","(attrs, loggable_attrs, encryption_key)","<p>Encrypts attributes.\n<p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array&lt;String&gt;] …\n"],["encrypted_actor_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_actor_name","()",""],["encrypted_record_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_record_name","()",""],["encrypted_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-encrypted_update_attrs","(previous_values, current_values)",""],["for_class","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-for_class","(class_name)","<p>Returns the configuration data for the given class\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-constant\">LoggableActivity</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Configuration</span>.<span class=\"ruby-identifier\">for_class</span>(<span class=\"ruby-string\">&#39;User&#39;</span>)\n</pre>\n"],["for_record","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record","(record, parent_key = nil)","<p>Returns an encryption key for a record, optionally using a parent key.\n\n<pre>@param record [ActiveRecord::Base] ...</pre>\n"],["for_record_by_type_and_id","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record_by_type_and_id","(record_type, record_id, parent_key = nil)","<p>Returns an encryption key for a record by its type and ID, optionally using a parent key.\n\n<pre>@param record_type ...</pre>\n"],["latest","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-latest","(limit = 20, params = { offset: 0 })","<p>Returns a list of activities ordered by creation date.\n"],["load_config_file","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-load_config_file","(config_file_path)",""],["log","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log","(action, actor: nil, params: {})","<p>Logs an activity with the specified action, actor, and params.\n\n<pre>@param action [Symbol] The action to log ...</pre>\n"],["log_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_activity","()",""],["log_create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_create_activity","()",""],["log_custom_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_custom_activity","(activity)",""],["log_destroy","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy","()",""],["log_destroy_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy_activity","()",""],["log_update","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update","()",""],["log_update_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update_activity","()",""],["mark_as_deleted","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-i-mark_as_deleted","()","<p>Marks the encryption key as deleted by updating the key to nil.\n"],["must_have_at_least_one_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-must_have_at_least_one_payload","()",""],["nothing_to_log?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-nothing_to_log-3F","(payloads)",""],["ordered_payloads","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-ordered_payloads","()",""],["payload_encryption_key","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-payload_encryption_key","()","<p>Retrieves the encryption key for the payload.\n<p>@return [String, nil] The encryption key.\n"],["previous_associations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-previous_associations_attrs","()",""],["primary_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key","()",""],["primary_encryption_key_deleted?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key_deleted-3F","()",""],["primary_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload","()",""],["primary_payload_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload_attrs","()","<p>Returns the attributes for the primary payload, without the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">primary_payload_attrs</span>\n</pre>\n"],["primary_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-primary_update_attrs","()",""],["random_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-random_key","()","<p>Generates a random encryption key.\n\n<pre>@return [String] The generated encryption key.</pre>\n<p>Example:\n"],["record_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_display_name","()","<p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["record_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_key","()",""],["relation_encrypted_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-relation_encrypted_attrs","(attrs, loggable_attrs, encryption_key)",""],["relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-relations_attrs","()","<p>Returns the attributes for the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">relations_attrs</span>\n</pre>\n"],["update_activity_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_activity_attrs","()","<p>Returns the attributes of an upddate activity.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">update_activity_attrs</span>\n</pre>\n"],["update_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_attrs","()",""],["updated_relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-updated_relations_attrs","()",""]]}}
1
+ var search_data = {"index":{"searchIndex":["loggableactivity","activity","configuration","encryption","encryptionerror","encryptionkey","hooks","payload","payloadsbuilder","updatepayloadsbuilder","action_key()","activities_for_actor()","actor_display_name()","actor_display_name_field()","actor_encryption_key()","actor_key()","associated_record_encryption_key()","attrs()","attrs()","base_action()","blank?()","build_associated_payload()","build_destroy_payload()","build_has_many_payloads()","build_payload()","build_payloads()","build_primary_payload()","build_primary_update_payload()","build_relation_payload()","build_relation_update_for_belongs_to()","build_relation_update_for_has_many()","build_relation_update_for_has_one()","build_relation_update_payload()","build_update_payloads()","build_update_relation_payloads()","create_activity()","create_encryption_key()","current_user_model?()","decrypt()","decrypt_attr()","decrypted_attrs()","decrypted_from_to_attr()","decrypted_update_attrs()","deleted_attrs()","encrypt()","encrypt_attr()","encrypt_attrs()","encrypted_actor_name()","encrypted_record_name()","encrypted_update_attrs()","for_class()","for_record()","for_record_by_type_and_id()","last()","latest()","load_config_file()","log()","log_activity()","log_create_activity()","log_custom_activity()","log_destroy()","log_destroy_activity()","log_update()","log_update_activity()","mark_as_deleted()","must_have_at_least_one_payload()","nothing_to_log?()","ordered_payloads()","payload_encryption_key()","previous_associations_attrs()","primary_encryption_key()","primary_encryption_key_deleted?()","primary_payload()","primary_payload_attrs()","primary_update_attrs()","random_key()","record_display_name()","record_key()","relation_encrypted_attrs()","relations_attrs()","update_activity_attrs()","update_attrs()","updated_relations_attrs()"],"longSearchIndex":["loggableactivity","loggableactivity::activity","loggableactivity::configuration","loggableactivity::encryption","loggableactivity::encryptionerror","loggableactivity::encryptionkey","loggableactivity::hooks","loggableactivity::payload","loggableactivity::payloadsbuilder","loggableactivity::updatepayloadsbuilder","loggableactivity::hooks#action_key()","loggableactivity::activity::activities_for_actor()","loggableactivity::activity#actor_display_name()","loggableactivity::hooks#actor_display_name_field()","loggableactivity::hooks#actor_encryption_key()","loggableactivity::activity#actor_key()","loggableactivity::payloadsbuilder#associated_record_encryption_key()","loggableactivity::activity#attrs()","loggableactivity::payload#attrs()","loggableactivity::hooks#base_action()","loggableactivity::encryption::blank?()","loggableactivity::payloadsbuilder#build_associated_payload()","loggableactivity::payloadsbuilder#build_destroy_payload()","loggableactivity::payloadsbuilder#build_has_many_payloads()","loggableactivity::payloadsbuilder#build_payload()","loggableactivity::payloadsbuilder#build_payloads()","loggableactivity::payloadsbuilder#build_primary_payload()","loggableactivity::updatepayloadsbuilder#build_primary_update_payload()","loggableactivity::payloadsbuilder#build_relation_payload()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_belongs_to()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_many()","loggableactivity::updatepayloadsbuilder#build_relation_update_for_has_one()","loggableactivity::updatepayloadsbuilder#build_relation_update_payload()","loggableactivity::updatepayloadsbuilder#build_update_payloads()","loggableactivity::updatepayloadsbuilder#build_update_relation_payloads()","loggableactivity::hooks#create_activity()","loggableactivity::encryptionkey::create_encryption_key()","loggableactivity::hooks#current_user_model?()","loggableactivity::encryption::decrypt()","loggableactivity::payload#decrypt_attr()","loggableactivity::payload#decrypted_attrs()","loggableactivity::payload#decrypted_from_to_attr()","loggableactivity::payload#decrypted_update_attrs()","loggableactivity::payload#deleted_attrs()","loggableactivity::encryption::encrypt()","loggableactivity::payloadsbuilder#encrypt_attr()","loggableactivity::payloadsbuilder#encrypt_attrs()","loggableactivity::hooks#encrypted_actor_name()","loggableactivity::hooks#encrypted_record_name()","loggableactivity::updatepayloadsbuilder#encrypted_update_attrs()","loggableactivity::configuration::for_class()","loggableactivity::encryptionkey::for_record()","loggableactivity::encryptionkey::for_record_by_type_and_id()","loggableactivity::activity::last()","loggableactivity::activity::latest()","loggableactivity::configuration::load_config_file()","loggableactivity::hooks#log()","loggableactivity::hooks#log_activity()","loggableactivity::hooks#log_create_activity()","loggableactivity::hooks#log_custom_activity()","loggableactivity::hooks#log_destroy()","loggableactivity::hooks#log_destroy_activity()","loggableactivity::hooks#log_update()","loggableactivity::hooks#log_update_activity()","loggableactivity::encryptionkey#mark_as_deleted()","loggableactivity::activity#must_have_at_least_one_payload()","loggableactivity::hooks#nothing_to_log?()","loggableactivity::activity#ordered_payloads()","loggableactivity::payload#payload_encryption_key()","loggableactivity::activity#previous_associations_attrs()","loggableactivity::hooks#primary_encryption_key()","loggableactivity::hooks#primary_encryption_key_deleted?()","loggableactivity::activity#primary_payload()","loggableactivity::activity#primary_payload_attrs()","loggableactivity::updatepayloadsbuilder#primary_update_attrs()","loggableactivity::encryptionkey::random_key()","loggableactivity::activity#record_display_name()","loggableactivity::activity#record_key()","loggableactivity::updatepayloadsbuilder#relation_encrypted_attrs()","loggableactivity::activity#relations_attrs()","loggableactivity::activity#update_activity_attrs()","loggableactivity::activity#update_attrs()","loggableactivity::activity#updated_relations_attrs()"],"info":[["LoggableActivity","","LoggableActivity.html","",""],["LoggableActivity::Activity","","LoggableActivity/Activity.html","","<p>Represents one action in the activity log.\n"],["LoggableActivity::Configuration","","LoggableActivity/Configuration.html","","<p>This class is used to load the configuration file located at config/loggable_activity.yml\n"],["LoggableActivity::Encryption","","LoggableActivity/Encryption.html","","<p>This module is used to encrypt and decrypt attributes\n"],["LoggableActivity::EncryptionError","","LoggableActivity/EncryptionError.html","","<p>This error is raised when encryption or decryption fails\n"],["LoggableActivity::EncryptionKey","","LoggableActivity/EncryptionKey.html","","<p>This class represents the encryption key used to unlock the data for one payload. When deleted, only …\n"],["LoggableActivity::Hooks","","LoggableActivity/Hooks.html","","<p>This module provides hooks for creating activities when included in a model.\n"],["LoggableActivity::Payload","","LoggableActivity/Payload.html","","<p>This class represents a payload in the log, containing encrypted data of one record in the database. …\n"],["LoggableActivity::PayloadsBuilder","","LoggableActivity/PayloadsBuilder.html","","<p>This module is responsible for building payloads used in loggable activities.\n"],["LoggableActivity::UpdatePayloadsBuilder","","LoggableActivity/UpdatePayloadsBuilder.html","","<p>This module is responsible for building update payloads used in loggable activities.\n"],["action_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-action_key","()",""],["activities_for_actor","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-activities_for_actor","(actor, limit = 20, params = { offset: 0 })","<p>Returns a list of activities for a given actor.\n"],["actor_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_display_name","()","<p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["actor_display_name_field","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_display_name_field","()",""],["actor_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-actor_encryption_key","()",""],["actor_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-actor_key","()",""],["associated_record_encryption_key","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-associated_record_encryption_key","(associated_record, data_owner)","<p>Retrieves the encryption key for the associated record.\n<p>@param associated_record [ActiveRecord::Base] …\n"],["attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-attrs","()","<p>Returns a list of attributes of the activity includig the indliced relations. The included relations …\n"],["attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-attrs","()","<p>Returns the decrypted attributes of the payload based on its type.\n<p>@return [Hash] The decrypted attributes. …\n"],["base_action","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-base_action","()",""],["blank?","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-blank-3F","(value)",""],["build_associated_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_associated_payload","(associated_record, relation_config)","<p>Builds the payload for an associated record.\n"],["build_destroy_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload","()","<p>Builds the payload for destroyed records.\n"],["build_has_many_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_has_many_payloads","(relation_config, relation_type)","<p>Builds payloads for has_many relations.\n"],["build_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payload","(relation_config, relation_type)","<p>Builds the payload for a specific relation.\n<p>@param relation_config [Hash] The configuration of the relation. …\n"],["build_payloads","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_payloads","()","<p>Builds payloads for the loggable activity.\n\n<pre>Example:\n build_payloads\n\nReturns:\n #&lt;LoggableActivity::Payload:0x0000000109658718&gt; ...</pre>\n"],["build_primary_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_primary_payload","()","<p>Builds the primary payload.\n"],["build_primary_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_primary_update_payload","(previous_values, current_values)",""],["build_relation_payload","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-build_relation_payload","(relation_config)","<p>Builds payloads for relations\n<p>@param relation_config [Hash] The configuration of the relation.\n"],["build_relation_update_for_belongs_to","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_belongs_to","(relation_config)",""],["build_relation_update_for_has_many","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_many","(relation_config)",""],["build_relation_update_for_has_one","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_one","(relation_config)",""],["build_relation_update_payload","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload","(_attrs, loggable_attrs, record, payload_type)",""],["build_update_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_payloads","()","<p>Builds payloads for an activity update event.\n"],["build_update_relation_payloads","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_update_relation_payloads","(relation_config)",""],["create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-create_activity","(payloads)",""],["create_encryption_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-create_encryption_key","(record_type, record_id, parent_key = nil)","<p>Creates an encryption key for a record, optionally using a parent key.\n\n<pre>@param record_type [String] The ...</pre>\n"],["current_user_model?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-current_user_model-3F","()",""],["decrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-decrypt","(data, encoded_key)","<p>Decrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.decrypt(&#39;SOME_ENCRYPTED_STRING&#39;, ...</pre>\n"],["decrypt_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypt_attr","(value)","<p>Decrypts a single attribute.\n<p>@param value [String] The encrypted value to decrypt. @return [String] The …\n"],["decrypted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_attrs","()","<p>Decrypts all attributes.\n<p>@return [Hash] The decrypted attributes.\n"],["decrypted_from_to_attr","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_from_to_attr","(change)","<p>Decrypts ‘from’ and ‘to’ attributes.\n<p>@param change [Hash] The change hash containing ‘from’ …\n"],["decrypted_update_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-decrypted_update_attrs","()","<p>Decrypts the ‘from’ and ‘to’ attributes in the update payload.\n<p>@return [Array&lt;Hash&gt;] …\n"],["deleted_attrs","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-deleted_attrs","()","<p>Helper method to handle deleted attributes.\n<p>@return [Hash] The hash with deleted attributes.\n"],["encrypt","LoggableActivity::Encryption","LoggableActivity/Encryption.html#method-c-encrypt","(data, encoded_key)","<p>Encrypts the given data using the given encryption key\n<p>Example:\n\n<pre>LoggableActivity::Encryption.encrypt(&#39;my ...</pre>\n"],["encrypt_attr","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attr","(attrs, encryption_key)","<p>Encrypts a single attribute.\n<p>@param attrs [Hash] The attributes to be encrypted. @param encryption_key …\n"],["encrypt_attrs","LoggableActivity::PayloadsBuilder","LoggableActivity/PayloadsBuilder.html#method-i-encrypt_attrs","(attrs, loggable_attrs, encryption_key)","<p>Encrypts attributes.\n<p>@param attrs [Hash] The attributes to be encrypted. @param loggable_attrs [Array&lt;String&gt;] …\n"],["encrypted_actor_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_actor_name","()",""],["encrypted_record_name","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-encrypted_record_name","()",""],["encrypted_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-encrypted_update_attrs","(previous_values, current_values)",""],["for_class","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-for_class","(class_name)","<p>Returns the configuration data for the given class\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-constant\">LoggableActivity</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Configuration</span>.<span class=\"ruby-identifier\">for_class</span>(<span class=\"ruby-string\">&#39;User&#39;</span>)\n</pre>\n"],["for_record","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record","(record, parent_key = nil)","<p>Returns an encryption key for a record, optionally using a parent key.\n\n<pre>@param record [ActiveRecord::Base] ...</pre>\n"],["for_record_by_type_and_id","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-for_record_by_type_and_id","(record_type, record_id, parent_key = nil)","<p>Returns an encryption key for a record by its type and ID, optionally using a parent key.\n\n<pre>@param record_type ...</pre>\n"],["last","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-last","(limit = 1)","<p>Returns the last activity.\n"],["latest","LoggableActivity::Activity","LoggableActivity/Activity.html#method-c-latest","(limit = 20, params = { offset: 0 })","<p>Returns a list of activities ordered by creation date.\n"],["load_config_file","LoggableActivity::Configuration","LoggableActivity/Configuration.html#method-c-load_config_file","(config_file_path)",""],["log","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log","(action, actor: nil, params: {})","<p>Logs an activity with the specified action, actor, and params.\n\n<pre>@param action [Symbol] The action to log ...</pre>\n"],["log_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_activity","()",""],["log_create_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_create_activity","()",""],["log_custom_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_custom_activity","(activity)",""],["log_destroy","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy","()",""],["log_destroy_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_destroy_activity","()",""],["log_update","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update","()",""],["log_update_activity","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-log_update_activity","()",""],["mark_as_deleted","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-i-mark_as_deleted","()","<p>Marks the encryption key as deleted by updating the key to nil.\n"],["must_have_at_least_one_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-must_have_at_least_one_payload","()",""],["nothing_to_log?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-nothing_to_log-3F","(payloads)",""],["ordered_payloads","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-ordered_payloads","()",""],["payload_encryption_key","LoggableActivity::Payload","LoggableActivity/Payload.html#method-i-payload_encryption_key","()","<p>Retrieves the encryption key for the payload.\n<p>@return [String, nil] The encryption key.\n"],["previous_associations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-previous_associations_attrs","()",""],["primary_encryption_key","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key","()",""],["primary_encryption_key_deleted?","LoggableActivity::Hooks","LoggableActivity/Hooks.html#method-i-primary_encryption_key_deleted-3F","()",""],["primary_payload","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload","()",""],["primary_payload_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-primary_payload_attrs","()","<p>Returns the attributes for the primary payload, without the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">primary_payload_attrs</span>\n</pre>\n"],["primary_update_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-primary_update_attrs","()",""],["random_key","LoggableActivity::EncryptionKey","LoggableActivity/EncryptionKey.html#method-c-random_key","()","<p>Generates a random encryption key.\n\n<pre>@return [String] The generated encryption key.</pre>\n<p>Example:\n"],["record_display_name","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_display_name","()","<p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’ …\n"],["record_key","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-record_key","()",""],["relation_encrypted_attrs","LoggableActivity::UpdatePayloadsBuilder","LoggableActivity/UpdatePayloadsBuilder.html#method-i-relation_encrypted_attrs","(attrs, loggable_attrs, encryption_key)",""],["relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-relations_attrs","()","<p>Returns the attributes for the relations.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">relations_attrs</span>\n</pre>\n"],["update_activity_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_activity_attrs","()","<p>Returns the attributes of an upddate activity.\n<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-ivar\">@activity</span>.<span class=\"ruby-identifier\">update_activity_attrs</span>\n</pre>\n"],["update_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-update_attrs","()",""],["updated_relations_attrs","LoggableActivity::Activity","LoggableActivity/Activity.html#method-i-updated_relations_attrs","()",""]]}}
Binary file
@@ -103,6 +103,11 @@
103
103
  &mdash;
104
104
  <span class="container">LoggableActivity::EncryptionKey</span>
105
105
 
106
+ <li class="method">
107
+ <a href="LoggableActivity/Activity.html#method-c-last">::last</a>
108
+ &mdash;
109
+ <span class="container">LoggableActivity::Activity</span>
110
+
106
111
  <li class="method">
107
112
  <a href="LoggableActivity/Activity.html#method-c-latest">::latest</a>
108
113
  &mdash;
@@ -163,11 +168,21 @@
163
168
  &mdash;
164
169
  <span class="container">LoggableActivity::Hooks</span>
165
170
 
171
+ <li class="method">
172
+ <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_associated_payload">#build_associated_payload</a>
173
+ &mdash;
174
+ <span class="container">LoggableActivity::PayloadsBuilder</span>
175
+
166
176
  <li class="method">
167
177
  <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_destroy_payload">#build_destroy_payload</a>
168
178
  &mdash;
169
179
  <span class="container">LoggableActivity::PayloadsBuilder</span>
170
180
 
181
+ <li class="method">
182
+ <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_has_many_payloads">#build_has_many_payloads</a>
183
+ &mdash;
184
+ <span class="container">LoggableActivity::PayloadsBuilder</span>
185
+
171
186
  <li class="method">
172
187
  <a href="LoggableActivity/PayloadsBuilder.html#method-i-build_payload">#build_payload</a>
173
188
  &mdash;
@@ -198,6 +213,16 @@
198
213
  &mdash;
199
214
  <span class="container">LoggableActivity::UpdatePayloadsBuilder</span>
200
215
 
216
+ <li class="method">
217
+ <a href="LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_many">#build_relation_update_for_has_many</a>
218
+ &mdash;
219
+ <span class="container">LoggableActivity::UpdatePayloadsBuilder</span>
220
+
221
+ <li class="method">
222
+ <a href="LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_for_has_one">#build_relation_update_for_has_one</a>
223
+ &mdash;
224
+ <span class="container">LoggableActivity::UpdatePayloadsBuilder</span>
225
+
201
226
  <li class="method">
202
227
  <a href="LoggableActivity/UpdatePayloadsBuilder.html#method-i-build_relation_update_payload">#build_relation_update_payload</a>
203
228
  &mdash;
@@ -0,0 +1,19 @@
1
+ Loggable Activity Generator Help
2
+ --------------------------------
3
+
4
+ Description:
5
+ This generator creates files and configurations for integrating the Loggable Activity gem into your Rails application.
6
+
7
+ Usage:
8
+ rails generate loggable_activity [options]
9
+
10
+ Options:
11
+ -h, [--help], [--no-help] # Display usage instructions (this message)
12
+ -m, [--uuid] # Use uuids for primary_keys
13
+
14
+ Examples:
15
+ rails generate loggable_activity --uuid # Generate loggable activity migration files with uuids for primary_keys
16
+
17
+ Note:
18
+ - This generator assumes that you have already installed the Loggable Activity gem.
19
+ - Ensure that your database schema supports UUIDs if using them as primary keys.
Binary file
@@ -5,28 +5,121 @@ require 'rails/generators/named_base'
5
5
 
6
6
  module LoggableActivity
7
7
  module Generators
8
- class InstallGenerator < Rails::Generators::NamedBase
8
+ class InstallGenerator < Rails::Generators::Base
9
+ def self.banner
10
+ 'rails generate loggable_activity:install [options]'
11
+ end
12
+
13
+ desc 'This generator configures LoggableActivity by creating migration files and initializing necessary configuration files.'
14
+
9
15
  source_root File.expand_path('templates', __dir__)
16
+ class_option :uuid, type: :boolean, desc: 'use UUID for primary keys'
10
17
 
11
18
  FILE_NAMES = %w[activity payload encryption_key].freeze
12
19
  TIME = Time.now
13
20
 
14
- def create_migration
21
+ def install
22
+ binary_ids = options['uuid'] ? true : false
15
23
  time = Time.now.utc
16
- FILE_NAMES.each_with_index do |file_name, index|
17
- timestamp = (time + index.minutes).strftime('%Y%m%d%H%M%S')
18
- migration_file_name = "create_loggable_#{file_name.pluralize}.rb"
19
- destination = File.join('db', 'migrate', "#{timestamp}_#{migration_file_name}")
24
+ timestamp = time.strftime('%Y%m%d%H%M%S')
25
+ migration_file_name = 'create_loggable_activities.rb'
26
+ destination = File.join('db', 'migrate', "#{timestamp}_#{migration_file_name}")
27
+ if binary_ids
28
+ template "binary_ids/#{migration_file_name}", destination
29
+ else
20
30
  template migration_file_name, destination
21
31
  end
22
32
  end
23
33
 
24
- def create_model_file
25
- template 'loggable_activity.en.yml', 'config/locales/loggable_activity.en.yml'
26
- template 'loggable_activity.yml', 'config/loggable_activity.yml'
27
- template 'current_user.rb', 'app/controllers/concerns/loggable_activity/current_user.rb'
28
- # template 'loggable_activity_helper.rb', 'app/helpers/loggable_activity_helper.rb'
34
+ def create_translation_file
35
+ copy_file 'config/locales/loggable_activity.en.yml', 'config/locales/loggable_activity.en.yml'
36
+ end
37
+
38
+ def create_config_file
39
+ copy_file 'config/loggable_activity.yaml', 'config/loggable_activity.yaml'
40
+ end
41
+
42
+ def create_current_user_concern
43
+ copy_file 'current_user.rb', 'app/controllers/concerns/loggable_activity/current_user.rb'
44
+ end
45
+
46
+ def completion_message
47
+ message = <<~MESSAGE
48
+ ------------------------------------------------
49
+ ___ _ _ _ _#{' '}
50
+ |_ _| _ __ ___| |_ __ _| | __ _| |_(_) ___ _ __#{' '}
51
+ | | | '_ \\/ __| __/ _` | |/ _` | __| |/ _ \\| '_ \\#{' '}
52
+ | | | | | \\__ \\ || (_| | | (_| | |_| | (_) | | | |
53
+ |___| |_| |_|___/\\__\\__,_|_|\\__,_|\\__|_|\\___/|_| |_|
54
+ ____ _ _ _#{' '}
55
+ / ___| ___ _ __ ___ _ __ | | ___| |_ ___ __| |
56
+ | | / _ \\| '_ ` _ \\| '_ \\| |/ _ \\ __/ _ \\/ _` |
57
+ | |___ | (_) | | | | | | |_) | | __/ || __/ (_| |
58
+ \\____| \\___/|_| |_| |_| .__/|_|\\___|\\__\\___|\\__,_|
59
+ |_|#{' '}
60
+
61
+ LoggableActivity installation completed successfully!
62
+
63
+ Quick Start:
64
+
65
+ 1. include hooks to the model we want to log.
66
+ class MY_MODEL < ApplicationRecord
67
+ include LoggableActivity::Hooks
68
+
69
+ 2. Update `config/application.rb
70
+ config.loggable_activity = ActiveSupport::OrderedOptions.new
71
+ config.loggable_activity.actor_display_name = :email
72
+ config.loggable_activity.current_user_model_name = 'User'
73
+ LoggableActivity::Configuration.load_config_file('config/loggable_activity.yaml')
74
+
75
+ 3. Include current_user ApplicationController
76
+ class ApplicationController < ActionController::Base
77
+ include LoggableActivity::CurrentUser
78
+
79
+ 4. Update the 'config/loggable_activity.yaml' file with the necessary configuration.
80
+
81
+ 5. Run the migration to create the necessary tables.
82
+
83
+
84
+ For more information, please visit:
85
+ https://github.com/maxgronlund/LoggableActivity/blob/main/GETTING-STARTED.md
86
+
87
+ Install templates
88
+ $ rails generate loggable_activity:install_templates
89
+
90
+
91
+
92
+ ------------------------------------------------
93
+ MESSAGE
94
+
95
+ puts message
96
+ end
97
+
98
+ private
99
+
100
+ def create_migration_files
101
+ binary_ids = options['uuid'] ? true : false
102
+ time = Time.now.utc
103
+ timestamp = time.strftime('%Y%m%d%H%M%S')
104
+ migration_file_name = 'create_loggable_activities.rb'
105
+ destination = File.join('db', 'migrate', "#{timestamp}_#{migration_file_name}")
106
+ if binary_ids
107
+ # Copy binary_id migration file
108
+ template "binary_ids/#{migration_file_name}", destination
109
+ else
110
+ # Copy integer migration file
111
+ template migration_file_name, destination
112
+ end
29
113
  end
114
+
115
+ # def display_help
116
+ # help_path = File.expand_path('../../../help/loggable_activity_help.txt', __dir__)
117
+ # puts '-----------------------------'
118
+ # puts help_path
119
+ # puts File.read(help_path)
120
+ # exit
121
+ # end
122
+ # Define a method to display a message after generation
30
123
  end
31
124
  end
32
125
  end