loggable_activity 0.2.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,109 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails/generators/active_record'
4
- require 'rails/generators/named_base'
5
-
6
- module LoggableActivity
7
- module Generators
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
-
15
- source_root File.expand_path('templates', __dir__)
16
- class_option :uuid, type: :boolean, desc: 'use UUID for primary keys'
17
-
18
- FILE_NAMES = %w[activity payload encryption_key data_owner].freeze
19
- TIME = Time.now
20
-
21
- def install
22
- binary_ids = options['uuid'] ? true : false
23
- time = Time.now.utc
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
30
- template migration_file_name, destination
31
- end
32
- end
33
-
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
- ::LoggableActivity::Configuration.load_config_file('config/loggable_activity.yaml')
72
-
73
- 3. Include current_user ApplicationController
74
- class ApplicationController < ActionController::Base
75
- include LoggableActivity::CurrentUser
76
-
77
- 4. Update the 'config/loggable_activity.yaml' file with the necessary configuration.
78
-
79
- 5. Run the migration to create the necessary tables.
80
-
81
-
82
- For more information, please visit:
83
- https://github.com/maxgronlund/LoggableActivity/blob/main/GETTING-STARTED.md
84
-
85
- ------------------------------------------------
86
- MESSAGE
87
-
88
- puts message
89
- end
90
-
91
- private
92
-
93
- def create_migration_files
94
- binary_ids = options['uuid'] ? true : false
95
- time = Time.now.utc
96
- timestamp = time.strftime('%Y%m%d%H%M%S')
97
- migration_file_name = 'create_loggable_activities.rb'
98
- destination = File.join('db', 'migrate', "#{timestamp}_#{migration_file_name}")
99
- if binary_ids
100
- # Copy binary_id migration file
101
- template "binary_ids/#{migration_file_name}", destination
102
- else
103
- # Copy integer migration file
104
- template migration_file_name, destination
105
- end
106
- end
107
- end
108
- end
109
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class CreateLoggableActivities < ActiveRecord::Migration[7.1]
4
- def change
5
- create_table :loggable_activities, id: :uuid, default: 'gen_random_uuid()' do |t|
6
- t.string :action
7
- t.references :actor, polymorphic: true, null: true, type: :uuid
8
- t.string :actor_display_name
9
- t.string :record_display_name
10
- t.references :record, polymorphic: true, null: true, type: :uuid
11
-
12
- t.timestamps
13
- end
14
-
15
- create_table :loggable_payloads, id: :uuid, default: 'gen_random_uuid()' do |t|
16
- t.references :activity, foreign_key: { to_table: 'loggable_activities', class_name: '::LoggableActivity::Activity' }, type: :uuid
17
- t.references :encryption_key, null: false, foreign_key: { to_table: 'loggable_encryption_keys', class_name: '::LoggableActivity::EncryptionKey' }, type: :uuid
18
- t.references :record, polymorphic: true, null: true, type: :uuid
19
- t.json :encrypted_attrs
20
- t.integer :related_to_activity_as, default: 0
21
- t.string :route
22
- end
23
-
24
- create_table :loggable_encryption_keys, id: :uuid, default: 'gen_random_uuid()' do |t|
25
- t.string :secret_key
26
- # t.references :parent_key, foreign_key: { to_table: 'loggable_encryption_keys', type: :uuid }
27
- # t.references :record, polymorphic: true, type: :uuid
28
- end
29
- end
30
- end
@@ -1,36 +0,0 @@
1
- en:
2
- loggable:
3
- activity:
4
- deleted: "***** DELETED *****"
5
- demo/address:
6
- update: An address was updated
7
- create: An address was created
8
- show: An address was shown
9
- destroy: An address was deleted
10
- demo/club:
11
- update: A club was updated
12
- create: A club was created
13
- show: A club was shown
14
- destroy: A club was deleted
15
- demo/journal:
16
- update: A journal was updated
17
- create: A journal was created
18
- show: A journal was shown
19
- destroy: A journal was deleted
20
- demo/product:
21
- update: A product was updated
22
- create: A product was created
23
- show: A product was shown
24
- destroy: A product was deleted
25
- user:
26
- update: A user was updated
27
- create: A user was created
28
- show: "A user was shown"
29
- destroy: A user was deleted
30
- models:
31
- Demo::Address: Address
32
- Demo::UserProfile: Profile
33
- Demo::Club: Club
34
- Demo::Journal: Journal
35
- Demo/Product: Product
36
- User: User
@@ -1,29 +0,0 @@
1
- # User:
2
- # record_display_name: full_name
3
- # loggable_attrs:
4
- # - first_name
5
- # - last_name
6
- # - age
7
- # - email
8
- # - user_type
9
- # auto_log:
10
- # - create
11
- # - update
12
- # - destroy
13
- # relations:
14
- # - has_one: :demo_user_profile
15
- # model: Demo::UserProfile
16
- # loggable_attrs:
17
- # - sex
18
- # - religion
19
- # - belongs_to: :demo_address
20
- # model: Demo::Address
21
- # loggable_attrs:
22
- # - street
23
- # - city
24
- # - country
25
- # - postal_code
26
- # - belongs_to: :demo_club
27
- # model: Demo::Club
28
- # loggable_attrs:
29
- # - name
@@ -1,36 +0,0 @@
1
- en:
2
- loggable:
3
- activity:
4
- deleted: "***** DELETED *****"
5
- demo/address:
6
- update: An address was updated
7
- create: An address was created
8
- show: An address was shown
9
- destroy: An address was deleted
10
- demo/club:
11
- update: A club was updated
12
- create: A club was created
13
- show: A club was shown
14
- destroy: A club was deleted
15
- demo/journal:
16
- update: A journal was updated
17
- create: A journal was created
18
- show: A journal was shown
19
- destroy: A journal was deleted
20
- demo/product:
21
- update: A product was updated
22
- create: A product was created
23
- show: A product was shown
24
- destroy: A product was deleted
25
- user:
26
- update: A user was updated
27
- create: A user was created
28
- show: "A user was shown"
29
- destroy: A user was deleted
30
- models:
31
- Demo::Address: Address
32
- Demo::UserProfile: Profile
33
- Demo::Club: Club
34
- Demo::Journal: Journal
35
- Demo/Product: Product
36
- User: User
Binary file
@@ -1,4 +0,0 @@
1
- module LoggableActivity
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
- end