psych 3.2.1-java → 3.3.0-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41080752c6cb77f7ba4d02b6ecbe2ad1aa2c09d65a8517f382b058b0c6403eea
4
- data.tar.gz: 811715a35a69851bc6bafece15c79044a90fa1f41f4244edf9f849f46bae6a42
3
+ metadata.gz: 07175c114aaed4a3bc43893283642e907290b3c24178197185ef05d0e66c4b92
4
+ data.tar.gz: d85e294b5c13fd28a65995a955a2fdbc19e4c8f994f8319e66a9575f95d211dc
5
5
  SHA512:
6
- metadata.gz: 24f57e51181b8e2e37fe56521ff187259af539d1fd5857ffa07702e398ae1fdf2a7675bc528249afb860e6bab6eee77aa0fcbe89d75b762cd3a1895e6e44abcd
7
- data.tar.gz: 63f862bae8f2abf207bc0b27e4b473820188b4e4ae0f1e0d774a76c641dad97c83fa29021a237e40ecfb1ece05560843936630618a005bd530954fde216fdf2b
6
+ metadata.gz: 5e27409598fced4c6c42b7c618e190b64dc64cf64fa3b730b3ed8e9c948c054800bdbd13c9ba4d6c58d88862f9b78c1d53b3b483f0f7d2314f5a4729d9556a82
7
+ data.tar.gz: 9bed3482df75bdbd9344d13657035a889bcf7b3ff1182aaf1a17ea3411aba028c89448b279f514b108e194903713430c3b7a2224e87fa1ede425dc8b2bfed93a
@@ -22,6 +22,9 @@ VALUE mPsych;
22
22
 
23
23
  void Init_psych(void)
24
24
  {
25
+ #ifdef HAVE_RB_EXT_RACTOR_SAFE
26
+ RB_EXT_RACTOR_SAFE(true);
27
+ #endif
25
28
  mPsych = rb_define_module("Psych");
26
29
 
27
30
  rb_define_singleton_method(mPsych, "libyaml_version", libyaml_version, 0);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @file yaml.h
3
3
  * @brief Public interface for libyaml.
4
- *
4
+ *
5
5
  * Include the header file with the code:
6
6
  * @code
7
7
  * #include <yaml.h>
@@ -390,7 +390,7 @@ typedef struct yaml_event_s {
390
390
 
391
391
  /** The event data. */
392
392
  union {
393
-
393
+
394
394
  /** The stream parameters (for @c YAML_STREAM_START_EVENT). */
395
395
  struct {
396
396
  /** The document encoding. */
@@ -726,7 +726,7 @@ struct yaml_node_s {
726
726
 
727
727
  /** The node data. */
728
728
  union {
729
-
729
+
730
730
  /** The scalar parameters (for @c YAML_SCALAR_NODE). */
731
731
  struct {
732
732
  /** The scalar value. */
@@ -233,9 +233,9 @@ require 'psych/class_loader'
233
233
 
234
234
  module Psych
235
235
  # The version of libyaml Psych is using
236
- LIBYAML_VERSION = Psych.libyaml_version.join '.'
236
+ LIBYAML_VERSION = Psych.libyaml_version.join('.').freeze
237
237
  # Deprecation guard
238
- NOT_GIVEN = Object.new
238
+ NOT_GIVEN = Object.new.freeze
239
239
  private_constant :NOT_GIVEN
240
240
 
241
241
  ###
@@ -595,28 +595,25 @@ module Psych
595
595
  end
596
596
 
597
597
  # :stopdoc:
598
- @domain_types = {}
599
598
  def self.add_domain_type domain, type_tag, &block
600
599
  key = ['tag', domain, type_tag].join ':'
601
- @domain_types[key] = [key, block]
602
- @domain_types["tag:#{type_tag}"] = [key, block]
600
+ domain_types[key] = [key, block]
601
+ domain_types["tag:#{type_tag}"] = [key, block]
603
602
  end
604
603
 
605
604
  def self.add_builtin_type type_tag, &block
606
605
  domain = 'yaml.org,2002'
607
606
  key = ['tag', domain, type_tag].join ':'
608
- @domain_types[key] = [key, block]
607
+ domain_types[key] = [key, block]
609
608
  end
610
609
 
611
610
  def self.remove_type type_tag
612
- @domain_types.delete type_tag
611
+ domain_types.delete type_tag
613
612
  end
614
613
 
615
- @load_tags = {}
616
- @dump_tags = {}
617
614
  def self.add_tag tag, klass
618
- @load_tags[tag] = klass.name
619
- @dump_tags[klass] = tag
615
+ load_tags[tag] = klass.name
616
+ dump_tags[klass] = tag
620
617
  end
621
618
 
622
619
  # Workaround for emulating `warn '...', uplevel: 1` in Ruby 2.4 or lower.
@@ -635,9 +632,32 @@ module Psych
635
632
  private_class_method :warn_with_uplevel, :parse_caller
636
633
 
637
634
  class << self
638
- attr_accessor :load_tags
639
- attr_accessor :dump_tags
640
- attr_accessor :domain_types
635
+ if defined?(Ractor)
636
+ require 'forwardable'
637
+ extend Forwardable
638
+
639
+ class Config
640
+ attr_accessor :load_tags, :dump_tags, :domain_types
641
+ def initialize
642
+ @load_tags = {}
643
+ @dump_tags = {}
644
+ @domain_types = {}
645
+ end
646
+ end
647
+
648
+ def config
649
+ Ractor.current[:PsychConfig] ||= Config.new
650
+ end
651
+
652
+ def_delegators :config, :load_tags, :dump_tags, :domain_types, :load_tags=, :dump_tags=, :domain_types=
653
+ else
654
+ attr_accessor :load_tags
655
+ attr_accessor :dump_tags
656
+ attr_accessor :domain_types
657
+ end
641
658
  end
659
+ self.load_tags = {}
660
+ self.dump_tags = {}
661
+ self.domain_types = {}
642
662
  # :startdoc:
643
663
  end
@@ -35,9 +35,11 @@ module Psych
35
35
 
36
36
  constants.each do |const|
37
37
  konst = const_get const
38
- define_method(const.to_s.downcase) do
39
- load konst
40
- end
38
+ class_eval <<~RUBY
39
+ def #{const.to_s.downcase}
40
+ load #{konst.inspect}
41
+ end
42
+ RUBY
41
43
  end
42
44
 
43
45
  private
@@ -69,7 +71,7 @@ module Psych
69
71
  rescue
70
72
  nil
71
73
  end
72
- }.compact]
74
+ }.compact].freeze
73
75
 
74
76
  class Restricted < ClassLoader
75
77
  def initialize classes, symbols
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
  module Psych
4
4
  # The version of Psych you are using
5
- VERSION = '3.2.1'
5
+ VERSION = '3.3.0'
6
6
 
7
7
  if RUBY_ENGINE == 'jruby'
8
8
  DEFAULT_SNAKEYAML_VERSION = '1.26'.freeze
@@ -8,12 +8,26 @@ module Psych
8
8
 
9
9
  private
10
10
 
11
- DISPATCH = Hash.new do |hash, klass|
12
- hash[klass] = "visit_#{klass.name.gsub('::', '_')}"
11
+ # @api private
12
+ def self.dispatch_cache
13
+ Hash.new do |hash, klass|
14
+ hash[klass] = :"visit_#{klass.name.gsub('::', '_')}"
15
+ end.compare_by_identity
16
+ end
17
+
18
+ if defined?(Ractor)
19
+ def dispatch
20
+ Ractor.current[:Psych_Visitors_Visitor] ||= Visitor.dispatch_cache
21
+ end
22
+ else
23
+ DISPATCH = dispatch_cache
24
+ def dispatch
25
+ DISPATCH
26
+ end
13
27
  end
14
28
 
15
29
  def visit target
16
- send DISPATCH[target.class], target
30
+ send dispatch[target.class], target
17
31
  end
18
32
  end
19
33
  end
@@ -80,7 +80,7 @@ module Psych
80
80
  raise(TypeError, "Can't dump #{target.class}") unless method
81
81
 
82
82
  h[klass] = method
83
- end
83
+ end.compare_by_identity
84
84
  end
85
85
 
86
86
  def start encoding = Nodes::Stream::UTF8
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: 3.2.1
4
+ version: 3.3.0
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: 2020-12-14 00:00:00.000000000 Z
13
+ date: 2020-12-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement