psych 5.2.3-java → 5.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d45c3d790110adf9d97e497f2d25341ecc113b430e6ca0c29aa12104d16e98f
4
- data.tar.gz: 0b1dd144c01696b7c2be6271e7aee97072180f3bc387c2eb75b9d0705e3a21ad
3
+ metadata.gz: 8a97e733fa3c4ea8606ef1f5288d033dcf27f4a488d74fe2124ee689c62f1f78
4
+ data.tar.gz: 577a281e8dcd0dd1cc2508eaab0b3145f490083e323966d3ca4695411e4ff6b0
5
5
  SHA512:
6
- metadata.gz: 987a2cc829bd9e4ddfe8ec67cdcdec388f70e42e240c333a00980692fd480a52d5c0e9fe7610b6ca6f3c61b2b83b4c74778d6ebc9ce3075772d1519bac62e1e5
7
- data.tar.gz: 570dca8b9137bab7c0c41e7f04427176facd27760dd0e641c214bb976917001919997e5b51dd5f753e322e0c7af48d53fe9a9cd594413b9833a7812b46f197b0
6
+ metadata.gz: 2cd02e8732496426e0a87dad9d4d631136bf7dfe48067e7b5541b9d90d53964367129e20a656a164a0008834585502939902fc4c3af8cbccb273cd8cc10e3238
7
+ data.tar.gz: 986ce2cc86e399c46f096a30cf8a87c9d3d6f3025f3a48e50bf3838f253b0f213d7f797db7d955d77d8a87a227dfcc8ac97a8baf19910be59c74fd4a539d48b0
@@ -41,11 +41,15 @@ import org.jruby.runtime.Visibility;
41
41
  import org.jruby.runtime.builtin.IRubyObject;
42
42
  import org.jruby.runtime.load.Library;
43
43
 
44
+ import org.snakeyaml.engine.v2.common.SpecVersion;
45
+
44
46
  import java.io.IOException;
45
47
  import java.io.InputStream;
46
48
  import java.util.Properties;
47
49
 
48
50
  public class PsychLibrary implements Library {
51
+
52
+ private static final String POM_PROPERTIES = "META-INF/maven/org.snakeyaml/snakeyaml-engine/pom.properties";
49
53
  private static final String DUMMY_VERSION = "0.0";
50
54
 
51
55
  public void load(final Ruby runtime, boolean wrap) {
@@ -53,23 +57,23 @@ public class PsychLibrary implements Library {
53
57
 
54
58
  // load version from properties packed with the jar
55
59
  Properties props = new Properties();
56
- try( InputStream is = runtime.getJRubyClassLoader().getResourceAsStream("META-INF/maven/org.snakeyaml/snakeyaml-engine/pom.properties") ) {
57
- props.load(is);
60
+ try( InputStream is = SpecVersion.class.getResourceAsStream(POM_PROPERTIES) ) {
61
+ if (is != null) props.load(is);
58
62
  }
59
63
  catch( IOException e ) {
60
64
  // ignored
61
65
  }
62
66
  String snakeyamlVersion = props.getProperty("version", DUMMY_VERSION);
63
67
 
68
+ RubyString version = runtime.newString(snakeyamlVersion);
69
+ version.setFrozen(true);
70
+ psych.setConstant("SNAKEYAML_VERSION", version); // e.g. 2.10-SNAPSHOT
71
+
64
72
  if (snakeyamlVersion.endsWith("-SNAPSHOT")) {
65
73
  snakeyamlVersion = snakeyamlVersion.substring(0, snakeyamlVersion.length() - "-SNAPSHOT".length());
66
74
  }
67
75
 
68
- RubyString version = runtime.newString(snakeyamlVersion + ".0");
69
- version.setFrozen(true);
70
- psych.setConstant("SNAKEYAML_VERSION", version);
71
-
72
- String[] versionParts = version.toString().split("\\.");
76
+ String[] versionParts = (snakeyamlVersion + ".0").split("\\."); // 2.10-SNAPSHOT -> 2.10.0
73
77
  final RubyArray versionElements = runtime.newArray(runtime.newFixnum(Integer.parseInt(versionParts[0])), runtime.newFixnum(Integer.parseInt(versionParts[1])), runtime.newFixnum(Integer.parseInt(versionParts[2])));
74
78
  versionElements.setFrozen(true);
75
79
 
@@ -17,3 +17,17 @@ end
17
17
  if defined?(::IRB)
18
18
  require_relative 'y'
19
19
  end
20
+
21
+
22
+ # TODO: how best to check for builtin Set?
23
+ if defined?(::Set) && Object.const_source_location(:Set) == ["ruby", 0]
24
+ class Set
25
+ def encode_with(coder)
26
+ coder["hash"] = to_h
27
+ end
28
+
29
+ def init_with(coder)
30
+ replace(coder["hash"].keys)
31
+ end
32
+ end
33
+ end
@@ -55,7 +55,8 @@ module Psych
55
55
  #
56
56
  # See also Psych::Visitors::Emitter
57
57
  def yaml io = nil, options = {}
58
- require "stringio"
58
+ require "stringio" unless defined?(StringIO)
59
+
59
60
  real_io = io || StringIO.new(''.encode('utf-8'))
60
61
 
61
62
  Visitors::Emitter.new(real_io, options).accept self
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Psych
4
4
  # The version of Psych you are using
5
- VERSION = '5.2.3'
5
+ VERSION = '5.2.4'
6
6
 
7
7
  if RUBY_ENGINE == 'jruby'
8
8
  DEFAULT_SNAKEYAML_VERSION = '2.9'.freeze
@@ -189,7 +189,8 @@ module Psych
189
189
  end
190
190
 
191
191
  def visit_Date o
192
- register o, visit_Integer(o.gregorian)
192
+ formatted = format_date o
193
+ register o, @emitter.scalar(formatted, nil, nil, true, false, Nodes::Scalar::ANY)
193
194
  end
194
195
 
195
196
  def visit_DateTime o
@@ -486,6 +487,10 @@ module Psych
486
487
  end
487
488
  end
488
489
 
490
+ def format_date date
491
+ date.strftime("%Y-%m-%d")
492
+ end
493
+
489
494
  def register target, yaml_obj
490
495
  @st.register target, yaml_obj
491
496
  yaml_obj
data/lib/psych.jar CHANGED
Binary file
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: 5.2.3
4
+ version: 5.2.4
5
5
  platform: java
6
6
  authors:
7
7
  - Aaron Patterson
@@ -9,7 +9,7 @@ authors:
9
9
  - Charles Oliver Nutter
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-01-17 00:00:00.000000000 Z
12
+ date: 2025-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jar-dependencies