tangledwires-audited 6.0.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 (34) hide show
  1. checksums.yaml +7 -0
  2. data/Appraisals +37 -0
  3. data/CHANGELOG.md +539 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +19 -0
  6. data/README.md +447 -0
  7. data/Rakefile +16 -0
  8. data/audited.gemspec +38 -0
  9. data/lib/audited/audit.rb +204 -0
  10. data/lib/audited/audit_associate.rb +8 -0
  11. data/lib/audited/auditor.rb +564 -0
  12. data/lib/audited/railtie.rb +16 -0
  13. data/lib/audited/rspec_matchers.rb +228 -0
  14. data/lib/audited/sweeper.rb +42 -0
  15. data/lib/audited/version.rb +5 -0
  16. data/lib/audited-rspec.rb +6 -0
  17. data/lib/audited.rb +60 -0
  18. data/lib/generators/audited/install_generator.rb +27 -0
  19. data/lib/generators/audited/migration.rb +25 -0
  20. data/lib/generators/audited/migration_helper.rb +11 -0
  21. data/lib/generators/audited/templates/add_association_to_audits.rb +13 -0
  22. data/lib/generators/audited/templates/add_comment_to_audits.rb +11 -0
  23. data/lib/generators/audited/templates/add_remote_address_to_audits.rb +12 -0
  24. data/lib/generators/audited/templates/add_request_uuid_to_audits.rb +12 -0
  25. data/lib/generators/audited/templates/add_version_to_auditable_index.rb +23 -0
  26. data/lib/generators/audited/templates/create_audit_associates.rb +26 -0
  27. data/lib/generators/audited/templates/install.rb +39 -0
  28. data/lib/generators/audited/templates/rename_association_to_associated.rb +25 -0
  29. data/lib/generators/audited/templates/rename_changes_to_audited_changes.rb +11 -0
  30. data/lib/generators/audited/templates/rename_parent_to_association.rb +13 -0
  31. data/lib/generators/audited/templates/revert_polymorphic_indexes_order.rb +22 -0
  32. data/lib/generators/audited/upgrade_generator.rb +74 -0
  33. data/shell.nix +8 -0
  34. metadata +241 -0
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+ require "rails/generators/migration"
5
+ require "active_record"
6
+ require "rails/generators/active_record"
7
+ require "generators/audited/migration"
8
+ require "generators/audited/migration_helper"
9
+
10
+ module Audited
11
+ module Generators
12
+ class UpgradeGenerator < Rails::Generators::Base
13
+ include Rails::Generators::Migration
14
+ include Audited::Generators::MigrationHelper
15
+ extend Audited::Generators::Migration
16
+
17
+ source_root File.expand_path("../templates", __FILE__)
18
+
19
+ def copy_templates
20
+ migrations_to_be_applied do |m|
21
+ migration_template "#{m}.rb", "db/migrate/#{m}.rb"
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def migrations_to_be_applied
28
+ Audited::Audit.reset_column_information
29
+ columns = Audited::Audit.columns.map(&:name)
30
+ indexes = Audited::Audit.connection.indexes(Audited::Audit.table_name)
31
+
32
+ yield :add_comment_to_audits unless columns.include?("comment")
33
+
34
+ if columns.include?("changes")
35
+ yield :rename_changes_to_audited_changes
36
+ end
37
+
38
+ unless columns.include?("remote_address")
39
+ yield :add_remote_address_to_audits
40
+ end
41
+
42
+ unless columns.include?("request_uuid")
43
+ yield :add_request_uuid_to_audits
44
+ end
45
+
46
+ unless columns.include?("association_id")
47
+ if columns.include?("auditable_parent_id")
48
+ yield :rename_parent_to_association
49
+ else
50
+ unless columns.include?("associated_id")
51
+ yield :add_association_to_audits
52
+ end
53
+ end
54
+ end
55
+
56
+ if columns.include?("association_id")
57
+ yield :rename_association_to_associated
58
+ end
59
+
60
+ if indexes.any? { |i| i.columns == %w[associated_id associated_type] }
61
+ yield :revert_polymorphic_indexes_order
62
+ end
63
+
64
+ if indexes.any? { |i| i.columns == %w[auditable_type auditable_id] }
65
+ yield :add_version_to_auditable_index
66
+ end
67
+
68
+ unless Audited::Audit.connection.table_exists?(Audited::AuditAssociate.table_name)
69
+ yield :create_audit_associates
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
data/shell.nix ADDED
@@ -0,0 +1,8 @@
1
+ { pkgs ? import <nixpkgs> {} }:
2
+
3
+ pkgs.mkShell {
4
+ buildInputs = with pkgs; [
5
+ libyaml
6
+ mariadb-connector-c
7
+ ];
8
+ }
metadata ADDED
@@ -0,0 +1,241 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tangledwires-audited
3
+ version: !ruby/object:Gem::Version
4
+ version: 6.0.0
5
+ platform: ruby
6
+ authors:
7
+ - TangledWires Ltd
8
+ - Brandon Keepers
9
+ - Kenneth Kalmer
10
+ - Daniel Morrison
11
+ - Brian Ryckbost
12
+ - Steve Richert
13
+ - Ryan Glover
14
+ bindir: bin
15
+ cert_chain: []
16
+ date: 1980-01-02 00:00:00.000000000 Z
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: activerecord
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: '7.0'
25
+ - - "<"
26
+ - !ruby/object:Gem::Version
27
+ version: '8.2'
28
+ type: :runtime
29
+ prerelease: false
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '7.0'
35
+ - - "<"
36
+ - !ruby/object:Gem::Version
37
+ version: '8.2'
38
+ - !ruby/object:Gem::Dependency
39
+ name: activesupport
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '7.0'
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: '8.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '7.0'
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: '8.2'
58
+ - !ruby/object:Gem::Dependency
59
+ name: appraisal
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: rails
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '7.0'
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: '8.2'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '7.0'
89
+ - - "<"
90
+ - !ruby/object:Gem::Version
91
+ version: '8.2'
92
+ - !ruby/object:Gem::Dependency
93
+ name: rspec-rails
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ - !ruby/object:Gem::Dependency
107
+ name: standard
108
+ requirement: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ type: :development
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ - !ruby/object:Gem::Dependency
121
+ name: single_cov
122
+ requirement: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ type: :development
128
+ prerelease: false
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ - !ruby/object:Gem::Dependency
135
+ name: sqlite3
136
+ requirement: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: 1.3.6
141
+ type: :development
142
+ prerelease: false
143
+ version_requirements: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 1.3.6
148
+ - !ruby/object:Gem::Dependency
149
+ name: mysql2
150
+ requirement: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 0.3.20
155
+ type: :development
156
+ prerelease: false
157
+ version_requirements: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: 0.3.20
162
+ - !ruby/object:Gem::Dependency
163
+ name: pg
164
+ requirement: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0.18'
169
+ - - "<"
170
+ - !ruby/object:Gem::Version
171
+ version: '2.0'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0.18'
179
+ - - "<"
180
+ - !ruby/object:Gem::Version
181
+ version: '2.0'
182
+ description: Log all changes to your models
183
+ email: support@tangledwires.co.uk
184
+ executables: []
185
+ extensions: []
186
+ extra_rdoc_files: []
187
+ files:
188
+ - Appraisals
189
+ - CHANGELOG.md
190
+ - Gemfile
191
+ - LICENSE
192
+ - README.md
193
+ - Rakefile
194
+ - audited.gemspec
195
+ - lib/audited-rspec.rb
196
+ - lib/audited.rb
197
+ - lib/audited/audit.rb
198
+ - lib/audited/audit_associate.rb
199
+ - lib/audited/auditor.rb
200
+ - lib/audited/railtie.rb
201
+ - lib/audited/rspec_matchers.rb
202
+ - lib/audited/sweeper.rb
203
+ - lib/audited/version.rb
204
+ - lib/generators/audited/install_generator.rb
205
+ - lib/generators/audited/migration.rb
206
+ - lib/generators/audited/migration_helper.rb
207
+ - lib/generators/audited/templates/add_association_to_audits.rb
208
+ - lib/generators/audited/templates/add_comment_to_audits.rb
209
+ - lib/generators/audited/templates/add_remote_address_to_audits.rb
210
+ - lib/generators/audited/templates/add_request_uuid_to_audits.rb
211
+ - lib/generators/audited/templates/add_version_to_auditable_index.rb
212
+ - lib/generators/audited/templates/create_audit_associates.rb
213
+ - lib/generators/audited/templates/install.rb
214
+ - lib/generators/audited/templates/rename_association_to_associated.rb
215
+ - lib/generators/audited/templates/rename_changes_to_audited_changes.rb
216
+ - lib/generators/audited/templates/rename_parent_to_association.rb
217
+ - lib/generators/audited/templates/revert_polymorphic_indexes_order.rb
218
+ - lib/generators/audited/upgrade_generator.rb
219
+ - shell.nix
220
+ homepage: https://github.com/TangledWiresOfficial/audited
221
+ licenses:
222
+ - MIT
223
+ metadata: {}
224
+ rdoc_options: []
225
+ require_paths:
226
+ - lib
227
+ required_ruby_version: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: 2.3.0
232
+ required_rubygems_version: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ requirements: []
238
+ rubygems_version: 4.0.3
239
+ specification_version: 4
240
+ summary: Log all changes to your models
241
+ test_files: []