bootsnap 1.7.7 → 1.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8dcb9776e0582e39a71a07fbb73860eb2651de20a010ac6cbb454b48c838011
4
- data.tar.gz: ca48bd960ee5748c5dd558b63cfcddf9e49234d8310a37d6e85fe87bab8f76a8
3
+ metadata.gz: a12930656b479ba9d0675f13bf1edd2a52e0d84314f1e528866110a1a36776df
4
+ data.tar.gz: 33f4c8ea77733e461c9fe95ba75110e9da0b707e818727ebf5c13605d58eec62
5
5
  SHA512:
6
- metadata.gz: f9c3ff24e459657af721f25543e60437ea39fb2eb0d8af94f1d78140db12728430e084e2b7ecc4ff169b1b23f775bedb959fa887066dc971596613f08efc3f46
7
- data.tar.gz: b432abcbecc3c1017047e43826fc1da3116dc9efd0c383b7f65ccbfea9230d0f345f5aa338879fbfebc87f795106ff922d1c4badb45a3fcd954ed21665fe101c
6
+ metadata.gz: c366c8c65f4ce3fd73979b68c1201c2d7872d059a71ac79a561bc464b7fdaf1d0ba00acbe59e491d25d66efe967b3c0a25a9542727a43c101c4d2b719b82407c
7
+ data.tar.gz: 39d2ec6734c6234114c27f8665efe8a6170e6bcc58f98cec25f1c4386a644d0eec135ababc66b771dc0744c7df961f63d95669ebdb08db14c3b4982b320b5224
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Unreleased
2
2
 
3
+ # 1.8.0
4
+
5
+ * Improve support for Pysch 4. (#368)
6
+
3
7
  # 1.7.7
4
8
 
5
9
  * Fix `require_relative` in evaled code on latest ruby 3.1.0-dev. (#366)
@@ -23,7 +23,7 @@ module Bootsnap
23
23
  end
24
24
 
25
25
  def input_to_output(data, kwargs)
26
- ::YAML.load(data, **(kwargs || {}))
26
+ ::YAML.unsafe_load(data, **(kwargs || {}))
27
27
  end
28
28
 
29
29
  def strict_load(payload, *args)
@@ -52,6 +52,13 @@ module Bootsnap
52
52
  require('msgpack')
53
53
  require('date')
54
54
 
55
+ if Patch.method_defined?(:unsafe_load_file) && !::YAML.respond_to?(:unsafe_load_file)
56
+ Patch.send(:remove_method, :unsafe_load_file)
57
+ end
58
+ if Patch.method_defined?(:load_file) && ::YAML::VERSION >= '4'
59
+ Patch.send(:remove_method, :load_file)
60
+ end
61
+
55
62
  # MessagePack serializes symbols as strings by default.
56
63
  # We want them to roundtrip cleanly, so we use a custom factory.
57
64
  # see: https://github.com/msgpack/msgpack-ruby/pull/122
@@ -126,6 +133,27 @@ module Bootsnap
126
133
  end
127
134
 
128
135
  ruby2_keywords :load_file if respond_to?(:ruby2_keywords, true)
136
+
137
+ def unsafe_load_file(path, *args)
138
+ return super if args.size > 1
139
+ if kwargs = args.first
140
+ return super unless kwargs.is_a?(Hash)
141
+ return super unless (kwargs.keys - ::Bootsnap::CompileCache::YAML.supported_options).empty?
142
+ end
143
+
144
+ begin
145
+ ::Bootsnap::CompileCache::Native.fetch(
146
+ Bootsnap::CompileCache::YAML.cache_dir,
147
+ File.realpath(path),
148
+ ::Bootsnap::CompileCache::YAML,
149
+ kwargs,
150
+ )
151
+ rescue Errno::EACCES
152
+ ::Bootsnap::CompileCache.permission_error(path)
153
+ end
154
+ end
155
+
156
+ ruby2_keywords :unsafe_load_file if respond_to?(:ruby2_keywords, true)
129
157
  end
130
158
  end
131
159
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Bootsnap
3
- VERSION = "1.7.7"
3
+ VERSION = "1.8.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootsnap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.7
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burke Libbey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-02 00:00:00.000000000 Z
11
+ date: 2021-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler