bootsnap 1.7.7 → 1.8.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: 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