psych 4.0.1-java → 4.0.4-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/Rakefile +1 -1
- 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 +21 -15
- data/lib/psych/syntax_error.rb +1 -1
- data/lib/psych/tree_builder.rb +1 -1
- data/lib/psych/versions.rb +1 -1
- data/lib/psych/visitors/json_tree.rb +1 -1
- data/lib/psych/visitors/to_ruby.rb +5 -5
- data/lib/psych/visitors/yaml_tree.rb +5 -3
- data/lib/psych/visitors.rb +6 -6
- data/lib/psych.jar +0 -0
- data/lib/psych.rb +25 -25
- 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: b31da54485c398a26cd10e3dec1ab3498a36a95edd598c61ff34ec544b6b73a6
|
|
4
|
+
data.tar.gz: 476898d5a9dbea84360caedb8b53274ffbe869bec0de5e3473c4a75cdc9c96c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5d7efe52ceb22c90a351b2c32bda30f81843e903478b06779dba39f4fb5142ec738f5f8a2ae22124ce528b05ae7b7c8994c2becf92da1c568c1346f19e34c920
|
|
7
|
+
data.tar.gz: 3f5bf83fe16f1f67fe300148cd671b4838ff46630576d8e28caf15aaa28abed43377e30855e8eebd61b36446e9fff9a882dffef010c5defc961a1cc5d0eaee96
|
data/Rakefile
CHANGED
|
@@ -33,7 +33,7 @@ end
|
|
|
33
33
|
|
|
34
34
|
task :sync_tool do
|
|
35
35
|
require 'fileutils'
|
|
36
|
-
FileUtils.cp "../ruby/tool/lib/
|
|
36
|
+
FileUtils.cp "../ruby/tool/lib/core_assertions.rb", "./test/lib"
|
|
37
37
|
FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
|
|
38
38
|
FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
|
|
39
39
|
end
|
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
|
###
|
|
@@ -9,32 +8,39 @@ module Psych
|
|
|
9
8
|
TIME = /^-?\d{4}-\d{1,2}-\d{1,2}(?:[Tt]|\s+)\d{1,2}:\d\d:\d\d(?:\.\d*)?(?:\s*(?:Z|[-+]\d{1,2}:?(?:\d\d)?))?$/
|
|
10
9
|
|
|
11
10
|
# Taken from http://yaml.org/type/float.html
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|\.(nan|NaN|NAN)(?# not a number))$/x
|
|
11
|
+
# Base 60, [-+]inf and NaN are handled separately
|
|
12
|
+
FLOAT = /^(?:[-+]?([0-9][0-9_,]*)?\.[0-9]*([eE][-+][0-9]+)?(?# base 10))$/x
|
|
15
13
|
|
|
16
14
|
# Taken from http://yaml.org/type/int.html
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
21
26
|
|
|
22
27
|
attr_reader :class_loader
|
|
23
28
|
|
|
24
29
|
# Create a new scanner
|
|
25
|
-
def initialize class_loader
|
|
30
|
+
def initialize class_loader, strict_integer: false
|
|
26
31
|
@symbol_cache = {}
|
|
27
32
|
@class_loader = class_loader
|
|
33
|
+
@strict_integer = strict_integer
|
|
28
34
|
end
|
|
29
35
|
|
|
30
36
|
# Tokenize +string+ returning the Ruby object
|
|
31
37
|
def tokenize string
|
|
32
38
|
return nil if string.empty?
|
|
33
39
|
return @symbol_cache[string] if @symbol_cache.key?(string)
|
|
34
|
-
|
|
40
|
+
integer_regex = @strict_integer ? INTEGER_STRICT : INTEGER_LEGACY
|
|
35
41
|
# Check for a String type, being careful not to get caught by hash keys, hex values, and
|
|
36
42
|
# special floats (e.g., -.inf).
|
|
37
|
-
if string.match?(
|
|
43
|
+
if string.match?(%r{^[^\d.:-]?[[:alpha:]_\s!@#$%\^&*(){}<>|/\\~;=]+}) || string.match?(/\n/)
|
|
38
44
|
return string if string.length > 5
|
|
39
45
|
|
|
40
46
|
if string.match?(/^[^ytonf~]/i)
|
|
@@ -61,7 +67,7 @@ module Psych
|
|
|
61
67
|
rescue ArgumentError
|
|
62
68
|
string
|
|
63
69
|
end
|
|
64
|
-
elsif string.match?(
|
|
70
|
+
elsif string.match?(/^\+?\.inf$/i)
|
|
65
71
|
Float::INFINITY
|
|
66
72
|
elsif string.match?(/^-\.inf$/i)
|
|
67
73
|
-Float::INFINITY
|
|
@@ -89,9 +95,9 @@ module Psych
|
|
|
89
95
|
if string.match?(/\A[-+]?\.\Z/)
|
|
90
96
|
string
|
|
91
97
|
else
|
|
92
|
-
Float(string.
|
|
98
|
+
Float(string.delete(',_').gsub(/\.([Ee]|$)/, '\1'))
|
|
93
99
|
end
|
|
94
|
-
elsif string.match?(
|
|
100
|
+
elsif string.match?(integer_regex)
|
|
95
101
|
parse_int string
|
|
96
102
|
else
|
|
97
103
|
string
|
|
@@ -101,7 +107,7 @@ module Psych
|
|
|
101
107
|
###
|
|
102
108
|
# Parse and return an int from +string+
|
|
103
109
|
def parse_int string
|
|
104
|
-
Integer(string.
|
|
110
|
+
Integer(string.delete(',_'))
|
|
105
111
|
end
|
|
106
112
|
|
|
107
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
|
|
|
@@ -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
|
|
@@ -272,6 +272,8 @@ module Psych
|
|
|
272
272
|
tag = 'tag:yaml.org,2002:str'
|
|
273
273
|
plain = false
|
|
274
274
|
quote = false
|
|
275
|
+
elsif o == 'y' || o == 'n'
|
|
276
|
+
style = Nodes::Scalar::DOUBLE_QUOTED
|
|
275
277
|
elsif @line_width && o.length > @line_width
|
|
276
278
|
style = Nodes::Scalar::FOLDED
|
|
277
279
|
elsif o =~ /^[^[:word:]][^"]*$/
|
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,28 +12,28 @@ 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
|
|
33
33
|
#
|
|
34
34
|
# Psych is a YAML parser and emitter.
|
|
35
35
|
# Psych leverages libyaml [Home page: https://pyyaml.org/wiki/LibYAML]
|
|
36
|
-
# or [
|
|
36
|
+
# or [git repo: https://github.com/yaml/libyaml] for its YAML parsing
|
|
37
37
|
# and emitting capabilities. In addition to wrapping libyaml, Psych also
|
|
38
38
|
# knows how to serialize and de-serialize most Ruby objects to and from
|
|
39
39
|
# the YAML format.
|
|
@@ -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.4
|
|
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-05-16 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
138
138
|
version: '0'
|
|
139
139
|
requirements:
|
|
140
140
|
- jar org.yaml:snakeyaml, 1.28
|
|
141
|
-
rubygems_version: 3.
|
|
141
|
+
rubygems_version: 3.2.29
|
|
142
142
|
signing_key:
|
|
143
143
|
specification_version: 4
|
|
144
144
|
summary: Psych is a YAML parser and emitter
|