psych 4.0.0 → 5.1.2
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/CONTRIBUTING.md +24 -0
- data/README.md +6 -5
- data/ext/psych/depend +13 -1
- data/ext/psych/extconf.rb +40 -30
- data/ext/psych/psych_parser.c +19 -33
- data/lib/psych/class_loader.rb +5 -5
- data/lib/psych/core_ext.rb +1 -1
- data/lib/psych/exception.rb +16 -2
- 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/parser.rb +13 -0
- data/lib/psych/scalar_scanner.rb +22 -16
- data/lib/psych/syntax_error.rb +1 -1
- data/lib/psych/tree_builder.rb +3 -3
- data/lib/psych/versions.rb +2 -2
- data/lib/psych/visitors/json_tree.rb +1 -1
- data/lib/psych/visitors/to_ruby.rb +11 -9
- data/lib/psych/visitors/yaml_tree.rb +65 -18
- data/lib/psych/visitors.rb +6 -6
- data/lib/psych.rb +135 -48
- metadata +22 -25
- data/.gitignore +0 -16
- data/Gemfile +0 -9
- data/Mavenfile +0 -7
- data/Rakefile +0 -41
- data/bin/console +0 -7
- data/bin/setup +0 -6
- data/ext/psych/yaml/LICENSE +0 -19
- data/ext/psych/yaml/api.c +0 -1393
- data/ext/psych/yaml/config.h +0 -80
- data/ext/psych/yaml/dumper.c +0 -394
- data/ext/psych/yaml/emitter.c +0 -2358
- data/ext/psych/yaml/loader.c +0 -544
- data/ext/psych/yaml/parser.c +0 -1375
- data/ext/psych/yaml/reader.c +0 -469
- data/ext/psych/yaml/scanner.c +0 -3598
- data/ext/psych/yaml/writer.c +0 -141
- data/ext/psych/yaml/yaml.h +0 -1985
- data/ext/psych/yaml/yaml_private.h +0 -688
- data/psych.gemspec +0 -67
@@ -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
|
@@ -15,30 +15,29 @@ module Psych
|
|
15
15
|
class YAMLTree < Psych::Visitors::Visitor
|
16
16
|
class Registrar # :nodoc:
|
17
17
|
def initialize
|
18
|
-
@obj_to_id = {}
|
19
|
-
@obj_to_node = {}
|
18
|
+
@obj_to_id = {}.compare_by_identity
|
19
|
+
@obj_to_node = {}.compare_by_identity
|
20
20
|
@targets = []
|
21
21
|
@counter = 0
|
22
22
|
end
|
23
23
|
|
24
24
|
def register target, node
|
25
|
-
return unless target.respond_to? :object_id
|
26
25
|
@targets << target
|
27
|
-
@obj_to_node[target
|
26
|
+
@obj_to_node[target] = node
|
28
27
|
end
|
29
28
|
|
30
29
|
def key? target
|
31
|
-
@obj_to_node.key? target
|
30
|
+
@obj_to_node.key? target
|
32
31
|
rescue NoMethodError
|
33
32
|
false
|
34
33
|
end
|
35
34
|
|
36
35
|
def id_for target
|
37
|
-
@obj_to_id[target
|
36
|
+
@obj_to_id[target] ||= (@counter += 1)
|
38
37
|
end
|
39
38
|
|
40
39
|
def node_for target
|
41
|
-
@obj_to_node[target
|
40
|
+
@obj_to_node[target]
|
42
41
|
end
|
43
42
|
end
|
44
43
|
|
@@ -192,12 +191,13 @@ module Psych
|
|
192
191
|
register o, @emitter.scalar(o.inspect, nil, '!ruby/regexp', false, false, Nodes::Scalar::ANY)
|
193
192
|
end
|
194
193
|
|
194
|
+
def visit_Date o
|
195
|
+
register o, visit_Integer(o.gregorian)
|
196
|
+
end
|
197
|
+
|
195
198
|
def visit_DateTime o
|
196
|
-
|
197
|
-
|
198
|
-
else
|
199
|
-
o.strftime("%Y-%m-%d %H:%M:%S.%9N %:z".freeze)
|
200
|
-
end
|
199
|
+
t = o.italy
|
200
|
+
formatted = format_time t, t.offset.zero?
|
201
201
|
tag = '!ruby/object:DateTime'
|
202
202
|
register o, @emitter.scalar(formatted, nil, tag, false, false, Nodes::Scalar::ANY)
|
203
203
|
end
|
@@ -235,7 +235,6 @@ module Psych
|
|
235
235
|
end
|
236
236
|
alias :visit_TrueClass :visit_Integer
|
237
237
|
alias :visit_FalseClass :visit_Integer
|
238
|
-
alias :visit_Date :visit_Integer
|
239
238
|
|
240
239
|
def visit_Float o
|
241
240
|
if o.nan?
|
@@ -272,6 +271,8 @@ module Psych
|
|
272
271
|
tag = 'tag:yaml.org,2002:str'
|
273
272
|
plain = false
|
274
273
|
quote = false
|
274
|
+
elsif o == 'y' || o == 'n'
|
275
|
+
style = Nodes::Scalar::DOUBLE_QUOTED
|
275
276
|
elsif @line_width && o.length > @line_width
|
276
277
|
style = Nodes::Scalar::FOLDED
|
277
278
|
elsif o =~ /^[^[:word:]][^"]*$/
|
@@ -480,8 +481,8 @@ module Psych
|
|
480
481
|
@emitter.end_mapping
|
481
482
|
end
|
482
483
|
|
483
|
-
def format_time time
|
484
|
-
if
|
484
|
+
def format_time time, utc = time.utc?
|
485
|
+
if utc
|
485
486
|
time.strftime("%Y-%m-%d %H:%M:%S.%9N Z")
|
486
487
|
else
|
487
488
|
time.strftime("%Y-%m-%d %H:%M:%S.%9N %:z")
|
@@ -535,5 +536,51 @@ module Psych
|
|
535
536
|
end
|
536
537
|
end
|
537
538
|
end
|
539
|
+
|
540
|
+
class RestrictedYAMLTree < YAMLTree
|
541
|
+
DEFAULT_PERMITTED_CLASSES = {
|
542
|
+
TrueClass => true,
|
543
|
+
FalseClass => true,
|
544
|
+
NilClass => true,
|
545
|
+
Integer => true,
|
546
|
+
Float => true,
|
547
|
+
String => true,
|
548
|
+
Array => true,
|
549
|
+
Hash => true,
|
550
|
+
}.compare_by_identity.freeze
|
551
|
+
|
552
|
+
def initialize emitter, ss, options
|
553
|
+
super
|
554
|
+
@permitted_classes = DEFAULT_PERMITTED_CLASSES.dup
|
555
|
+
Array(options[:permitted_classes]).each do |klass|
|
556
|
+
@permitted_classes[klass] = true
|
557
|
+
end
|
558
|
+
@permitted_symbols = {}.compare_by_identity
|
559
|
+
Array(options[:permitted_symbols]).each do |symbol|
|
560
|
+
@permitted_symbols[symbol] = true
|
561
|
+
end
|
562
|
+
@aliases = options.fetch(:aliases, false)
|
563
|
+
end
|
564
|
+
|
565
|
+
def accept target
|
566
|
+
if !@aliases && @st.key?(target)
|
567
|
+
raise BadAlias, "Tried to dump an aliased object"
|
568
|
+
end
|
569
|
+
|
570
|
+
unless Symbol === target || @permitted_classes[target.class]
|
571
|
+
raise DisallowedClass.new('dump', target.class.name || target.class.inspect)
|
572
|
+
end
|
573
|
+
|
574
|
+
super
|
575
|
+
end
|
576
|
+
|
577
|
+
def visit_Symbol sym
|
578
|
+
unless @permitted_classes[Symbol] || @permitted_symbols[sym]
|
579
|
+
raise DisallowedClass.new('dump', "Symbol(#{sym.inspect})")
|
580
|
+
end
|
581
|
+
|
582
|
+
super
|
583
|
+
end
|
584
|
+
end
|
538
585
|
end
|
539
586
|
end
|
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.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
|
@@ -282,7 +281,8 @@ module Psych
|
|
282
281
|
# * TrueClass
|
283
282
|
# * FalseClass
|
284
283
|
# * NilClass
|
285
|
-
# *
|
284
|
+
# * Integer
|
285
|
+
# * Float
|
286
286
|
# * String
|
287
287
|
# * Array
|
288
288
|
# * Hash
|
@@ -307,7 +307,7 @@ module Psych
|
|
307
307
|
# A Psych::DisallowedClass exception will be raised if the yaml contains a
|
308
308
|
# class that isn't in the +permitted_classes+ list.
|
309
309
|
#
|
310
|
-
# A Psych::
|
310
|
+
# A Psych::AliasesNotEnabled exception will be raised if the yaml contains aliases
|
311
311
|
# but the +aliases+ keyword argument is set to false.
|
312
312
|
#
|
313
313
|
# +filename+ will be used in the exception message if any exception is raised
|
@@ -319,13 +319,13 @@ module Psych
|
|
319
319
|
# Psych.safe_load("---\n foo: bar") # => {"foo"=>"bar"}
|
320
320
|
# Psych.safe_load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"}
|
321
321
|
#
|
322
|
-
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
|
323
323
|
result = parse(yaml, filename: filename)
|
324
324
|
return fallback unless result
|
325
325
|
|
326
326
|
class_loader = ClassLoader::Restricted.new(permitted_classes.map(&:to_s),
|
327
327
|
permitted_symbols.map(&:to_s))
|
328
|
-
scanner = ScalarScanner.new class_loader
|
328
|
+
scanner = ScalarScanner.new class_loader, strict_integer: strict_integer
|
329
329
|
visitor = if aliases
|
330
330
|
Visitors::ToRuby.new scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze
|
331
331
|
else
|
@@ -365,14 +365,15 @@ module Psych
|
|
365
365
|
# Raises a TypeError when `yaml` parameter is NilClass. This method is
|
366
366
|
# similar to `safe_load` except that `Symbol` objects are allowed by default.
|
367
367
|
#
|
368
|
-
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
|
369
369
|
safe_load yaml, permitted_classes: permitted_classes,
|
370
370
|
permitted_symbols: permitted_symbols,
|
371
371
|
aliases: aliases,
|
372
372
|
filename: filename,
|
373
373
|
fallback: fallback,
|
374
374
|
symbolize_names: symbolize_names,
|
375
|
-
freeze: freeze
|
375
|
+
freeze: freeze,
|
376
|
+
strict_integer: strict_integer
|
376
377
|
end
|
377
378
|
|
378
379
|
###
|
@@ -512,6 +513,79 @@ module Psych
|
|
512
513
|
visitor.tree.yaml io, options
|
513
514
|
end
|
514
515
|
|
516
|
+
###
|
517
|
+
# call-seq:
|
518
|
+
# Psych.safe_dump(o) -> string of yaml
|
519
|
+
# Psych.safe_dump(o, options) -> string of yaml
|
520
|
+
# Psych.safe_dump(o, io) -> io object passed in
|
521
|
+
# Psych.safe_dump(o, io, options) -> io object passed in
|
522
|
+
#
|
523
|
+
# Safely dump Ruby object +o+ to a YAML string. Optional +options+ may be passed in
|
524
|
+
# to control the output format. If an IO object is passed in, the YAML will
|
525
|
+
# be dumped to that IO object. By default, only the following
|
526
|
+
# classes are allowed to be serialized:
|
527
|
+
#
|
528
|
+
# * TrueClass
|
529
|
+
# * FalseClass
|
530
|
+
# * NilClass
|
531
|
+
# * Integer
|
532
|
+
# * Float
|
533
|
+
# * String
|
534
|
+
# * Array
|
535
|
+
# * Hash
|
536
|
+
#
|
537
|
+
# Arbitrary classes can be allowed by adding those classes to the +permitted_classes+
|
538
|
+
# keyword argument. They are additive. For example, to allow Date serialization:
|
539
|
+
#
|
540
|
+
# Psych.safe_dump(yaml, permitted_classes: [Date])
|
541
|
+
#
|
542
|
+
# Now the Date class can be dumped in addition to the classes listed above.
|
543
|
+
#
|
544
|
+
# A Psych::DisallowedClass exception will be raised if the object contains a
|
545
|
+
# class that isn't in the +permitted_classes+ list.
|
546
|
+
#
|
547
|
+
# Currently supported options are:
|
548
|
+
#
|
549
|
+
# [<tt>:indentation</tt>] Number of space characters used to indent.
|
550
|
+
# Acceptable value should be in <tt>0..9</tt> range,
|
551
|
+
# otherwise option is ignored.
|
552
|
+
#
|
553
|
+
# Default: <tt>2</tt>.
|
554
|
+
# [<tt>:line_width</tt>] Max character to wrap line at.
|
555
|
+
#
|
556
|
+
# Default: <tt>0</tt> (meaning "wrap at 81").
|
557
|
+
# [<tt>:canonical</tt>] Write "canonical" YAML form (very verbose, yet
|
558
|
+
# strictly formal).
|
559
|
+
#
|
560
|
+
# Default: <tt>false</tt>.
|
561
|
+
# [<tt>:header</tt>] Write <tt>%YAML [version]</tt> at the beginning of document.
|
562
|
+
#
|
563
|
+
# Default: <tt>false</tt>.
|
564
|
+
#
|
565
|
+
# Example:
|
566
|
+
#
|
567
|
+
# # Dump an array, get back a YAML string
|
568
|
+
# Psych.safe_dump(['a', 'b']) # => "---\n- a\n- b\n"
|
569
|
+
#
|
570
|
+
# # Dump an array to an IO object
|
571
|
+
# Psych.safe_dump(['a', 'b'], StringIO.new) # => #<StringIO:0x000001009d0890>
|
572
|
+
#
|
573
|
+
# # Dump an array with indentation set
|
574
|
+
# Psych.safe_dump(['a', ['b']], indentation: 3) # => "---\n- a\n- - b\n"
|
575
|
+
#
|
576
|
+
# # Dump an array to an IO with indentation set
|
577
|
+
# Psych.safe_dump(['a', ['b']], StringIO.new, indentation: 3)
|
578
|
+
def self.safe_dump o, io = nil, options = {}
|
579
|
+
if Hash === io
|
580
|
+
options = io
|
581
|
+
io = nil
|
582
|
+
end
|
583
|
+
|
584
|
+
visitor = Psych::Visitors::RestrictedYAMLTree.create options
|
585
|
+
visitor << o
|
586
|
+
visitor.tree.yaml io, options
|
587
|
+
end
|
588
|
+
|
515
589
|
###
|
516
590
|
# Dump a list of objects as separate documents to a document stream.
|
517
591
|
#
|
@@ -575,7 +649,6 @@ module Psych
|
|
575
649
|
self.unsafe_load f, filename: filename, **kwargs
|
576
650
|
}
|
577
651
|
end
|
578
|
-
class << self; alias :load_file :unsafe_load_file; end
|
579
652
|
|
580
653
|
###
|
581
654
|
# Safely loads the document contained in +filename+. Returns the yaml contained in
|
@@ -587,7 +660,17 @@ module Psych
|
|
587
660
|
self.safe_load f, filename: filename, **kwargs
|
588
661
|
}
|
589
662
|
end
|
590
|
-
|
663
|
+
|
664
|
+
###
|
665
|
+
# Loads the document contained in +filename+. Returns the yaml contained in
|
666
|
+
# +filename+ as a Ruby object, or if the file is empty, it returns
|
667
|
+
# the specified +fallback+ return value, which defaults to +false+.
|
668
|
+
# See load for options.
|
669
|
+
def self.load_file filename, **kwargs
|
670
|
+
File.open(filename, 'r:bom|utf-8') { |f|
|
671
|
+
self.load f, filename: filename, **kwargs
|
672
|
+
}
|
673
|
+
end
|
591
674
|
|
592
675
|
# :stopdoc:
|
593
676
|
def self.add_domain_type domain, type_tag, &block
|
@@ -611,26 +694,8 @@ module Psych
|
|
611
694
|
dump_tags[klass] = tag
|
612
695
|
end
|
613
696
|
|
614
|
-
# Workaround for emulating `warn '...', uplevel: 1` in Ruby 2.4 or lower.
|
615
|
-
def self.warn_with_uplevel(message, uplevel: 1)
|
616
|
-
at = parse_caller(caller[uplevel]).join(':')
|
617
|
-
warn "#{at}: #{message}"
|
618
|
-
end
|
619
|
-
|
620
|
-
def self.parse_caller(at)
|
621
|
-
if /^(.+?):(\d+)(?::in `.*')?/ =~ at
|
622
|
-
file = $1
|
623
|
-
line = $2.to_i
|
624
|
-
[file, line]
|
625
|
-
end
|
626
|
-
end
|
627
|
-
private_class_method :warn_with_uplevel, :parse_caller
|
628
|
-
|
629
697
|
class << self
|
630
698
|
if defined?(Ractor)
|
631
|
-
require 'forwardable'
|
632
|
-
extend Forwardable
|
633
|
-
|
634
699
|
class Config
|
635
700
|
attr_accessor :load_tags, :dump_tags, :domain_types
|
636
701
|
def initialize
|
@@ -644,7 +709,29 @@ module Psych
|
|
644
709
|
Ractor.current[:PsychConfig] ||= Config.new
|
645
710
|
end
|
646
711
|
|
647
|
-
|
712
|
+
def load_tags
|
713
|
+
config.load_tags
|
714
|
+
end
|
715
|
+
|
716
|
+
def dump_tags
|
717
|
+
config.dump_tags
|
718
|
+
end
|
719
|
+
|
720
|
+
def domain_types
|
721
|
+
config.domain_types
|
722
|
+
end
|
723
|
+
|
724
|
+
def load_tags=(value)
|
725
|
+
config.load_tags = value
|
726
|
+
end
|
727
|
+
|
728
|
+
def dump_tags=(value)
|
729
|
+
config.dump_tags = value
|
730
|
+
end
|
731
|
+
|
732
|
+
def domain_types=(value)
|
733
|
+
config.domain_types = value
|
734
|
+
end
|
648
735
|
else
|
649
736
|
attr_accessor :load_tags
|
650
737
|
attr_accessor :dump_tags
|
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
|
+
version: 5.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
@@ -10,8 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
14
|
-
dependencies:
|
13
|
+
date: 2023-12-19 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: stringio
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ">="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
15
29
|
description: |
|
16
30
|
Psych is a YAML parser and emitter. Psych leverages libyaml[https://pyyaml.org/wiki/LibYAML]
|
17
31
|
for its YAML parsing and emitting capabilities. In addition to wrapping libyaml,
|
@@ -26,14 +40,9 @@ extensions:
|
|
26
40
|
extra_rdoc_files:
|
27
41
|
- README.md
|
28
42
|
files:
|
29
|
-
-
|
30
|
-
- Gemfile
|
43
|
+
- CONTRIBUTING.md
|
31
44
|
- LICENSE
|
32
|
-
- Mavenfile
|
33
45
|
- README.md
|
34
|
-
- Rakefile
|
35
|
-
- bin/console
|
36
|
-
- bin/setup
|
37
46
|
- ext/psych/depend
|
38
47
|
- ext/psych/extconf.rb
|
39
48
|
- ext/psych/psych.c
|
@@ -46,18 +55,6 @@ files:
|
|
46
55
|
- ext/psych/psych_to_ruby.h
|
47
56
|
- ext/psych/psych_yaml_tree.c
|
48
57
|
- ext/psych/psych_yaml_tree.h
|
49
|
-
- ext/psych/yaml/LICENSE
|
50
|
-
- ext/psych/yaml/api.c
|
51
|
-
- ext/psych/yaml/config.h
|
52
|
-
- ext/psych/yaml/dumper.c
|
53
|
-
- ext/psych/yaml/emitter.c
|
54
|
-
- ext/psych/yaml/loader.c
|
55
|
-
- ext/psych/yaml/parser.c
|
56
|
-
- ext/psych/yaml/reader.c
|
57
|
-
- ext/psych/yaml/scanner.c
|
58
|
-
- ext/psych/yaml/writer.c
|
59
|
-
- ext/psych/yaml/yaml.h
|
60
|
-
- ext/psych/yaml/yaml_private.h
|
61
58
|
- lib/psych.rb
|
62
59
|
- lib/psych/class_loader.rb
|
63
60
|
- lib/psych/coder.rb
|
@@ -95,11 +92,11 @@ files:
|
|
95
92
|
- lib/psych/visitors/visitor.rb
|
96
93
|
- lib/psych/visitors/yaml_tree.rb
|
97
94
|
- lib/psych/y.rb
|
98
|
-
- psych.gemspec
|
99
95
|
homepage: https://github.com/ruby/psych
|
100
96
|
licenses:
|
101
97
|
- MIT
|
102
|
-
metadata:
|
98
|
+
metadata:
|
99
|
+
msys2_mingw_dependencies: libyaml
|
103
100
|
post_install_message:
|
104
101
|
rdoc_options:
|
105
102
|
- "--main"
|
@@ -110,14 +107,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
107
|
requirements:
|
111
108
|
- - ">="
|
112
109
|
- !ruby/object:Gem::Version
|
113
|
-
version: 2.
|
110
|
+
version: 2.5.0
|
114
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
112
|
requirements:
|
116
113
|
- - ">="
|
117
114
|
- !ruby/object:Gem::Version
|
118
115
|
version: '0'
|
119
116
|
requirements: []
|
120
|
-
rubygems_version: 3.
|
117
|
+
rubygems_version: 3.5.1
|
121
118
|
signing_key:
|
122
119
|
specification_version: 4
|
123
120
|
summary: Psych is a YAML parser and emitter
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/Mavenfile
DELETED
data/Rakefile
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require "bundler"
|
2
|
-
Bundler::GemHelper.install_tasks
|
3
|
-
|
4
|
-
require "rake/testtask"
|
5
|
-
Rake::TestTask.new(:test) do |t|
|
6
|
-
t.libs << "test/lib" << "test"
|
7
|
-
t.ruby_opts << "-rhelper"
|
8
|
-
t.test_files = FileList['test/**/test_*.rb']
|
9
|
-
t.verbose = true
|
10
|
-
t.warning = true
|
11
|
-
end
|
12
|
-
|
13
|
-
if RUBY_PLATFORM =~ /java/
|
14
|
-
require 'rake/javaextensiontask'
|
15
|
-
Rake::JavaExtensionTask.new("psych") do |ext|
|
16
|
-
require 'maven/ruby/maven'
|
17
|
-
# force load of versions to overwrite constants with values from repo.
|
18
|
-
load './lib/psych/versions.rb'
|
19
|
-
# uses Mavenfile to write classpath into pkg/classpath
|
20
|
-
# and tell maven via system properties the snakeyaml version
|
21
|
-
# this is basically the same as running from the commandline:
|
22
|
-
# rmvn dependency:build-classpath -Dsnakeyaml.version='use version from Psych::DEFAULT_SNAKEYAML_VERSION here'
|
23
|
-
Maven::Ruby::Maven.new.exec('dependency:build-classpath', "-Dsnakeyaml.version=#{Psych::DEFAULT_SNAKEYAML_VERSION}", '-Dverbose=true')
|
24
|
-
ext.source_version = '1.7'
|
25
|
-
ext.target_version = '1.7'
|
26
|
-
ext.classpath = File.read('pkg/classpath')
|
27
|
-
ext.ext_dir = 'ext/java'
|
28
|
-
end
|
29
|
-
else
|
30
|
-
require 'rake/extensiontask'
|
31
|
-
Rake::ExtensionTask.new("psych")
|
32
|
-
end
|
33
|
-
|
34
|
-
task :sync_tool do
|
35
|
-
require 'fileutils'
|
36
|
-
FileUtils.cp "../ruby/tool/lib/test/unit/core_assertions.rb", "./test/lib"
|
37
|
-
FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
|
38
|
-
FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
|
39
|
-
end
|
40
|
-
|
41
|
-
task :default => [:compile, :test]
|
data/bin/console
DELETED
data/bin/setup
DELETED
data/ext/psych/yaml/LICENSE
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
Copyright (c) 2006 Kirill Simonov
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4
|
-
this software and associated documentation files (the "Software"), to deal in
|
5
|
-
the Software without restriction, including without limitation the rights to
|
6
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
7
|
-
of the Software, and to permit persons to whom the Software is furnished to do
|
8
|
-
so, subject to the following conditions:
|
9
|
-
|
10
|
-
The above copyright notice and this permission notice shall be included in all
|
11
|
-
copies or substantial portions of the Software.
|
12
|
-
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
-
SOFTWARE.
|