velocity_audited 5.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +115 -0
  3. data/.gitignore +17 -0
  4. data/.standard.yml +5 -0
  5. data/.yardopts +3 -0
  6. data/Appraisals +44 -0
  7. data/CHANGELOG.md +419 -0
  8. data/Gemfile +3 -0
  9. data/LICENSE +19 -0
  10. data/README.md +433 -0
  11. data/Rakefile +18 -0
  12. data/gemfiles/rails50.gemfile +10 -0
  13. data/gemfiles/rails51.gemfile +10 -0
  14. data/gemfiles/rails52.gemfile +10 -0
  15. data/gemfiles/rails60.gemfile +10 -0
  16. data/gemfiles/rails61.gemfile +10 -0
  17. data/gemfiles/rails70.gemfile +10 -0
  18. data/lib/audited/audit.rb +198 -0
  19. data/lib/audited/auditor.rb +476 -0
  20. data/lib/audited/railtie.rb +16 -0
  21. data/lib/audited/rspec_matchers.rb +228 -0
  22. data/lib/audited/sweeper.rb +67 -0
  23. data/lib/audited/version.rb +5 -0
  24. data/lib/audited-rspec.rb +6 -0
  25. data/lib/audited.rb +49 -0
  26. data/lib/generators/audited/install_generator.rb +27 -0
  27. data/lib/generators/audited/migration.rb +17 -0
  28. data/lib/generators/audited/migration_helper.rb +11 -0
  29. data/lib/generators/audited/templates/add_association_to_audits.rb +13 -0
  30. data/lib/generators/audited/templates/add_comment_to_audits.rb +11 -0
  31. data/lib/generators/audited/templates/add_remote_address_to_audits.rb +12 -0
  32. data/lib/generators/audited/templates/add_request_uuid_to_audits.rb +12 -0
  33. data/lib/generators/audited/templates/add_version_to_auditable_index.rb +23 -0
  34. data/lib/generators/audited/templates/install.rb +32 -0
  35. data/lib/generators/audited/templates/rename_association_to_associated.rb +25 -0
  36. data/lib/generators/audited/templates/rename_changes_to_audited_changes.rb +11 -0
  37. data/lib/generators/audited/templates/rename_parent_to_association.rb +13 -0
  38. data/lib/generators/audited/templates/revert_polymorphic_indexes_order.rb +22 -0
  39. data/lib/generators/audited/upgrade_generator.rb +70 -0
  40. data/lib/velocity_audited.rb +5 -0
  41. data/spec/audited/audit_spec.rb +357 -0
  42. data/spec/audited/auditor_spec.rb +1097 -0
  43. data/spec/audited/rspec_matchers_spec.rb +69 -0
  44. data/spec/audited/sweeper_spec.rb +133 -0
  45. data/spec/audited_spec.rb +18 -0
  46. data/spec/audited_spec_helpers.rb +32 -0
  47. data/spec/rails_app/app/assets/config/manifest.js +2 -0
  48. data/spec/rails_app/config/application.rb +13 -0
  49. data/spec/rails_app/config/database.yml +26 -0
  50. data/spec/rails_app/config/environment.rb +5 -0
  51. data/spec/rails_app/config/environments/test.rb +47 -0
  52. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  53. data/spec/rails_app/config/initializers/inflections.rb +2 -0
  54. data/spec/rails_app/config/initializers/secret_token.rb +3 -0
  55. data/spec/rails_app/config/routes.rb +3 -0
  56. data/spec/spec_helper.rb +24 -0
  57. data/spec/support/active_record/models.rb +151 -0
  58. data/spec/support/active_record/postgres/1_change_audited_changes_type_to_json.rb +11 -0
  59. data/spec/support/active_record/postgres/2_change_audited_changes_type_to_jsonb.rb +11 -0
  60. data/spec/support/active_record/schema.rb +90 -0
  61. data/test/db/version_1.rb +17 -0
  62. data/test/db/version_2.rb +18 -0
  63. data/test/db/version_3.rb +18 -0
  64. data/test/db/version_4.rb +19 -0
  65. data/test/db/version_5.rb +17 -0
  66. data/test/db/version_6.rb +19 -0
  67. data/test/install_generator_test.rb +62 -0
  68. data/test/test_helper.rb +18 -0
  69. data/test/upgrade_generator_test.rb +97 -0
  70. metadata +260 -0
@@ -0,0 +1,18 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :audits, force: true do |t|
3
+ t.column :auditable_id, :integer
4
+ t.column :auditable_type, :string
5
+ t.column :user_id, :integer
6
+ t.column :user_type, :string
7
+ t.column :username, :string
8
+ t.column :action, :string
9
+ t.column :changes, :text
10
+ t.column :version, :integer, default: 0
11
+ t.column :comment, :string
12
+ t.column :created_at, :datetime
13
+ end
14
+
15
+ add_index :audits, [:auditable_id, :auditable_type], name: "auditable_index"
16
+ add_index :audits, [:user_id, :user_type], name: "user_index"
17
+ add_index :audits, :created_at
18
+ end
@@ -0,0 +1,18 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :audits, force: true do |t|
3
+ t.column :auditable_id, :integer
4
+ t.column :auditable_type, :string
5
+ t.column :user_id, :integer
6
+ t.column :user_type, :string
7
+ t.column :username, :string
8
+ t.column :action, :string
9
+ t.column :audited_changes, :text
10
+ t.column :version, :integer, default: 0
11
+ t.column :comment, :string
12
+ t.column :created_at, :datetime
13
+ end
14
+
15
+ add_index :audits, [:auditable_id, :auditable_type], name: "auditable_index"
16
+ add_index :audits, [:user_id, :user_type], name: "user_index"
17
+ add_index :audits, :created_at
18
+ end
@@ -0,0 +1,19 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :audits, force: true do |t|
3
+ t.column :auditable_id, :integer
4
+ t.column :auditable_type, :string
5
+ t.column :user_id, :integer
6
+ t.column :user_type, :string
7
+ t.column :username, :string
8
+ t.column :action, :string
9
+ t.column :audited_changes, :text
10
+ t.column :version, :integer, default: 0
11
+ t.column :comment, :string
12
+ t.column :created_at, :datetime
13
+ t.column :remote_address, :string
14
+ end
15
+
16
+ add_index :audits, [:auditable_id, :auditable_type], name: "auditable_index"
17
+ add_index :audits, [:user_id, :user_type], name: "user_index"
18
+ add_index :audits, :created_at
19
+ end
@@ -0,0 +1,17 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :audits, force: true do |t|
3
+ t.column :auditable_id, :integer
4
+ t.column :auditable_type, :string
5
+ t.column :user_id, :integer
6
+ t.column :user_type, :string
7
+ t.column :username, :string
8
+ t.column :action, :string
9
+ t.column :audited_changes, :text
10
+ t.column :version, :integer, default: 0
11
+ t.column :comment, :string
12
+ t.column :created_at, :datetime
13
+ t.column :remote_address, :string
14
+ t.column :association_id, :integer
15
+ t.column :association_type, :string
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :audits, force: true do |t|
3
+ t.column :auditable_id, :integer
4
+ t.column :auditable_type, :string
5
+ t.column :user_id, :integer
6
+ t.column :user_type, :string
7
+ t.column :username, :string
8
+ t.column :action, :string
9
+ t.column :audited_changes, :text
10
+ t.column :version, :integer, default: 0
11
+ t.column :comment, :string
12
+ t.column :created_at, :datetime
13
+ t.column :remote_address, :string
14
+ t.column :associated_id, :integer
15
+ t.column :associated_type, :string
16
+ end
17
+
18
+ add_index :audits, [:auditable_type, :auditable_id], name: "auditable_index"
19
+ end
@@ -0,0 +1,62 @@
1
+ require "test_helper"
2
+
3
+ require "generators/audited/install_generator"
4
+
5
+ class InstallGeneratorTest < Rails::Generators::TestCase
6
+ destination File.expand_path("../../tmp", __FILE__)
7
+ setup :prepare_destination
8
+ tests Audited::Generators::InstallGenerator
9
+
10
+ test "generate migration with 'text' type for audited_changes column" do
11
+ run_generator
12
+
13
+ assert_migration "db/migrate/install_audited.rb" do |content|
14
+ assert_includes(content, "class InstallAudited")
15
+ assert_includes(content, "t.column :audited_changes, :text")
16
+ end
17
+ end
18
+
19
+ test "generate migration with 'jsonb' type for audited_changes column" do
20
+ run_generator %w[--audited-changes-column-type jsonb]
21
+
22
+ assert_migration "db/migrate/install_audited.rb" do |content|
23
+ assert_includes(content, "class InstallAudited")
24
+ assert_includes(content, "t.column :audited_changes, :jsonb")
25
+ end
26
+ end
27
+
28
+ test "generate migration with 'json' type for audited_changes column" do
29
+ run_generator %w[--audited-changes-column-type json]
30
+
31
+ assert_migration "db/migrate/install_audited.rb" do |content|
32
+ assert_includes(content, "class InstallAudited")
33
+ assert_includes(content, "t.column :audited_changes, :json")
34
+ end
35
+ end
36
+
37
+ test "generate migration with 'string' type for user_id column" do
38
+ run_generator %w[--audited-user-id-column-type string]
39
+
40
+ assert_migration "db/migrate/install_audited.rb" do |content|
41
+ assert_includes(content, "class InstallAudited")
42
+ assert_includes(content, "t.column :user_id, :string")
43
+ end
44
+ end
45
+
46
+ test "generate migration with 'uuid' type for user_id column" do
47
+ run_generator %w[--audited-user-id-column-type uuid]
48
+
49
+ assert_migration "db/migrate/install_audited.rb" do |content|
50
+ assert_includes(content, "class InstallAudited")
51
+ assert_includes(content, "t.column :user_id, :uuid")
52
+ end
53
+ end
54
+
55
+ test "generate migration with correct AR migration parent" do
56
+ run_generator
57
+
58
+ assert_migration "db/migrate/install_audited.rb" do |content|
59
+ assert_includes(content, "class InstallAudited < ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]\n")
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,18 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+
3
+ $LOAD_PATH.unshift File.dirname(__FILE__)
4
+
5
+ require File.expand_path("../../spec/rails_app/config/environment", __FILE__)
6
+ require "rails/test_help"
7
+
8
+ require "audited"
9
+
10
+ class ActiveSupport::TestCase
11
+ setup do
12
+ ActiveRecord::Migration.verbose = false
13
+ end
14
+
15
+ def load_schema(version)
16
+ load File.dirname(__FILE__) + "/db/version_#{version}.rb"
17
+ end
18
+ end
@@ -0,0 +1,97 @@
1
+ require "test_helper"
2
+
3
+ require "generators/audited/upgrade_generator"
4
+
5
+ class UpgradeGeneratorTest < Rails::Generators::TestCase
6
+ destination File.expand_path("../../tmp", __FILE__)
7
+ setup :prepare_destination
8
+ tests Audited::Generators::UpgradeGenerator
9
+ self.use_transactional_tests = false
10
+
11
+ test "should add 'comment' to audits table" do
12
+ load_schema 1
13
+
14
+ run_generator %w[upgrade]
15
+
16
+ assert_migration "db/migrate/add_comment_to_audits.rb" do |content|
17
+ assert_match(/add_column :audits, :comment, :string/, content)
18
+ end
19
+
20
+ assert_migration "db/migrate/rename_changes_to_audited_changes.rb"
21
+ end
22
+
23
+ test "should rename 'changes' to 'audited_changes'" do
24
+ load_schema 2
25
+
26
+ run_generator %w[upgrade]
27
+
28
+ assert_no_migration "db/migrate/add_comment_to_audits.rb"
29
+
30
+ assert_migration "db/migrate/rename_changes_to_audited_changes.rb" do |content|
31
+ assert_match(/rename_column :audits, :changes, :audited_changes/, content)
32
+ end
33
+ end
34
+
35
+ test "should add a 'remote_address' to audits table" do
36
+ load_schema 3
37
+
38
+ run_generator %w[upgrade]
39
+
40
+ assert_migration "db/migrate/add_remote_address_to_audits.rb" do |content|
41
+ assert_match(/add_column :audits, :remote_address, :string/, content)
42
+ end
43
+ end
44
+
45
+ test "should add 'association_id' and 'association_type' to audits table" do
46
+ load_schema 4
47
+
48
+ run_generator %w[upgrade]
49
+
50
+ assert_migration "db/migrate/add_association_to_audits.rb" do |content|
51
+ assert_match(/add_column :audits, :association_id, :integer/, content)
52
+ assert_match(/add_column :audits, :association_type, :string/, content)
53
+ end
54
+ end
55
+
56
+ test "should rename 'association_id' to 'associated_id' and 'association_type' to 'associated_type'" do
57
+ load_schema 5
58
+
59
+ run_generator %w[upgrade]
60
+
61
+ assert_migration "db/migrate/rename_association_to_associated.rb" do |content|
62
+ assert_match(/rename_column :audits, :association_id, :associated_id/, content)
63
+ assert_match(/rename_column :audits, :association_type, :associated_type/, content)
64
+ end
65
+ end
66
+
67
+ test "should add 'request_uuid' to audits table" do
68
+ load_schema 6
69
+
70
+ run_generator %w[upgrade]
71
+
72
+ assert_migration "db/migrate/add_request_uuid_to_audits.rb" do |content|
73
+ assert_match(/add_column :audits, :request_uuid, :string/, content)
74
+ assert_match(/add_index :audits, :request_uuid/, content)
75
+ end
76
+ end
77
+
78
+ test "should add 'version' to auditable_index" do
79
+ load_schema 6
80
+
81
+ run_generator %w[upgrade]
82
+
83
+ assert_migration "db/migrate/add_version_to_auditable_index.rb" do |content|
84
+ assert_match(/add_index :audits, \[:auditable_type, :auditable_id, :version\]/, content)
85
+ end
86
+ end
87
+
88
+ test "generate migration with correct AR migration parent" do
89
+ load_schema 1
90
+
91
+ run_generator %w[upgrade]
92
+
93
+ assert_migration "db/migrate/add_comment_to_audits.rb" do |content|
94
+ assert_includes(content, "class AddCommentToAudits < ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]\n")
95
+ end
96
+ end
97
+ end
metadata ADDED
@@ -0,0 +1,260 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: velocity_audited
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.1.3
5
+ platform: ruby
6
+ authors:
7
+ - Brandon Keepers
8
+ - Kenneth Kalmer
9
+ - Daniel Morrison
10
+ - Brian Ryckbost
11
+ - Steve Richert
12
+ - Ryan Glover
13
+ - Kunal Mittal
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+ date: 2021-12-29 00:00:00.000000000 Z
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: activerecord
21
+ requirement: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '5.0'
26
+ - - "<"
27
+ - !ruby/object:Gem::Version
28
+ version: '7.1'
29
+ type: :runtime
30
+ prerelease: false
31
+ version_requirements: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '5.0'
36
+ - - "<"
37
+ - !ruby/object:Gem::Version
38
+ version: '7.1'
39
+ - !ruby/object:Gem::Dependency
40
+ name: appraisal
41
+ requirement: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: rails
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '5.0'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '7.1'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '5.0'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '7.1'
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec-rails
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: standard
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ - !ruby/object:Gem::Dependency
102
+ name: single_cov
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: sqlite3
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '1.3'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '1.3'
129
+ - !ruby/object:Gem::Dependency
130
+ name: mysql2
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: 0.3.20
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 0.3.20
143
+ - !ruby/object:Gem::Dependency
144
+ name: pg
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0.18'
150
+ - - "<"
151
+ - !ruby/object:Gem::Version
152
+ version: '2.0'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0.18'
160
+ - - "<"
161
+ - !ruby/object:Gem::Version
162
+ version: '2.0'
163
+ description: Log all changes to your models
164
+ email: kunal@velocity.in
165
+ executables: []
166
+ extensions: []
167
+ extra_rdoc_files: []
168
+ files:
169
+ - ".github/workflows/ci.yml"
170
+ - ".gitignore"
171
+ - ".standard.yml"
172
+ - ".yardopts"
173
+ - Appraisals
174
+ - CHANGELOG.md
175
+ - Gemfile
176
+ - LICENSE
177
+ - README.md
178
+ - Rakefile
179
+ - gemfiles/rails50.gemfile
180
+ - gemfiles/rails51.gemfile
181
+ - gemfiles/rails52.gemfile
182
+ - gemfiles/rails60.gemfile
183
+ - gemfiles/rails61.gemfile
184
+ - gemfiles/rails70.gemfile
185
+ - lib/audited-rspec.rb
186
+ - lib/audited.rb
187
+ - lib/audited/audit.rb
188
+ - lib/audited/auditor.rb
189
+ - lib/audited/railtie.rb
190
+ - lib/audited/rspec_matchers.rb
191
+ - lib/audited/sweeper.rb
192
+ - lib/audited/version.rb
193
+ - lib/generators/audited/install_generator.rb
194
+ - lib/generators/audited/migration.rb
195
+ - lib/generators/audited/migration_helper.rb
196
+ - lib/generators/audited/templates/add_association_to_audits.rb
197
+ - lib/generators/audited/templates/add_comment_to_audits.rb
198
+ - lib/generators/audited/templates/add_remote_address_to_audits.rb
199
+ - lib/generators/audited/templates/add_request_uuid_to_audits.rb
200
+ - lib/generators/audited/templates/add_version_to_auditable_index.rb
201
+ - lib/generators/audited/templates/install.rb
202
+ - lib/generators/audited/templates/rename_association_to_associated.rb
203
+ - lib/generators/audited/templates/rename_changes_to_audited_changes.rb
204
+ - lib/generators/audited/templates/rename_parent_to_association.rb
205
+ - lib/generators/audited/templates/revert_polymorphic_indexes_order.rb
206
+ - lib/generators/audited/upgrade_generator.rb
207
+ - lib/velocity_audited.rb
208
+ - spec/audited/audit_spec.rb
209
+ - spec/audited/auditor_spec.rb
210
+ - spec/audited/rspec_matchers_spec.rb
211
+ - spec/audited/sweeper_spec.rb
212
+ - spec/audited_spec.rb
213
+ - spec/audited_spec_helpers.rb
214
+ - spec/rails_app/app/assets/config/manifest.js
215
+ - spec/rails_app/config/application.rb
216
+ - spec/rails_app/config/database.yml
217
+ - spec/rails_app/config/environment.rb
218
+ - spec/rails_app/config/environments/test.rb
219
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
220
+ - spec/rails_app/config/initializers/inflections.rb
221
+ - spec/rails_app/config/initializers/secret_token.rb
222
+ - spec/rails_app/config/routes.rb
223
+ - spec/spec_helper.rb
224
+ - spec/support/active_record/models.rb
225
+ - spec/support/active_record/postgres/1_change_audited_changes_type_to_json.rb
226
+ - spec/support/active_record/postgres/2_change_audited_changes_type_to_jsonb.rb
227
+ - spec/support/active_record/schema.rb
228
+ - test/db/version_1.rb
229
+ - test/db/version_2.rb
230
+ - test/db/version_3.rb
231
+ - test/db/version_4.rb
232
+ - test/db/version_5.rb
233
+ - test/db/version_6.rb
234
+ - test/install_generator_test.rb
235
+ - test/test_helper.rb
236
+ - test/upgrade_generator_test.rb
237
+ homepage: https://github.com/Velocity-Engineering/audited
238
+ licenses:
239
+ - MIT
240
+ metadata: {}
241
+ post_install_message:
242
+ rdoc_options: []
243
+ require_paths:
244
+ - lib
245
+ required_ruby_version: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ version: 2.3.0
250
+ required_rubygems_version: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ requirements: []
256
+ rubygems_version: 3.2.3
257
+ signing_key:
258
+ specification_version: 4
259
+ summary: Log all changes to your models
260
+ test_files: []