paper_trail 11.0.0 → 12.2.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.
- checksums.yaml +4 -4
- data/LICENSE +20 -0
- data/lib/generators/paper_trail/install/install_generator.rb +6 -4
- data/lib/generators/paper_trail/install/templates/create_versions.rb.erb +3 -1
- data/lib/generators/paper_trail/update_item_subtype/update_item_subtype_generator.rb +4 -2
- data/lib/paper_trail/attribute_serializers/attribute_serializer_factory.rb +24 -10
- data/lib/paper_trail/attribute_serializers/cast_attribute_serializer.rb +10 -10
- data/lib/paper_trail/compatibility.rb +2 -2
- data/lib/paper_trail/errors.rb +33 -0
- data/lib/paper_trail/events/base.rb +60 -63
- data/lib/paper_trail/events/destroy.rb +1 -1
- data/lib/paper_trail/events/update.rb +9 -4
- data/lib/paper_trail/frameworks/active_record.rb +9 -2
- data/lib/paper_trail/frameworks/rails/controller.rb +0 -6
- data/lib/paper_trail/frameworks/rails/railtie.rb +30 -0
- data/lib/paper_trail/frameworks/rails.rb +1 -2
- data/lib/paper_trail/has_paper_trail.rb +1 -1
- data/lib/paper_trail/model_config.rb +51 -43
- data/lib/paper_trail/queries/versions/where_attribute_changes.rb +50 -0
- data/lib/paper_trail/queries/versions/where_object.rb +1 -1
- data/lib/paper_trail/queries/versions/where_object_changes.rb +8 -13
- data/lib/paper_trail/queries/versions/where_object_changes_from.rb +57 -0
- data/lib/paper_trail/queries/versions/where_object_changes_to.rb +57 -0
- data/lib/paper_trail/record_trail.rb +3 -5
- data/lib/paper_trail/reifier.rb +27 -10
- data/lib/paper_trail/request.rb +0 -3
- data/lib/paper_trail/serializers/json.rb +0 -10
- data/lib/paper_trail/serializers/yaml.rb +1 -13
- data/lib/paper_trail/type_serializers/postgres_array_serializer.rb +1 -14
- data/lib/paper_trail/version_concern.rb +64 -21
- data/lib/paper_trail/version_number.rb +2 -2
- data/lib/paper_trail.rb +17 -40
- metadata +102 -33
- data/lib/paper_trail/frameworks/rails/engine.rb +0 -45
@@ -1,8 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "paper_trail/attribute_serializers/object_changes_attribute"
|
4
|
+
require "paper_trail/queries/versions/where_attribute_changes"
|
4
5
|
require "paper_trail/queries/versions/where_object"
|
5
6
|
require "paper_trail/queries/versions/where_object_changes"
|
7
|
+
require "paper_trail/queries/versions/where_object_changes_from"
|
8
|
+
require "paper_trail/queries/versions/where_object_changes_to"
|
6
9
|
|
7
10
|
module PaperTrail
|
8
11
|
# Originally, PaperTrail did not provide this module, and all of this
|
@@ -13,22 +16,13 @@ module PaperTrail
|
|
13
16
|
extend ::ActiveSupport::Concern
|
14
17
|
|
15
18
|
included do
|
16
|
-
|
17
|
-
belongs_to :item, polymorphic: true, optional: true
|
18
|
-
else
|
19
|
-
belongs_to :item, polymorphic: true
|
20
|
-
end
|
21
|
-
|
19
|
+
belongs_to :item, polymorphic: true, optional: true, inverse_of: false
|
22
20
|
validates_presence_of :event
|
23
21
|
after_create :enforce_version_limit!
|
24
22
|
end
|
25
23
|
|
26
24
|
# :nodoc:
|
27
25
|
module ClassMethods
|
28
|
-
def item_subtype_column_present?
|
29
|
-
column_names.include?("item_subtype")
|
30
|
-
end
|
31
|
-
|
32
26
|
def with_item_keys(item_type, item_id)
|
33
27
|
where item_type: item_type, item_id: item_id
|
34
28
|
end
|
@@ -46,7 +40,7 @@ module PaperTrail
|
|
46
40
|
end
|
47
41
|
|
48
42
|
def not_creates
|
49
|
-
where
|
43
|
+
where.not(event: "create")
|
50
44
|
end
|
51
45
|
|
52
46
|
def between(start_time, end_time)
|
@@ -64,6 +58,18 @@ module PaperTrail
|
|
64
58
|
end
|
65
59
|
end
|
66
60
|
|
61
|
+
# Given an attribute like `"name"`, query the `versions.object_changes`
|
62
|
+
# column for any changes that modified the provided attribute.
|
63
|
+
#
|
64
|
+
# @api public
|
65
|
+
def where_attribute_changes(attribute)
|
66
|
+
unless attribute.is_a?(String) || attribute.is_a?(Symbol)
|
67
|
+
raise ArgumentError, "expected to receive a String or Symbol"
|
68
|
+
end
|
69
|
+
|
70
|
+
Queries::Versions::WhereAttributeChanges.new(self, attribute).execute
|
71
|
+
end
|
72
|
+
|
67
73
|
# Given a hash of attributes like `name: 'Joan'`, query the
|
68
74
|
# `versions.objects` column.
|
69
75
|
#
|
@@ -120,6 +126,36 @@ module PaperTrail
|
|
120
126
|
Queries::Versions::WhereObjectChanges.new(self, args).execute
|
121
127
|
end
|
122
128
|
|
129
|
+
# Given a hash of attributes like `name: 'Joan'`, query the
|
130
|
+
# `versions.objects_changes` column for changes where the version changed
|
131
|
+
# from the hash of attributes to other values.
|
132
|
+
#
|
133
|
+
# This is useful for finding versions where the attribute started with a
|
134
|
+
# known value and changed to something else. This is in comparison to
|
135
|
+
# `where_object_changes` which will find both the changes before and
|
136
|
+
# after.
|
137
|
+
#
|
138
|
+
# @api public
|
139
|
+
def where_object_changes_from(args = {})
|
140
|
+
raise ArgumentError, "expected to receive a Hash" unless args.is_a?(Hash)
|
141
|
+
Queries::Versions::WhereObjectChangesFrom.new(self, args).execute
|
142
|
+
end
|
143
|
+
|
144
|
+
# Given a hash of attributes like `name: 'Joan'`, query the
|
145
|
+
# `versions.objects_changes` column for changes where the version changed
|
146
|
+
# to the hash of attributes from other values.
|
147
|
+
#
|
148
|
+
# This is useful for finding versions where the attribute started with an
|
149
|
+
# unknown value and changed to a known value. This is in comparison to
|
150
|
+
# `where_object_changes` which will find both the changes before and
|
151
|
+
# after.
|
152
|
+
#
|
153
|
+
# @api public
|
154
|
+
def where_object_changes_to(args = {})
|
155
|
+
raise ArgumentError, "expected to receive a Hash" unless args.is_a?(Hash)
|
156
|
+
Queries::Versions::WhereObjectChangesTo.new(self, args).execute
|
157
|
+
end
|
158
|
+
|
123
159
|
def primary_key_is_int?
|
124
160
|
@primary_key_is_int ||= columns_hash[primary_key].type == :integer
|
125
161
|
rescue StandardError # TODO: Rescue something more specific
|
@@ -226,7 +262,7 @@ module PaperTrail
|
|
226
262
|
#
|
227
263
|
def reify(options = {})
|
228
264
|
unless self.class.column_names.include? "object"
|
229
|
-
raise "reify
|
265
|
+
raise Error, "reify requires an object column"
|
230
266
|
end
|
231
267
|
return nil if object.nil?
|
232
268
|
::PaperTrail::Reifier.reify(self, options)
|
@@ -273,7 +309,7 @@ module PaperTrail
|
|
273
309
|
|
274
310
|
# @api private
|
275
311
|
def load_changeset
|
276
|
-
if PaperTrail.config.object_changes_adapter
|
312
|
+
if PaperTrail.config.object_changes_adapter.respond_to?(:load_changeset)
|
277
313
|
return PaperTrail.config.object_changes_adapter.load_changeset(self)
|
278
314
|
end
|
279
315
|
|
@@ -339,16 +375,23 @@ module PaperTrail
|
|
339
375
|
# The version limit can be global or per-model.
|
340
376
|
#
|
341
377
|
# @api private
|
342
|
-
#
|
343
|
-
# TODO: Duplication: similar `constantize` in Reifier#version_reification_class
|
344
378
|
def version_limit
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
379
|
+
klass = item.class
|
380
|
+
if limit_option?(klass)
|
381
|
+
klass.paper_trail_options[:limit]
|
382
|
+
elsif base_class_limit_option?(klass)
|
383
|
+
klass.base_class.paper_trail_options[:limit]
|
384
|
+
else
|
385
|
+
PaperTrail.config.version_limit
|
350
386
|
end
|
351
|
-
|
387
|
+
end
|
388
|
+
|
389
|
+
def limit_option?(klass)
|
390
|
+
klass.respond_to?(:paper_trail_options) && klass.paper_trail_options.key?(:limit)
|
391
|
+
end
|
392
|
+
|
393
|
+
def base_class_limit_option?(klass)
|
394
|
+
klass.respond_to?(:base_class) && limit_option?(klass.base_class)
|
352
395
|
end
|
353
396
|
end
|
354
397
|
end
|
@@ -7,8 +7,8 @@ module PaperTrail
|
|
7
7
|
# because of this confusion, but it's not worth the breaking change.
|
8
8
|
# People are encouraged to use `PaperTrail.gem_version` instead.
|
9
9
|
module VERSION
|
10
|
-
MAJOR =
|
11
|
-
MINOR =
|
10
|
+
MAJOR = 12
|
11
|
+
MINOR = 2
|
12
12
|
TINY = 0
|
13
13
|
|
14
14
|
# Set PRE to nil unless it's a pre-release (beta, rc, etc.)
|
data/lib/paper_trail.rb
CHANGED
@@ -8,40 +8,26 @@
|
|
8
8
|
# can revisit this decision.
|
9
9
|
require "active_support/all"
|
10
10
|
|
11
|
-
|
12
|
-
# all of those files, but it seems easier to troubleshoot if we just make sure
|
13
|
-
# AR is loaded here before loading *any* of PT. See discussion of
|
14
|
-
# performance/simplicity tradeoff for activesupport above.
|
15
|
-
require "active_record"
|
16
|
-
|
17
|
-
require "request_store"
|
11
|
+
require "paper_trail/errors"
|
18
12
|
require "paper_trail/cleaner"
|
19
13
|
require "paper_trail/compatibility"
|
20
14
|
require "paper_trail/config"
|
21
|
-
require "paper_trail/has_paper_trail"
|
22
15
|
require "paper_trail/record_history"
|
23
|
-
require "paper_trail/reifier"
|
24
16
|
require "paper_trail/request"
|
25
|
-
require "paper_trail/version_concern"
|
26
17
|
require "paper_trail/version_number"
|
27
18
|
require "paper_trail/serializers/json"
|
28
|
-
require "paper_trail/serializers/yaml"
|
29
19
|
|
30
20
|
# An ActiveRecord extension that tracks changes to your models, for auditing or
|
31
21
|
# versioning.
|
32
22
|
module PaperTrail
|
33
|
-
E_RAILS_NOT_LOADED = <<-EOS.squish.freeze
|
34
|
-
PaperTrail has been loaded too early, before rails is loaded. This can
|
35
|
-
happen when another gem defines the ::Rails namespace, then PT is loaded,
|
36
|
-
all before rails is loaded. You may want to reorder your Gemfile, or defer
|
37
|
-
the loading of PT by using `require: false` and a manual require elsewhere.
|
38
|
-
EOS
|
39
23
|
E_TIMESTAMP_FIELD_CONFIG = <<-EOS.squish.freeze
|
40
24
|
PaperTrail.timestamp_field= has been removed, without replacement. It is no
|
41
25
|
longer configurable. The timestamp column in the versions table must now be
|
42
26
|
named created_at.
|
43
27
|
EOS
|
44
28
|
|
29
|
+
RAILS_GTE_7_0 = ::ActiveRecord.gem_version >= ::Gem::Version.new("7.0.0")
|
30
|
+
|
45
31
|
extend PaperTrail::Cleaner
|
46
32
|
|
47
33
|
class << self
|
@@ -85,7 +71,7 @@ module PaperTrail
|
|
85
71
|
#
|
86
72
|
# @api public
|
87
73
|
def request(options = nil, &block)
|
88
|
-
if options.nil? && !
|
74
|
+
if options.nil? && !block
|
89
75
|
Request
|
90
76
|
else
|
91
77
|
Request.with(options, &block)
|
@@ -95,7 +81,7 @@ module PaperTrail
|
|
95
81
|
# Set the field which records when a version was created.
|
96
82
|
# @api public
|
97
83
|
def timestamp_field=(_field_name)
|
98
|
-
raise
|
84
|
+
raise Error, E_TIMESTAMP_FIELD_CONFIG
|
99
85
|
end
|
100
86
|
|
101
87
|
# Set the PaperTrail serializer. This setting affects all threads.
|
@@ -126,27 +112,18 @@ module PaperTrail
|
|
126
112
|
end
|
127
113
|
end
|
128
114
|
|
129
|
-
#
|
130
|
-
#
|
131
|
-
#
|
132
|
-
#
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
#
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
if defined?(::Rails.application)
|
142
|
-
require "paper_trail/frameworks/rails"
|
143
|
-
else
|
144
|
-
::Kernel.warn(::PaperTrail::E_RAILS_NOT_LOADED)
|
145
|
-
end
|
115
|
+
# PT is built on ActiveRecord, but does not require Rails. If Rails is defined,
|
116
|
+
# our Railtie makes sure not to load the AR-dependent parts of PT until AR is
|
117
|
+
# ready. A typical Rails `application.rb` has:
|
118
|
+
#
|
119
|
+
# ```
|
120
|
+
# require 'rails/all' # Defines `Rails`
|
121
|
+
# Bundler.require(*Rails.groups) # require 'paper_trail' (this file)
|
122
|
+
# ```
|
123
|
+
#
|
124
|
+
# Non-rails applications should take similar care to load AR before PT.
|
125
|
+
if defined?(Rails)
|
126
|
+
require "paper_trail/frameworks/rails"
|
146
127
|
else
|
147
128
|
require "paper_trail/frameworks/active_record"
|
148
129
|
end
|
149
|
-
|
150
|
-
if defined?(::ActiveRecord)
|
151
|
-
::PaperTrail::Compatibility.check_activerecord(::ActiveRecord.gem_version)
|
152
|
-
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paper_trail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 12.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Stewart
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-01-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -46,42 +46,42 @@ dependencies:
|
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
49
|
+
version: 2.4.1
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: 2.4.1
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: byebug
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '11.
|
63
|
+
version: '11.1'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: '11.
|
70
|
+
version: '11.1'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: ffaker
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '2.
|
77
|
+
version: '2.20'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '2.
|
84
|
+
version: '2.20'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: generator_spec
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,14 +102,28 @@ dependencies:
|
|
102
102
|
requirements:
|
103
103
|
- - "~>"
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: 0.
|
105
|
+
version: 1.0.0
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
110
|
- - "~>"
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.
|
112
|
+
version: 1.0.0
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rails
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '5.2'
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '5.2'
|
113
127
|
- !ruby/object:Gem::Dependency
|
114
128
|
name: rake
|
115
129
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,90 +144,140 @@ dependencies:
|
|
130
144
|
requirements:
|
131
145
|
- - "~>"
|
132
146
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
147
|
+
version: 5.0.2
|
134
148
|
type: :development
|
135
149
|
prerelease: false
|
136
150
|
version_requirements: !ruby/object:Gem::Requirement
|
137
151
|
requirements:
|
138
152
|
- - "~>"
|
139
153
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
154
|
+
version: 5.0.2
|
141
155
|
- !ruby/object:Gem::Dependency
|
142
156
|
name: rubocop
|
143
157
|
requirement: !ruby/object:Gem::Requirement
|
144
158
|
requirements:
|
145
159
|
- - "~>"
|
146
160
|
- !ruby/object:Gem::Version
|
147
|
-
version:
|
161
|
+
version: 1.22.2
|
162
|
+
type: :development
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - "~>"
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: 1.22.2
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
name: rubocop-packaging
|
171
|
+
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - "~>"
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: 0.5.1
|
148
176
|
type: :development
|
149
177
|
prerelease: false
|
150
178
|
version_requirements: !ruby/object:Gem::Requirement
|
151
179
|
requirements:
|
152
180
|
- - "~>"
|
153
181
|
- !ruby/object:Gem::Version
|
154
|
-
version: 0.
|
182
|
+
version: 0.5.1
|
155
183
|
- !ruby/object:Gem::Dependency
|
156
184
|
name: rubocop-performance
|
157
185
|
requirement: !ruby/object:Gem::Requirement
|
158
186
|
requirements:
|
159
187
|
- - "~>"
|
160
188
|
- !ruby/object:Gem::Version
|
161
|
-
version: 1.
|
189
|
+
version: 1.11.5
|
162
190
|
type: :development
|
163
191
|
prerelease: false
|
164
192
|
version_requirements: !ruby/object:Gem::Requirement
|
165
193
|
requirements:
|
166
194
|
- - "~>"
|
167
195
|
- !ruby/object:Gem::Version
|
168
|
-
version: 1.
|
196
|
+
version: 1.11.5
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: rubocop-rails
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - "~>"
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: 2.12.4
|
204
|
+
type: :development
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - "~>"
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: 2.12.4
|
211
|
+
- !ruby/object:Gem::Dependency
|
212
|
+
name: rubocop-rake
|
213
|
+
requirement: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - "~>"
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: 0.6.0
|
218
|
+
type: :development
|
219
|
+
prerelease: false
|
220
|
+
version_requirements: !ruby/object:Gem::Requirement
|
221
|
+
requirements:
|
222
|
+
- - "~>"
|
223
|
+
- !ruby/object:Gem::Version
|
224
|
+
version: 0.6.0
|
169
225
|
- !ruby/object:Gem::Dependency
|
170
226
|
name: rubocop-rspec
|
171
227
|
requirement: !ruby/object:Gem::Requirement
|
172
228
|
requirements:
|
173
229
|
- - "~>"
|
174
230
|
- !ruby/object:Gem::Version
|
175
|
-
version:
|
231
|
+
version: 2.5.0
|
176
232
|
type: :development
|
177
233
|
prerelease: false
|
178
234
|
version_requirements: !ruby/object:Gem::Requirement
|
179
235
|
requirements:
|
180
236
|
- - "~>"
|
181
237
|
- !ruby/object:Gem::Version
|
182
|
-
version:
|
238
|
+
version: 2.5.0
|
239
|
+
- !ruby/object:Gem::Dependency
|
240
|
+
name: simplecov
|
241
|
+
requirement: !ruby/object:Gem::Requirement
|
242
|
+
requirements:
|
243
|
+
- - "~>"
|
244
|
+
- !ruby/object:Gem::Version
|
245
|
+
version: 0.21.2
|
246
|
+
type: :development
|
247
|
+
prerelease: false
|
248
|
+
version_requirements: !ruby/object:Gem::Requirement
|
249
|
+
requirements:
|
250
|
+
- - "~>"
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: 0.21.2
|
183
253
|
- !ruby/object:Gem::Dependency
|
184
254
|
name: mysql2
|
185
255
|
requirement: !ruby/object:Gem::Requirement
|
186
256
|
requirements:
|
187
257
|
- - "~>"
|
188
258
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
259
|
+
version: 0.5.3
|
190
260
|
type: :development
|
191
261
|
prerelease: false
|
192
262
|
version_requirements: !ruby/object:Gem::Requirement
|
193
263
|
requirements:
|
194
264
|
- - "~>"
|
195
265
|
- !ruby/object:Gem::Version
|
196
|
-
version:
|
266
|
+
version: 0.5.3
|
197
267
|
- !ruby/object:Gem::Dependency
|
198
268
|
name: pg
|
199
269
|
requirement: !ruby/object:Gem::Requirement
|
200
270
|
requirements:
|
201
|
-
- - "
|
202
|
-
- !ruby/object:Gem::Version
|
203
|
-
version: '0.18'
|
204
|
-
- - "<"
|
271
|
+
- - "~>"
|
205
272
|
- !ruby/object:Gem::Version
|
206
|
-
version: '2
|
273
|
+
version: '1.2'
|
207
274
|
type: :development
|
208
275
|
prerelease: false
|
209
276
|
version_requirements: !ruby/object:Gem::Requirement
|
210
277
|
requirements:
|
211
|
-
- - "
|
212
|
-
- !ruby/object:Gem::Version
|
213
|
-
version: '0.18'
|
214
|
-
- - "<"
|
278
|
+
- - "~>"
|
215
279
|
- !ruby/object:Gem::Version
|
216
|
-
version: '2
|
280
|
+
version: '1.2'
|
217
281
|
- !ruby/object:Gem::Dependency
|
218
282
|
name: sqlite3
|
219
283
|
requirement: !ruby/object:Gem::Requirement
|
@@ -237,6 +301,7 @@ executables: []
|
|
237
301
|
extensions: []
|
238
302
|
extra_rdoc_files: []
|
239
303
|
files:
|
304
|
+
- LICENSE
|
240
305
|
- lib/generators/paper_trail/install/USAGE
|
241
306
|
- lib/generators/paper_trail/install/install_generator.rb
|
242
307
|
- lib/generators/paper_trail/install/templates/add_object_changes_to_versions.rb.erb
|
@@ -254,6 +319,7 @@ files:
|
|
254
319
|
- lib/paper_trail/cleaner.rb
|
255
320
|
- lib/paper_trail/compatibility.rb
|
256
321
|
- lib/paper_trail/config.rb
|
322
|
+
- lib/paper_trail/errors.rb
|
257
323
|
- lib/paper_trail/events/base.rb
|
258
324
|
- lib/paper_trail/events/create.rb
|
259
325
|
- lib/paper_trail/events/destroy.rb
|
@@ -263,13 +329,16 @@ files:
|
|
263
329
|
- lib/paper_trail/frameworks/cucumber.rb
|
264
330
|
- lib/paper_trail/frameworks/rails.rb
|
265
331
|
- lib/paper_trail/frameworks/rails/controller.rb
|
266
|
-
- lib/paper_trail/frameworks/rails/
|
332
|
+
- lib/paper_trail/frameworks/rails/railtie.rb
|
267
333
|
- lib/paper_trail/frameworks/rspec.rb
|
268
334
|
- lib/paper_trail/frameworks/rspec/helpers.rb
|
269
335
|
- lib/paper_trail/has_paper_trail.rb
|
270
336
|
- lib/paper_trail/model_config.rb
|
337
|
+
- lib/paper_trail/queries/versions/where_attribute_changes.rb
|
271
338
|
- lib/paper_trail/queries/versions/where_object.rb
|
272
339
|
- lib/paper_trail/queries/versions/where_object_changes.rb
|
340
|
+
- lib/paper_trail/queries/versions/where_object_changes_from.rb
|
341
|
+
- lib/paper_trail/queries/versions/where_object_changes_to.rb
|
273
342
|
- lib/paper_trail/record_history.rb
|
274
343
|
- lib/paper_trail/record_trail.rb
|
275
344
|
- lib/paper_trail/reifier.rb
|
@@ -291,14 +360,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
291
360
|
requirements:
|
292
361
|
- - ">="
|
293
362
|
- !ruby/object:Gem::Version
|
294
|
-
version: 2.
|
363
|
+
version: 2.6.0
|
295
364
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
296
365
|
requirements:
|
297
366
|
- - ">="
|
298
367
|
- !ruby/object:Gem::Version
|
299
368
|
version: 1.3.6
|
300
369
|
requirements: []
|
301
|
-
rubygems_version: 3.
|
370
|
+
rubygems_version: 3.2.22
|
302
371
|
signing_key:
|
303
372
|
specification_version: 4
|
304
373
|
summary: Track changes to your models.
|
@@ -1,45 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module PaperTrail
|
4
|
-
module Rails
|
5
|
-
# See http://guides.rubyonrails.org/engines.html
|
6
|
-
class Engine < ::Rails::Engine
|
7
|
-
DPR_CONFIG_ENABLED = <<~EOS.squish.freeze
|
8
|
-
The rails configuration option config.paper_trail.enabled is deprecated.
|
9
|
-
Please use PaperTrail.enabled= instead. People were getting confused
|
10
|
-
that PT has both, specifically regarding *when* each was happening. If
|
11
|
-
you'd like to keep config.paper_trail, join the discussion at
|
12
|
-
https://github.com/paper-trail-gem/paper_trail/pull/1176
|
13
|
-
EOS
|
14
|
-
private_constant :DPR_CONFIG_ENABLED
|
15
|
-
DPR_RUDELY_ENABLING = <<~EOS.squish.freeze
|
16
|
-
At some point early in the rails boot process, you have set
|
17
|
-
PaperTrail.enabled = false. PT's rails engine is now overriding your
|
18
|
-
setting, and setting it to true. We're not sure why, but this is how PT
|
19
|
-
has worked since 5.0, when the config.paper_trail.enabled option was
|
20
|
-
introduced. This is now deprecated. In the future, PT will not override
|
21
|
-
your setting. See
|
22
|
-
https://github.com/paper-trail-gem/paper_trail/pull/1176 for discussion.
|
23
|
-
EOS
|
24
|
-
private_constant :DPR_RUDELY_ENABLING
|
25
|
-
|
26
|
-
paths["app/models"] << "lib/paper_trail/frameworks/active_record/models"
|
27
|
-
|
28
|
-
# --- Begin deprecated section ---
|
29
|
-
config.paper_trail = ActiveSupport::OrderedOptions.new
|
30
|
-
initializer "paper_trail.initialisation" do |app|
|
31
|
-
enable = app.config.paper_trail[:enabled]
|
32
|
-
if enable.nil?
|
33
|
-
unless PaperTrail.enabled?
|
34
|
-
::ActiveSupport::Deprecation.warn(DPR_RUDELY_ENABLING)
|
35
|
-
PaperTrail.enabled = true
|
36
|
-
end
|
37
|
-
else
|
38
|
-
::ActiveSupport::Deprecation.warn(DPR_CONFIG_ENABLED)
|
39
|
-
PaperTrail.enabled = enable
|
40
|
-
end
|
41
|
-
end
|
42
|
-
# --- End deprecated section ---
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|