paper_trail 9.2.0 → 10.0.1

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.
@@ -45,39 +45,6 @@ module PaperTrail
45
45
  where "event <> ?", "create"
46
46
  end
47
47
 
48
- # Returns versions after `obj`.
49
- #
50
- # @param obj - a `Version` or a timestamp
51
- # @param timestamp_arg - boolean - When true, `obj` is a timestamp.
52
- # Default: false.
53
- # @return `ActiveRecord::Relation`
54
- # @api public
55
- def subsequent(obj, timestamp_arg = false)
56
- if timestamp_arg != true && primary_key_is_int?
57
- return where(arel_table[primary_key].gt(obj.id)).order(arel_table[primary_key].asc)
58
- end
59
-
60
- obj = obj.send(:created_at) if obj.is_a?(self)
61
- where(arel_table[:created_at].gt(obj)).order(timestamp_sort_order)
62
- end
63
-
64
- # Returns versions before `obj`.
65
- #
66
- # @param obj - a `Version` or a timestamp
67
- # @param timestamp_arg - boolean - When true, `obj` is a timestamp.
68
- # Default: false.
69
- # @return `ActiveRecord::Relation`
70
- # @api public
71
- def preceding(obj, timestamp_arg = false)
72
- if timestamp_arg != true && primary_key_is_int?
73
- return where(arel_table[primary_key].lt(obj.id)).order(arel_table[primary_key].desc)
74
- end
75
-
76
- obj = obj.send(:created_at) if obj.is_a?(self)
77
- where(arel_table[:created_at].lt(obj)).
78
- order(timestamp_sort_order("desc"))
79
- end
80
-
81
48
  def between(start_time, end_time)
82
49
  where(
83
50
  arel_table[:created_at].gt(start_time).
@@ -166,6 +133,61 @@ module PaperTrail
166
133
  def object_changes_col_is_json?
167
134
  %i[json jsonb].include?(columns_hash["object_changes"].try(:type))
168
135
  end
136
+
137
+ # Returns versions before `obj`.
138
+ #
139
+ # @param obj - a `Version` or a timestamp
140
+ # @param timestamp_arg - boolean - When true, `obj` is a timestamp.
141
+ # Default: false.
142
+ # @return `ActiveRecord::Relation`
143
+ # @api public
144
+ def preceding(obj, timestamp_arg = false)
145
+ if timestamp_arg != true && primary_key_is_int?
146
+ preceding_by_id(obj)
147
+ else
148
+ preceding_by_timestamp(obj)
149
+ end
150
+ end
151
+
152
+ # Returns versions after `obj`.
153
+ #
154
+ # @param obj - a `Version` or a timestamp
155
+ # @param timestamp_arg - boolean - When true, `obj` is a timestamp.
156
+ # Default: false.
157
+ # @return `ActiveRecord::Relation`
158
+ # @api public
159
+ def subsequent(obj, timestamp_arg = false)
160
+ if timestamp_arg != true && primary_key_is_int?
161
+ subsequent_by_id(obj)
162
+ else
163
+ subsequent_by_timestamp(obj)
164
+ end
165
+ end
166
+
167
+ private
168
+
169
+ # @api private
170
+ def preceding_by_id(obj)
171
+ where(arel_table[primary_key].lt(obj.id)).order(arel_table[primary_key].desc)
172
+ end
173
+
174
+ # @api private
175
+ def preceding_by_timestamp(obj)
176
+ obj = obj.send(:created_at) if obj.is_a?(self)
177
+ where(arel_table[:created_at].lt(obj)).
178
+ order(timestamp_sort_order("desc"))
179
+ end
180
+
181
+ # @api private
182
+ def subsequent_by_id(version)
183
+ where(arel_table[primary_key].gt(version.id)).order(arel_table[primary_key].asc)
184
+ end
185
+
186
+ # @api private
187
+ def subsequent_by_timestamp(obj)
188
+ obj = obj.send(:created_at) if obj.is_a?(self)
189
+ where(arel_table[:created_at].gt(obj)).order(timestamp_sort_order)
190
+ end
169
191
  end
170
192
 
171
193
  # @api private
@@ -205,6 +227,9 @@ module PaperTrail
205
227
  # - `:preserve` - Attributes undefined in version record are not modified.
206
228
  #
207
229
  def reify(options = {})
230
+ unless self.class.column_names.include? "object"
231
+ raise "reify can't be called without an object column"
232
+ end
208
233
  return nil if object.nil?
209
234
  ::PaperTrail::Reifier.reify(self, options)
210
235
  end
@@ -256,7 +281,7 @@ module PaperTrail
256
281
 
257
282
  # @api private
258
283
  def load_changeset
259
- if PaperTrail.config.object_changes_adapter
284
+ if PaperTrail.config.object_changes_adapter&.respond_to?(:load_changeset)
260
285
  return PaperTrail.config.object_changes_adapter.load_changeset(self)
261
286
  end
262
287
 
@@ -7,9 +7,9 @@ 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 = 9
11
- MINOR = 2
12
- TINY = 0
10
+ MAJOR = 10
11
+ MINOR = 0
12
+ TINY = 1
13
13
 
14
14
  # Set PRE to nil unless it's a pre-release (beta, rc, etc.)
15
15
  PRE = nil
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: 9.2.0
4
+ version: 10.0.1
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: 2018-06-10 00:00:00.000000000 Z
13
+ date: 2018-09-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -32,20 +32,6 @@ dependencies:
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
34
  version: '5.3'
35
- - !ruby/object:Gem::Dependency
36
- name: paper_trail-association_tracking
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "<"
40
- - !ruby/object:Gem::Version
41
- version: '2'
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "<"
47
- - !ruby/object:Gem::Version
48
- version: '2'
49
35
  - !ruby/object:Gem::Dependency
50
36
  name: request_store
51
37
  requirement: !ruby/object:Gem::Requirement
@@ -122,28 +108,42 @@ dependencies:
122
108
  requirements:
123
109
  - - "~>"
124
110
  - !ruby/object:Gem::Version
125
- version: 0.4.10
111
+ version: 0.5.2
126
112
  type: :development
127
113
  prerelease: false
128
114
  version_requirements: !ruby/object:Gem::Requirement
129
115
  requirements:
130
116
  - - "~>"
131
117
  - !ruby/object:Gem::Version
132
- version: 0.4.10
118
+ version: 0.5.2
119
+ - !ruby/object:Gem::Dependency
120
+ name: paper_trail-association_tracking
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "<"
124
+ - !ruby/object:Gem::Version
125
+ version: '2'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "<"
131
+ - !ruby/object:Gem::Version
132
+ version: '2'
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: pg
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: 0.21.0
139
+ version: '1.0'
140
140
  type: :development
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: 0.21.0
146
+ version: '1.0'
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: rake
149
149
  requirement: !ruby/object:Gem::Requirement
@@ -164,42 +164,42 @@ dependencies:
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: 3.7.2
167
+ version: '3.8'
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: 3.7.2
174
+ version: '3.8'
175
175
  - !ruby/object:Gem::Dependency
176
176
  name: rubocop
177
177
  requirement: !ruby/object:Gem::Requirement
178
178
  requirements:
179
179
  - - "~>"
180
180
  - !ruby/object:Gem::Version
181
- version: 0.56.0
181
+ version: 0.58.2
182
182
  type: :development
183
183
  prerelease: false
184
184
  version_requirements: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - "~>"
187
187
  - !ruby/object:Gem::Version
188
- version: 0.56.0
188
+ version: 0.58.2
189
189
  - !ruby/object:Gem::Dependency
190
190
  name: rubocop-rspec
191
191
  requirement: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - "~>"
194
194
  - !ruby/object:Gem::Version
195
- version: 1.25.1
195
+ version: 1.28.0
196
196
  type: :development
197
197
  prerelease: false
198
198
  version_requirements: !ruby/object:Gem::Requirement
199
199
  requirements:
200
200
  - - "~>"
201
201
  - !ruby/object:Gem::Version
202
- version: 1.25.1
202
+ version: 1.28.0
203
203
  - !ruby/object:Gem::Dependency
204
204
  name: sqlite3
205
205
  requirement: !ruby/object:Gem::Requirement
@@ -223,10 +223,15 @@ executables: []
223
223
  extensions: []
224
224
  extra_rdoc_files: []
225
225
  files:
226
- - lib/generators/paper_trail/USAGE
226
+ - lib/generators/paper_trail/install/USAGE
227
+ - lib/generators/paper_trail/install/install_generator.rb
228
+ - lib/generators/paper_trail/install/templates/add_object_changes_to_versions.rb.erb
229
+ - lib/generators/paper_trail/install/templates/create_versions.rb.erb
227
230
  - lib/generators/paper_trail/install_generator.rb
228
- - lib/generators/paper_trail/templates/add_object_changes_to_versions.rb.erb
229
- - lib/generators/paper_trail/templates/create_versions.rb.erb
231
+ - lib/generators/paper_trail/migration_generator.rb
232
+ - lib/generators/paper_trail/update_item_subtype/USAGE
233
+ - lib/generators/paper_trail/update_item_subtype/templates/update_versions_for_item_subtype.rb.erb
234
+ - lib/generators/paper_trail/update_item_subtype/update_item_subtype_generator.rb
230
235
  - lib/paper_trail.rb
231
236
  - lib/paper_trail/attribute_serializers/README.md
232
237
  - lib/paper_trail/attribute_serializers/attribute_serializer_factory.rb
@@ -235,6 +240,10 @@ files:
235
240
  - lib/paper_trail/attribute_serializers/object_changes_attribute.rb
236
241
  - lib/paper_trail/cleaner.rb
237
242
  - lib/paper_trail/config.rb
243
+ - lib/paper_trail/events/base.rb
244
+ - lib/paper_trail/events/create.rb
245
+ - lib/paper_trail/events/destroy.rb
246
+ - lib/paper_trail/events/update.rb
238
247
  - lib/paper_trail/frameworks/active_record.rb
239
248
  - lib/paper_trail/frameworks/active_record/models/paper_trail/version.rb
240
249
  - lib/paper_trail/frameworks/cucumber.rb
@@ -1,2 +0,0 @@
1
- Description:
2
- Generates (but does not run) a migration to add a versions table.