paper_trail 5.2.2 → 5.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -3
- data/README.md +1 -1
- data/lib/paper_trail/record_trail.rb +2 -2
- data/lib/paper_trail/reifier.rb +2 -1
- data/lib/paper_trail/version_number.rb +1 -1
- data/paper_trail.gemspec +7 -1
- data/spec/models/custom_primary_key_record_spec.rb +18 -0
- data/test/dummy/app/models/custom_primary_key_record.rb +13 -0
- data/test/dummy/app/versions/custom_primary_key_record_version.rb +3 -0
- data/test/dummy/db/migrate/20110208155312_set_up_test_tables.rb +18 -0
- data/test/dummy/db/schema.rb +18 -0
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 096e05463c63093078629b25f9be4449a57d3fa7
|
4
|
+
data.tar.gz: 56ab2c64e8a17af51d4acb67076740f4dd07d17e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e10ad3f94b5604ba97f8d49b9f5191ace437d5bd777fa78aa0f2459c82acd852aa62ddb73bd589f90b8d28f4cdd702cdc89438bb0dd63fa020edb265bf4a3db
|
7
|
+
data.tar.gz: 09ccd0195883ddba04a640c4a235ac4ca5ea94e006d39549d974f4181cc55c5f6856525fdcf39c32089fcfcb4cffb088b3b8894b2077ce07a46ab02a0faa2405
|
data/CHANGELOG.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
|
4
4
|
recommendations of [keepachangelog.com](http://keepachangelog.com/).
|
5
5
|
|
6
|
-
##
|
6
|
+
## 5.2.3 (2016-11-29)
|
7
7
|
|
8
8
|
### Breaking Changes
|
9
9
|
|
@@ -19,6 +19,11 @@ recommendations of [keepachangelog.com](http://keepachangelog.com/).
|
|
19
19
|
|
20
20
|
### Fixed
|
21
21
|
|
22
|
+
- [#889](https://github.com/airblade/paper_trail/pull/889) -
|
23
|
+
Fix warning message in instances when a version can't be persisted due to validation errors.
|
24
|
+
- [#868](https://github.com/airblade/paper_trail/pull/868)
|
25
|
+
Fix usage of find_by_id when primary key is not id, affecting reifying certain records.
|
26
|
+
|
22
27
|
## 5.2.2 (2016-09-08)
|
23
28
|
|
24
29
|
### Breaking Changes
|
@@ -27,7 +32,7 @@ recommendations of [keepachangelog.com](http://keepachangelog.com/).
|
|
27
32
|
|
28
33
|
### Deprecated
|
29
34
|
|
30
|
-
- [#863](https://github.com/airblade/paper_trail/pull/863)
|
35
|
+
- [#863](https://github.com/airblade/paper_trail/pull/863) -
|
31
36
|
PaperTrail.timestamp_field= deprecated without replacement.
|
32
37
|
See [#861](https://github.com/airblade/paper_trail/pull/861) for discussion.
|
33
38
|
|
@@ -37,6 +42,8 @@ recommendations of [keepachangelog.com](http://keepachangelog.com/).
|
|
37
42
|
|
38
43
|
### Fixed
|
39
44
|
|
45
|
+
- None
|
46
|
+
|
40
47
|
## 5.2.1 (2016-09-02)
|
41
48
|
|
42
49
|
### Breaking Changes
|
@@ -404,7 +411,7 @@ candidates.
|
|
404
411
|
## 3.0.5
|
405
412
|
|
406
413
|
- [#401](https://github.com/airblade/paper_trail/issues/401) / [#406](https://github.com/airblade/paper_trail/issues/406) -
|
407
|
-
`PaperTrail::Version` class is not loaded via a `Rails::Engine`, even when the gem is used
|
414
|
+
`PaperTrail::Version` class is not loaded via a `Rails::Engine`, even when the gem is used within Rails. This feature has
|
408
415
|
will be re-introduced in version `4.0`.
|
409
416
|
- [#398](https://github.com/airblade/paper_trail/pull/398) - Only require the `RSpec` helper if `RSpec::Core` is required.
|
410
417
|
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ has been destroyed.
|
|
11
11
|
| Version | Documentation |
|
12
12
|
| -------------- | ------------- |
|
13
13
|
| Unreleased | https://github.com/airblade/paper_trail/blob/master/README.md |
|
14
|
-
| 5.2.
|
14
|
+
| 5.2.3 | https://github.com/airblade/paper_trail/blob/v5.2.3/README.md |
|
15
15
|
| 4.2.0 | https://github.com/airblade/paper_trail/blob/v4.2.0/README.md |
|
16
16
|
| 3.0.9 | https://github.com/airblade/paper_trail/blob/v3.0.9/README.md |
|
17
17
|
| 2.7.2 | https://github.com/airblade/paper_trail/blob/v2.7.2/README.md |
|
@@ -418,8 +418,8 @@ module PaperTrail
|
|
418
418
|
|
419
419
|
def log_version_errors(version, action)
|
420
420
|
version.logger.warn(
|
421
|
-
"Unable to create version for #{action} of #{@record.class.name}
|
422
|
-
version.errors.full_messages.join(", ")
|
421
|
+
"Unable to create version for #{action} of #{@record.class.name}" +
|
422
|
+
"##{@record.id}: " + version.errors.full_messages.join(", ")
|
423
423
|
)
|
424
424
|
end
|
425
425
|
|
data/lib/paper_trail/reifier.rb
CHANGED
@@ -31,7 +31,8 @@ module PaperTrail
|
|
31
31
|
klass = version_reification_class(version, attrs)
|
32
32
|
# The `dup` option always returns a new object, otherwise we should
|
33
33
|
# attempt to look for the item outside of default scope(s).
|
34
|
-
|
34
|
+
find_cond = { klass.primary_key => version.item_id }
|
35
|
+
if options[:dup] || (item_found = klass.unscoped.where(find_cond).first).nil?
|
35
36
|
model = klass.new
|
36
37
|
elsif options[:unversioned_attributes] == :nil
|
37
38
|
model = item_found
|
data/paper_trail.gemspec
CHANGED
@@ -42,7 +42,13 @@ Gem::Specification.new do |s|
|
|
42
42
|
s.add_development_dependency "activerecord-jdbcmysql-adapter", "~> 1.3.15"
|
43
43
|
else
|
44
44
|
s.add_development_dependency "sqlite3", "~> 1.2"
|
45
|
-
|
45
|
+
|
46
|
+
# pg 0.19 requires ruby >= 2.0.0
|
47
|
+
if ::Gem.ruby_version >= ::Gem::Version.new("2.0.0")
|
48
|
+
s.add_development_dependency "pg", "~> 0.19.0"
|
49
|
+
else
|
50
|
+
s.add_development_dependency "pg", [">= 0.17", "< 0.19"]
|
51
|
+
end
|
46
52
|
|
47
53
|
# activerecord >= 4.2.5 may use mysql2 >= 0.4
|
48
54
|
s.add_development_dependency "mysql2", "~> 0.4.2"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
|
3
|
+
describe CustomPrimaryKeyRecord, type: :model do
|
4
|
+
it { is_expected.to be_versioned }
|
5
|
+
|
6
|
+
describe "#versions" do
|
7
|
+
it "returns instances of CustomPrimaryKeyRecordVersion", versioning: true do
|
8
|
+
custom_primary_key_record = described_class.create!
|
9
|
+
custom_primary_key_record.update_attributes!(name: "bob")
|
10
|
+
version = custom_primary_key_record.versions.last
|
11
|
+
expect(version).to be_a(CustomPrimaryKeyRecordVersion)
|
12
|
+
version_from_db = CustomPrimaryKeyRecordVersion.last
|
13
|
+
expect(version_from_db.reify).to be_a(CustomPrimaryKeyRecord)
|
14
|
+
custom_primary_key_record.destroy
|
15
|
+
expect(CustomPrimaryKeyRecordVersion.last.reify).to be_a(CustomPrimaryKeyRecord)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "securerandom"
|
2
|
+
class CustomPrimaryKeyRecord < ActiveRecord::Base
|
3
|
+
self.primary_key = :uuid
|
4
|
+
|
5
|
+
has_paper_trail class_name: "CustomPrimaryKeyRecordVersion"
|
6
|
+
# this unusual default_scope is to test the case of the Version#item association
|
7
|
+
# not returning the item due to unmatched default_scope on the model.
|
8
|
+
default_scope -> { where(name: "custom_primary_key_record") }
|
9
|
+
|
10
|
+
before_create do
|
11
|
+
self.uuid ||= SecureRandom.uuid
|
12
|
+
end
|
13
|
+
end
|
@@ -271,6 +271,24 @@ class SetUpTestTables < ActiveRecord::Migration
|
|
271
271
|
end
|
272
272
|
add_index :bar_habtms_foo_habtms, [:foo_habtm_id]
|
273
273
|
add_index :bar_habtms_foo_habtms, [:bar_habtm_id]
|
274
|
+
|
275
|
+
# custom_primary_key_records use a uuid column (string)
|
276
|
+
create_table :custom_primary_key_records, id: false, force: true do |t|
|
277
|
+
t.column :uuid, :string, primary_key: true
|
278
|
+
t.string :name
|
279
|
+
t.timestamps null: true
|
280
|
+
end
|
281
|
+
|
282
|
+
# and custom_primary_key_record_versions stores the uuid in item_id, a string
|
283
|
+
create_table :custom_primary_key_record_versions, force: true do |t|
|
284
|
+
t.string :item_type, null: false
|
285
|
+
t.string :item_id, null: false
|
286
|
+
t.string :event, null: false
|
287
|
+
t.string :whodunnit
|
288
|
+
t.text :object
|
289
|
+
t.datetime :created_at
|
290
|
+
end
|
291
|
+
add_index :custom_primary_key_record_versions, [:item_type, :item_id], name: "idx_cust_pk_item"
|
274
292
|
end
|
275
293
|
|
276
294
|
def down
|
data/test/dummy/db/schema.rb
CHANGED
@@ -80,6 +80,24 @@ ActiveRecord::Schema.define(version: 20110208155312) do
|
|
80
80
|
t.integer "quotation_id"
|
81
81
|
end
|
82
82
|
|
83
|
+
create_table "custom_primary_key_record_versions", force: :cascade do |t|
|
84
|
+
t.string "item_type", null: false
|
85
|
+
t.string "item_id", null: false
|
86
|
+
t.string "event", null: false
|
87
|
+
t.string "whodunnit"
|
88
|
+
t.text "object"
|
89
|
+
t.datetime "created_at"
|
90
|
+
end
|
91
|
+
|
92
|
+
add_index "custom_primary_key_record_versions", ["item_type", "item_id"], name: "idx_cust_pk_item"
|
93
|
+
|
94
|
+
create_table "custom_primary_key_records", id: false, force: :cascade do |t|
|
95
|
+
t.string "uuid"
|
96
|
+
t.string "name"
|
97
|
+
t.datetime "created_at"
|
98
|
+
t.datetime "updated_at"
|
99
|
+
end
|
100
|
+
|
83
101
|
create_table "customers", force: :cascade do |t|
|
84
102
|
t.string "name"
|
85
103
|
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: 5.2.
|
4
|
+
version: 5.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Stewart
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-11-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -239,14 +239,14 @@ dependencies:
|
|
239
239
|
requirements:
|
240
240
|
- - "~>"
|
241
241
|
- !ruby/object:Gem::Version
|
242
|
-
version:
|
242
|
+
version: 0.19.0
|
243
243
|
type: :development
|
244
244
|
prerelease: false
|
245
245
|
version_requirements: !ruby/object:Gem::Requirement
|
246
246
|
requirements:
|
247
247
|
- - "~>"
|
248
248
|
- !ruby/object:Gem::Version
|
249
|
-
version:
|
249
|
+
version: 0.19.0
|
250
250
|
- !ruby/object:Gem::Dependency
|
251
251
|
name: mysql2
|
252
252
|
requirement: !ruby/object:Gem::Requirement
|
@@ -327,6 +327,7 @@ files:
|
|
327
327
|
- spec/models/boolit_spec.rb
|
328
328
|
- spec/models/callback_modifier_spec.rb
|
329
329
|
- spec/models/car_spec.rb
|
330
|
+
- spec/models/custom_primary_key_record_spec.rb
|
330
331
|
- spec/models/fluxor_spec.rb
|
331
332
|
- spec/models/gadget_spec.rb
|
332
333
|
- spec/models/joined_version_spec.rb
|
@@ -367,6 +368,7 @@ files:
|
|
367
368
|
- test/dummy/app/models/cat.rb
|
368
369
|
- test/dummy/app/models/chapter.rb
|
369
370
|
- test/dummy/app/models/citation.rb
|
371
|
+
- test/dummy/app/models/custom_primary_key_record.rb
|
370
372
|
- test/dummy/app/models/customer.rb
|
371
373
|
- test/dummy/app/models/document.rb
|
372
374
|
- test/dummy/app/models/dog.rb
|
@@ -399,6 +401,7 @@ files:
|
|
399
401
|
- test/dummy/app/models/whatchamajigger.rb
|
400
402
|
- test/dummy/app/models/widget.rb
|
401
403
|
- test/dummy/app/models/wotsit.rb
|
404
|
+
- test/dummy/app/versions/custom_primary_key_record_version.rb
|
402
405
|
- test/dummy/app/versions/joined_version.rb
|
403
406
|
- test/dummy/app/versions/json_version.rb
|
404
407
|
- test/dummy/app/versions/kitchen/banana_version.rb
|
@@ -475,6 +478,7 @@ test_files:
|
|
475
478
|
- spec/models/boolit_spec.rb
|
476
479
|
- spec/models/callback_modifier_spec.rb
|
477
480
|
- spec/models/car_spec.rb
|
481
|
+
- spec/models/custom_primary_key_record_spec.rb
|
478
482
|
- spec/models/fluxor_spec.rb
|
479
483
|
- spec/models/gadget_spec.rb
|
480
484
|
- spec/models/joined_version_spec.rb
|
@@ -515,6 +519,7 @@ test_files:
|
|
515
519
|
- test/dummy/app/models/cat.rb
|
516
520
|
- test/dummy/app/models/chapter.rb
|
517
521
|
- test/dummy/app/models/citation.rb
|
522
|
+
- test/dummy/app/models/custom_primary_key_record.rb
|
518
523
|
- test/dummy/app/models/customer.rb
|
519
524
|
- test/dummy/app/models/document.rb
|
520
525
|
- test/dummy/app/models/dog.rb
|
@@ -547,6 +552,7 @@ test_files:
|
|
547
552
|
- test/dummy/app/models/whatchamajigger.rb
|
548
553
|
- test/dummy/app/models/widget.rb
|
549
554
|
- test/dummy/app/models/wotsit.rb
|
555
|
+
- test/dummy/app/versions/custom_primary_key_record_version.rb
|
550
556
|
- test/dummy/app/versions/joined_version.rb
|
551
557
|
- test/dummy/app/versions/json_version.rb
|
552
558
|
- test/dummy/app/versions/kitchen/banana_version.rb
|