paper_trail 12.3.0 → 13.0.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 776e912c4a06b036014b0301b30a1438974c00b8e63b6e0b78fbffe4dfca7824
|
4
|
+
data.tar.gz: 691060404fbb2b4a3f66cf40c0b6187df7a9e8439854097ffbad433a7bdd6e75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7110ad57841a431cb50318a79db55ba65f279b839d72009dc2aef961a57c9b044d4d8d706062bbff4cea7fe9b7b2db0a3d83c966518eeffddd66cca6f9e63ae3
|
7
|
+
data.tar.gz: d5ebe8b0a5f8dd4df889b1e6a71e81ab5fb1e752a034dd400decd5ef1bdb91441bce9b6061980db7d443796309995c745063175bf7cdb85819028f45fc20dc88
|
@@ -28,11 +28,11 @@ class CreateVersions < ActiveRecord::Migration<%= migration_version %>
|
|
28
28
|
# MySQL users should also upgrade to at least rails 4.2, which is the first
|
29
29
|
# version of ActiveRecord with support for fractional seconds in MySQL.
|
30
30
|
# (https://github.com/rails/rails/pull/14359)
|
31
|
-
#
|
31
|
+
#
|
32
32
|
# MySQL users should use the following line for `created_at`
|
33
|
-
# t.datetime :created_at, limit: 6
|
33
|
+
# t.datetime :created_at, limit: 6
|
34
34
|
t.datetime :created_at
|
35
35
|
end
|
36
|
-
add_index :versions, %i
|
36
|
+
add_index :versions, %i[item_type item_id]
|
37
37
|
end
|
38
38
|
end
|
@@ -9,13 +9,23 @@ module PaperTrail
|
|
9
9
|
extend self # makes all instance methods become module methods as well
|
10
10
|
|
11
11
|
def load(string)
|
12
|
-
|
12
|
+
if use_safe_load?
|
13
|
+
::YAML.safe_load(
|
14
|
+
string,
|
15
|
+
permitted_classes: ::ActiveRecord.yaml_column_permitted_classes,
|
16
|
+
aliases: true
|
17
|
+
)
|
18
|
+
elsif ::YAML.respond_to?(:unsafe_load)
|
19
|
+
::YAML.unsafe_load(string)
|
20
|
+
else
|
21
|
+
::YAML.load(string)
|
22
|
+
end
|
13
23
|
end
|
14
24
|
|
15
25
|
# @param object (Hash | HashWithIndifferentAccess) - Coming from
|
16
26
|
# `recordable_object` `object` will be a plain `Hash`. However, due to
|
17
|
-
# recent [memory optimizations](https://
|
18
|
-
# `recordable_object_changes`, it will be a `HashWithIndifferentAccess`.
|
27
|
+
# recent [memory optimizations](https://github.com/paper-trail-gem/paper_trail/pull/1189),
|
28
|
+
# when coming from `recordable_object_changes`, it will be a `HashWithIndifferentAccess`.
|
19
29
|
def dump(object)
|
20
30
|
object = object.to_hash if object.is_a?(HashWithIndifferentAccess)
|
21
31
|
::YAML.dump object
|
@@ -26,6 +36,14 @@ module PaperTrail
|
|
26
36
|
def where_object_condition(arel_field, field, value)
|
27
37
|
arel_field.matches("%\n#{field}: #{value}\n%")
|
28
38
|
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
# `use_yaml_unsafe_load` was added in 7.0.3.1, will be removed in 7.1.0?
|
43
|
+
def use_safe_load?
|
44
|
+
defined?(ActiveRecord.use_yaml_unsafe_load) &&
|
45
|
+
!ActiveRecord.use_yaml_unsafe_load
|
46
|
+
end
|
29
47
|
end
|
30
48
|
end
|
31
49
|
end
|
@@ -15,6 +15,12 @@ module PaperTrail
|
|
15
15
|
module VersionConcern
|
16
16
|
extend ::ActiveSupport::Concern
|
17
17
|
|
18
|
+
E_YAML_PERMITTED_CLASSES = <<-EOS.squish.freeze
|
19
|
+
PaperTrail encountered a Psych::DisallowedClass error during
|
20
|
+
deserialization of YAML column, indicating that
|
21
|
+
yaml_column_permitted_classes has not been configured correctly. %s
|
22
|
+
EOS
|
23
|
+
|
18
24
|
included do
|
19
25
|
belongs_to :item, polymorphic: true, optional: true, inverse_of: false
|
20
26
|
validates_presence_of :event
|
@@ -348,7 +354,10 @@ module PaperTrail
|
|
348
354
|
else
|
349
355
|
begin
|
350
356
|
PaperTrail.serializer.load(object_changes)
|
351
|
-
rescue StandardError
|
357
|
+
rescue StandardError => e
|
358
|
+
if defined?(::Psych::Exception) && e.instance_of?(::Psych::Exception)
|
359
|
+
::Kernel.warn format(E_YAML_PERMITTED_CLASSES, e)
|
360
|
+
end
|
352
361
|
{}
|
353
362
|
end
|
354
363
|
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 = 13
|
11
|
+
MINOR = 0
|
12
12
|
TINY = 0
|
13
13
|
|
14
14
|
# Set PRE to nil unless it's a pre-release (beta, rc, etc.)
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paper_trail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 13.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Stewart
|
8
8
|
- Ben Atkins
|
9
9
|
- Jared Beck
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-
|
13
|
+
date: 2022-08-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -352,7 +352,7 @@ homepage: https://github.com/paper-trail-gem/paper_trail
|
|
352
352
|
licenses:
|
353
353
|
- MIT
|
354
354
|
metadata: {}
|
355
|
-
post_install_message:
|
355
|
+
post_install_message:
|
356
356
|
rdoc_options: []
|
357
357
|
require_paths:
|
358
358
|
- lib
|
@@ -367,8 +367,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
367
367
|
- !ruby/object:Gem::Version
|
368
368
|
version: 1.3.6
|
369
369
|
requirements: []
|
370
|
-
rubygems_version: 3.
|
371
|
-
signing_key:
|
370
|
+
rubygems_version: 3.3.7
|
371
|
+
signing_key:
|
372
372
|
specification_version: 4
|
373
373
|
summary: Track changes to your models.
|
374
374
|
test_files: []
|