psych 4.0.2-java → 4.0.5-java
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/lib/psych/class_loader.rb +2 -2
- data/lib/psych/core_ext.rb +1 -1
- data/lib/psych/handlers/document_stream.rb +1 -1
- data/lib/psych/handlers/recorder.rb +1 -1
- data/lib/psych/json/stream.rb +2 -2
- data/lib/psych/json/tree_builder.rb +1 -1
- data/lib/psych/nodes/node.rb +4 -4
- data/lib/psych/nodes.rb +7 -7
- data/lib/psych/scalar_scanner.rb +18 -11
- data/lib/psych/syntax_error.rb +1 -1
- data/lib/psych/tree_builder.rb +1 -1
- data/lib/psych/versions.rb +2 -2
- data/lib/psych/visitors/json_tree.rb +1 -1
- data/lib/psych/visitors/to_ruby.rb +8 -6
- data/lib/psych/visitors/yaml_tree.rb +11 -11
- data/lib/psych/visitors.rb +6 -6
- data/lib/psych.jar +0 -0
- data/lib/psych.rb +24 -24
- data/psych.gemspec +2 -0
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8270668f2e2cc31d09f65f6aa93df95992b3a19bc5e2c06b58f9d60f448ec6e9
|
|
4
|
+
data.tar.gz: 5a7de2a19f8335b685eb62d71234b54bcb086ad06781455b6ce9511074724309
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5e16e42a48cd358a0b0889be2e868598d6d53e88059e86a74656ba461201ee626bd411d9524021b99ac7444d5fcec865709c57c9529025a01f7f50a2d1d1791c
|
|
7
|
+
data.tar.gz: b38a6df950eea5bb99266f21a427fecf062142256e329d484c5bd599adf5c5b01c891fc2241f913963914020020d76c875632ce83b0d6f91d302bfe79d38157f
|
data/lib/psych/class_loader.rb
CHANGED
data/lib/psych/core_ext.rb
CHANGED
data/lib/psych/json/stream.rb
CHANGED
data/lib/psych/nodes/node.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
require 'stringio'
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
require_relative '../class_loader'
|
|
4
|
+
require_relative '../scalar_scanner'
|
|
5
5
|
|
|
6
6
|
module Psych
|
|
7
7
|
module Nodes
|
|
@@ -46,8 +46,8 @@ module Psych
|
|
|
46
46
|
# Convert this node to Ruby.
|
|
47
47
|
#
|
|
48
48
|
# See also Psych::Visitors::ToRuby
|
|
49
|
-
def to_ruby(symbolize_names: false, freeze: false)
|
|
50
|
-
Visitors::ToRuby.create(symbolize_names: symbolize_names, freeze: freeze).accept(self)
|
|
49
|
+
def to_ruby(symbolize_names: false, freeze: false, strict_integer: false)
|
|
50
|
+
Visitors::ToRuby.create(symbolize_names: symbolize_names, freeze: freeze, strict_integer: strict_integer).accept(self)
|
|
51
51
|
end
|
|
52
52
|
alias :transform :to_ruby
|
|
53
53
|
|
data/lib/psych/nodes.rb
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
require_relative 'nodes/node'
|
|
3
|
+
require_relative 'nodes/stream'
|
|
4
|
+
require_relative 'nodes/document'
|
|
5
|
+
require_relative 'nodes/sequence'
|
|
6
|
+
require_relative 'nodes/scalar'
|
|
7
|
+
require_relative 'nodes/mapping'
|
|
8
|
+
require_relative 'nodes/alias'
|
|
9
9
|
|
|
10
10
|
module Psych
|
|
11
11
|
###
|
data/lib/psych/scalar_scanner.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require 'strscan'
|
|
3
2
|
|
|
4
3
|
module Psych
|
|
5
4
|
###
|
|
@@ -13,24 +12,32 @@ module Psych
|
|
|
13
12
|
FLOAT = /^(?:[-+]?([0-9][0-9_,]*)?\.[0-9]*([eE][-+][0-9]+)?(?# base 10))$/x
|
|
14
13
|
|
|
15
14
|
# Taken from http://yaml.org/type/int.html
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
INTEGER_STRICT = /^(?:[-+]?0b[0-1_]+ (?# base 2)
|
|
16
|
+
|[-+]?0[0-7_]+ (?# base 8)
|
|
17
|
+
|[-+]?(0|[1-9][0-9_]*) (?# base 10)
|
|
18
|
+
|[-+]?0x[0-9a-fA-F_]+ (?# base 16))$/x
|
|
19
|
+
|
|
20
|
+
# Same as above, but allows commas.
|
|
21
|
+
# Not to YML spec, but kept for backwards compatibility
|
|
22
|
+
INTEGER_LEGACY = /^(?:[-+]?0b[0-1_,]+ (?# base 2)
|
|
23
|
+
|[-+]?0[0-7_,]+ (?# base 8)
|
|
24
|
+
|[-+]?(?:0|[1-9](?:[0-9]|,[0-9]|_[0-9])*) (?# base 10)
|
|
25
|
+
|[-+]?0x[0-9a-fA-F_,]+ (?# base 16))$/x
|
|
20
26
|
|
|
21
27
|
attr_reader :class_loader
|
|
22
28
|
|
|
23
29
|
# Create a new scanner
|
|
24
|
-
def initialize class_loader
|
|
30
|
+
def initialize class_loader, strict_integer: false
|
|
25
31
|
@symbol_cache = {}
|
|
26
32
|
@class_loader = class_loader
|
|
33
|
+
@strict_integer = strict_integer
|
|
27
34
|
end
|
|
28
35
|
|
|
29
36
|
# Tokenize +string+ returning the Ruby object
|
|
30
37
|
def tokenize string
|
|
31
38
|
return nil if string.empty?
|
|
32
39
|
return @symbol_cache[string] if @symbol_cache.key?(string)
|
|
33
|
-
|
|
40
|
+
integer_regex = @strict_integer ? INTEGER_STRICT : INTEGER_LEGACY
|
|
34
41
|
# Check for a String type, being careful not to get caught by hash keys, hex values, and
|
|
35
42
|
# special floats (e.g., -.inf).
|
|
36
43
|
if string.match?(%r{^[^\d.:-]?[[:alpha:]_\s!@#$%\^&*(){}<>|/\\~;=]+}) || string.match?(/\n/)
|
|
@@ -56,7 +63,7 @@ module Psych
|
|
|
56
63
|
elsif string.match?(/^\d{4}-(?:1[012]|0\d|\d)-(?:[12]\d|3[01]|0\d|\d)$/)
|
|
57
64
|
require 'date'
|
|
58
65
|
begin
|
|
59
|
-
class_loader.date.strptime(string, '%
|
|
66
|
+
class_loader.date.strptime(string, '%F', Date::GREGORIAN)
|
|
60
67
|
rescue ArgumentError
|
|
61
68
|
string
|
|
62
69
|
end
|
|
@@ -88,9 +95,9 @@ module Psych
|
|
|
88
95
|
if string.match?(/\A[-+]?\.\Z/)
|
|
89
96
|
string
|
|
90
97
|
else
|
|
91
|
-
Float(string.
|
|
98
|
+
Float(string.delete(',_').gsub(/\.([Ee]|$)/, '\1'))
|
|
92
99
|
end
|
|
93
|
-
elsif string.match?(
|
|
100
|
+
elsif string.match?(integer_regex)
|
|
94
101
|
parse_int string
|
|
95
102
|
else
|
|
96
103
|
string
|
|
@@ -100,7 +107,7 @@ module Psych
|
|
|
100
107
|
###
|
|
101
108
|
# Parse and return an int from +string+
|
|
102
109
|
def parse_int string
|
|
103
|
-
Integer(string.
|
|
110
|
+
Integer(string.delete(',_'))
|
|
104
111
|
end
|
|
105
112
|
|
|
106
113
|
###
|
data/lib/psych/syntax_error.rb
CHANGED
data/lib/psych/tree_builder.rb
CHANGED
data/lib/psych/versions.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
require_relative '../scalar_scanner'
|
|
3
|
+
require_relative '../class_loader'
|
|
4
|
+
require_relative '../exception'
|
|
5
5
|
|
|
6
6
|
unless defined?(Regexp::NOENCODING)
|
|
7
7
|
Regexp::NOENCODING = 32
|
|
@@ -12,9 +12,9 @@ module Psych
|
|
|
12
12
|
###
|
|
13
13
|
# This class walks a YAML AST, converting each node to Ruby
|
|
14
14
|
class ToRuby < Psych::Visitors::Visitor
|
|
15
|
-
def self.create(symbolize_names: false, freeze: false)
|
|
15
|
+
def self.create(symbolize_names: false, freeze: false, strict_integer: false)
|
|
16
16
|
class_loader = ClassLoader.new
|
|
17
|
-
scanner = ScalarScanner.new class_loader
|
|
17
|
+
scanner = ScalarScanner.new class_loader, strict_integer: strict_integer
|
|
18
18
|
new(scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze)
|
|
19
19
|
end
|
|
20
20
|
|
|
@@ -80,7 +80,9 @@ module Psych
|
|
|
80
80
|
when "!ruby/object:DateTime"
|
|
81
81
|
class_loader.date_time
|
|
82
82
|
require 'date' unless defined? DateTime
|
|
83
|
-
@ss.parse_time(o.value)
|
|
83
|
+
t = @ss.parse_time(o.value)
|
|
84
|
+
DateTime.civil(*t.to_a[0, 6].reverse, Rational(t.utc_offset, 86400)) +
|
|
85
|
+
(t.subsec/86400)
|
|
84
86
|
when '!ruby/encoding'
|
|
85
87
|
::Encoding.find o.value
|
|
86
88
|
when "!ruby/object:Complex"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
require_relative '../tree_builder'
|
|
3
|
+
require_relative '../scalar_scanner'
|
|
4
|
+
require_relative '../class_loader'
|
|
5
5
|
|
|
6
6
|
module Psych
|
|
7
7
|
module Visitors
|
|
@@ -192,12 +192,13 @@ module Psych
|
|
|
192
192
|
register o, @emitter.scalar(o.inspect, nil, '!ruby/regexp', false, false, Nodes::Scalar::ANY)
|
|
193
193
|
end
|
|
194
194
|
|
|
195
|
+
def visit_Date o
|
|
196
|
+
register o, visit_Integer(o.gregorian)
|
|
197
|
+
end
|
|
198
|
+
|
|
195
199
|
def visit_DateTime o
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
else
|
|
199
|
-
o.strftime("%Y-%m-%d %H:%M:%S.%9N %:z".freeze)
|
|
200
|
-
end
|
|
200
|
+
t = o.italy
|
|
201
|
+
formatted = format_time t, t.offset.zero?
|
|
201
202
|
tag = '!ruby/object:DateTime'
|
|
202
203
|
register o, @emitter.scalar(formatted, nil, tag, false, false, Nodes::Scalar::ANY)
|
|
203
204
|
end
|
|
@@ -235,7 +236,6 @@ module Psych
|
|
|
235
236
|
end
|
|
236
237
|
alias :visit_TrueClass :visit_Integer
|
|
237
238
|
alias :visit_FalseClass :visit_Integer
|
|
238
|
-
alias :visit_Date :visit_Integer
|
|
239
239
|
|
|
240
240
|
def visit_Float o
|
|
241
241
|
if o.nan?
|
|
@@ -482,8 +482,8 @@ module Psych
|
|
|
482
482
|
@emitter.end_mapping
|
|
483
483
|
end
|
|
484
484
|
|
|
485
|
-
def format_time time
|
|
486
|
-
if
|
|
485
|
+
def format_time time, utc = time.utc?
|
|
486
|
+
if utc
|
|
487
487
|
time.strftime("%Y-%m-%d %H:%M:%S.%9N Z")
|
|
488
488
|
else
|
|
489
489
|
time.strftime("%Y-%m-%d %H:%M:%S.%9N %:z")
|
data/lib/psych/visitors.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
require_relative 'visitors/visitor'
|
|
3
|
+
require_relative 'visitors/to_ruby'
|
|
4
|
+
require_relative 'visitors/emitter'
|
|
5
|
+
require_relative 'visitors/yaml_tree'
|
|
6
|
+
require_relative 'visitors/json_tree'
|
|
7
|
+
require_relative 'visitors/depth_first'
|
data/lib/psych.jar
CHANGED
|
Binary file
|
data/lib/psych.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
2
|
+
require_relative 'psych/versions'
|
|
3
3
|
case RUBY_ENGINE
|
|
4
4
|
when 'jruby'
|
|
5
|
-
|
|
5
|
+
require_relative 'psych_jars'
|
|
6
6
|
if JRuby::Util.respond_to?(:load_ext)
|
|
7
7
|
JRuby::Util.load_ext('org.jruby.ext.psych.PsychLibrary')
|
|
8
8
|
else
|
|
@@ -12,21 +12,21 @@ when 'jruby'
|
|
|
12
12
|
else
|
|
13
13
|
require 'psych.so'
|
|
14
14
|
end
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
require_relative 'psych/nodes'
|
|
16
|
+
require_relative 'psych/streaming'
|
|
17
|
+
require_relative 'psych/visitors'
|
|
18
|
+
require_relative 'psych/handler'
|
|
19
|
+
require_relative 'psych/tree_builder'
|
|
20
|
+
require_relative 'psych/parser'
|
|
21
|
+
require_relative 'psych/omap'
|
|
22
|
+
require_relative 'psych/set'
|
|
23
|
+
require_relative 'psych/coder'
|
|
24
|
+
require_relative 'psych/core_ext'
|
|
25
|
+
require_relative 'psych/stream'
|
|
26
|
+
require_relative 'psych/json/tree_builder'
|
|
27
|
+
require_relative 'psych/json/stream'
|
|
28
|
+
require_relative 'psych/handlers/document_stream'
|
|
29
|
+
require_relative 'psych/class_loader'
|
|
30
30
|
|
|
31
31
|
###
|
|
32
32
|
# = Overview
|
|
@@ -268,12 +268,11 @@ module Psych
|
|
|
268
268
|
# YAML documents that are supplied via user input. Instead, please use the
|
|
269
269
|
# load method or the safe_load method.
|
|
270
270
|
#
|
|
271
|
-
def self.unsafe_load yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false
|
|
271
|
+
def self.unsafe_load yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false, strict_integer: false
|
|
272
272
|
result = parse(yaml, filename: filename)
|
|
273
273
|
return fallback unless result
|
|
274
|
-
result.to_ruby(symbolize_names: symbolize_names, freeze: freeze)
|
|
274
|
+
result.to_ruby(symbolize_names: symbolize_names, freeze: freeze, strict_integer: strict_integer)
|
|
275
275
|
end
|
|
276
|
-
class << self; alias :load :unsafe_load; end
|
|
277
276
|
|
|
278
277
|
###
|
|
279
278
|
# Safely load the yaml string in +yaml+. By default, only the following
|
|
@@ -320,13 +319,13 @@ module Psych
|
|
|
320
319
|
# Psych.safe_load("---\n foo: bar") # => {"foo"=>"bar"}
|
|
321
320
|
# Psych.safe_load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"}
|
|
322
321
|
#
|
|
323
|
-
def self.safe_load yaml, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false
|
|
322
|
+
def self.safe_load yaml, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false
|
|
324
323
|
result = parse(yaml, filename: filename)
|
|
325
324
|
return fallback unless result
|
|
326
325
|
|
|
327
326
|
class_loader = ClassLoader::Restricted.new(permitted_classes.map(&:to_s),
|
|
328
327
|
permitted_symbols.map(&:to_s))
|
|
329
|
-
scanner = ScalarScanner.new class_loader
|
|
328
|
+
scanner = ScalarScanner.new class_loader, strict_integer: strict_integer
|
|
330
329
|
visitor = if aliases
|
|
331
330
|
Visitors::ToRuby.new scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze
|
|
332
331
|
else
|
|
@@ -366,14 +365,15 @@ module Psych
|
|
|
366
365
|
# Raises a TypeError when `yaml` parameter is NilClass. This method is
|
|
367
366
|
# similar to `safe_load` except that `Symbol` objects are allowed by default.
|
|
368
367
|
#
|
|
369
|
-
def self.load yaml, permitted_classes: [Symbol], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false
|
|
368
|
+
def self.load yaml, permitted_classes: [Symbol], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false
|
|
370
369
|
safe_load yaml, permitted_classes: permitted_classes,
|
|
371
370
|
permitted_symbols: permitted_symbols,
|
|
372
371
|
aliases: aliases,
|
|
373
372
|
filename: filename,
|
|
374
373
|
fallback: fallback,
|
|
375
374
|
symbolize_names: symbolize_names,
|
|
376
|
-
freeze: freeze
|
|
375
|
+
freeze: freeze,
|
|
376
|
+
strict_integer: strict_integer
|
|
377
377
|
end
|
|
378
378
|
|
|
379
379
|
###
|
data/psych.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: psych
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.5
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Aaron Patterson
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2022-09-07 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
138
|
version: '0'
|
|
139
139
|
requirements:
|
|
140
|
-
- jar org.yaml:snakeyaml, 1.
|
|
140
|
+
- jar org.yaml:snakeyaml, 1.31
|
|
141
141
|
rubygems_version: 3.2.29
|
|
142
142
|
signing_key:
|
|
143
143
|
specification_version: 4
|