psych 3.1.0-java → 3.3.2-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aecf497b38e244ea95807fb3fe1d141b389e0d37c0e173b2f4bdc158e8726d28
4
- data.tar.gz: a809b927f7912dc80ffd65854fc3d8ab532392766c8c0266b832c4af3403d8f9
3
+ metadata.gz: 3f502010ef57ab680b8a273b17cb0c7bcf38cd9e3c9f4885323c8817933bbf7b
4
+ data.tar.gz: 2be8f458c94bf961bb3c9681ced9ea2e00e67095e9ce0f4e062111a0b1e6bbaa
5
5
  SHA512:
6
- metadata.gz: d17f6a46ca368eb95aacbbd382c50b9551c957b0102c7e36c1fb7813ee54dfd1aecd9a215e5fdda61eca2dbf8e85358357ff32d0c960a064a8ac333259c984d0
7
- data.tar.gz: cdfb0def297ab0a049dca31280c298fa5a6ea71578fa0151da3a1ff64f93d50e93d8ed6b616f0cb5b74dbedffe3516568ee71b924779273bfbacf5bb79c9a2ae
6
+ metadata.gz: 4af84db27ecb5c12a92c8f80b6078a639e75f11ce0284b68e57e4906e62893ffd7cfe77780e6729374d760e136b61c70709050c8aebce345b373ea3fbfd00f77
7
+ data.tar.gz: afcf7ee1fac4892db0789448761d325d951904423d914e579a1b51740ae3bdb0c5de9b20590b11ed88aa56c03fff25bb16623b7771c45e9957dc8e07b716d81a
data/Gemfile CHANGED
@@ -1,3 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ group :development do
6
+ gem 'rake-compiler', ">= 0.4.1"
7
+ gem 'test-unit'
8
+ gem 'ruby-maven', :platforms => :jruby
9
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2009 Aaron Patterson, et al.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md CHANGED
@@ -1,8 +1,5 @@
1
1
  # Psych
2
2
 
3
- [![Build Status](https://travis-ci.org/ruby/psych.svg?branch=master)](https://travis-ci.org/ruby/psych)
4
- [![Build status](https://ci.appveyor.com/api/projects/status/2t6x109xfmbx209k/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/psych/branch/master)
5
-
6
3
  * https://github.com/ruby/psych
7
4
 
8
5
  ## Description
@@ -15,8 +12,8 @@ serialize and de-serialize most Ruby objects to and from the YAML format.
15
12
  ## Examples
16
13
 
17
14
  ```ruby
18
- # Load YAML in to a Ruby object
19
- Psych.load('--- foo') # => 'foo'
15
+ # Safely load YAML in to a Ruby object
16
+ Psych.safe_load('--- foo') # => 'foo'
20
17
 
21
18
  # Emit YAML from a Ruby object
22
19
  Psych.dump("foo") # => "--- foo\n...\n"
data/Rakefile CHANGED
@@ -3,8 +3,8 @@ Bundler::GemHelper.install_tasks
3
3
 
4
4
  require "rake/testtask"
5
5
  Rake::TestTask.new(:test) do |t|
6
- t.libs << "test"
7
- t.libs << "lib"
6
+ t.libs << "test/lib" << "test"
7
+ t.ruby_opts << "-rhelper"
8
8
  t.test_files = FileList['test/**/test_*.rb']
9
9
  t.verbose = true
10
10
  t.warning = true
@@ -28,21 +28,14 @@ if RUBY_PLATFORM =~ /java/
28
28
  end
29
29
  else
30
30
  require 'rake/extensiontask'
31
- spec = Gem::Specification.load("psych.gemspec")
32
- Rake::ExtensionTask.new("psych", spec) do |ext|
33
- ext.lib_dir = File.join(*['lib', ENV['FAT_DIR']].compact)
34
- ext.cross_compile = true
35
- ext.cross_platform = %w[x86-mingw32 x64-mingw32]
36
- ext.cross_compiling do |s|
37
- s.files.concat ["lib/2.3/psych.so", "lib/2.4/psych.so", "lib/2.5/psych.so"]
38
- end
39
- end
31
+ Rake::ExtensionTask.new("psych")
40
32
  end
41
33
 
42
- desc "Compile binaries for mingw platform using rake-compiler-dock"
43
- task 'build:mingw' do
44
- require 'rake_compiler_dock'
45
- RakeCompilerDock.sh "bundle && rake cross native gem RUBY_CC_VERSION=2.5.0:2.4.0:2.3.0"
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"
46
39
  end
47
40
 
48
41
  task :default => [:compile, :test]
@@ -44,8 +44,11 @@ import org.jruby.runtime.ThreadContext;
44
44
  import org.jruby.runtime.Visibility;
45
45
  import org.jruby.runtime.builtin.IRubyObject;
46
46
  import org.jruby.runtime.load.Library;
47
+ import org.yaml.snakeyaml.error.Mark;
47
48
 
48
49
  public class PsychLibrary implements Library {
50
+ private static final String DUMMY_VERSION = "0.0";
51
+
49
52
  public void load(final Ruby runtime, boolean wrap) {
50
53
  RubyModule psych = runtime.defineModule("Psych");
51
54
 
@@ -57,12 +60,33 @@ public class PsychLibrary implements Library {
57
60
  catch( IOException e ) {
58
61
  // ignored
59
62
  }
60
- String snakeyamlVersion = props.getProperty("version", "0.0");
63
+ String snakeyamlVersion = props.getProperty("version", DUMMY_VERSION);
61
64
 
62
65
  if (snakeyamlVersion.endsWith("-SNAPSHOT")) {
63
66
  snakeyamlVersion = snakeyamlVersion.substring(0, snakeyamlVersion.length() - "-SNAPSHOT".length());
64
67
  }
65
68
 
69
+ // Try to determine if we have a new enough SnakeYAML.
70
+ // Versions before 1.21 removed a Mark constructor that JRuby uses.
71
+ // See https://github.com/bundler/bundler/issues/6878
72
+ if (snakeyamlVersion.equals(DUMMY_VERSION)) {
73
+ try {
74
+ // Use reflection to try to confirm we have a new enough version
75
+ Mark.class.getConstructor(String.class, int.class, int.class, int.class, int[].class, int.class);
76
+ } catch (NoSuchMethodException nsme) {
77
+ throw runtime.newLoadError("bad SnakeYAML version, required 1.21 or higher; check your CLASSPATH for a conflicting jar");
78
+ }
79
+ } else {
80
+ // Parse version string to check for 1.21+
81
+ String[] majorMinor = snakeyamlVersion.split("\\.");
82
+
83
+ if (majorMinor.length < 2 || Integer.parseInt(majorMinor[0]) < 1 || Integer.parseInt(majorMinor[1]) < 21) {
84
+ throw runtime.newLoadError(
85
+ "bad SnakeYAML version " + snakeyamlVersion +
86
+ ", required 1.21 or higher; check your CLASSPATH for a conflicting jar");
87
+ }
88
+ }
89
+
66
90
  RubyString version = runtime.newString(snakeyamlVersion + ".0");
67
91
  version.setFrozen(true);
68
92
  psych.setConstant("SNAKEYAML_VERSION", version);
@@ -44,12 +44,4 @@ public class PsychYamlTree {
44
44
 
45
45
  psychYamlTree.defineAnnotatedMethods(PsychYamlTree.class);
46
46
  }
47
-
48
- @JRubyMethod(visibility = PRIVATE)
49
- public static IRubyObject private_iv_get(ThreadContext context, IRubyObject self, IRubyObject target, IRubyObject prop) {
50
- IRubyObject obj = (IRubyObject)target.getInternalVariables().getInternalVariable(prop.asJavaString());
51
- if (obj == null) obj = context.nil;
52
-
53
- return obj;
54
- }
55
47
  }
data/ext/psych/depend CHANGED
@@ -1,3 +1,5 @@
1
+ $(OBJS): $(YAML_H)
2
+
1
3
  $(OBJS): $(HDRS) $(ruby_headers) \
2
4
  $(hdrdir)/ruby/encoding.h \
3
5
  $(hdrdir)/ruby/oniguruma.h
data/ext/psych/extconf.rb CHANGED
@@ -13,8 +13,10 @@ if enable_config("bundled-libyaml", false) || !(find_header('yaml.h') && find_li
13
13
  $VPATH << "$(srcdir)/yaml"
14
14
  $INCFLAGS << " -I$(srcdir)/yaml"
15
15
 
16
- $srcs = Dir.glob("#{$srcdir}/{,yaml/}*.c").map {|n| File.basename(n)}
16
+ $srcs = Dir.glob("#{$srcdir}/{,yaml/}*.c").map {|n| File.basename(n)}.sort
17
17
 
18
+ header = 'yaml/yaml.h'
19
+ header = "{$(VPATH)}#{header}" if $nmake
18
20
  if have_macro("_WIN32")
19
21
  $CPPFLAGS << " -DYAML_DECLARE_STATIC -DHAVE_CONFIG_H"
20
22
  end
@@ -34,6 +36,8 @@ if enable_config("bundled-libyaml", false) || !(find_header('yaml.h') && find_li
34
36
  have_header 'config.h'
35
37
  end
36
38
 
37
- create_makefile 'psych'
39
+ create_makefile 'psych' do |mk|
40
+ mk << "YAML_H = #{header}".strip << "\n"
41
+ end
38
42
 
39
43
  # :startdoc:
data/ext/psych/psych.c CHANGED
@@ -11,9 +11,9 @@ static VALUE libyaml_version(VALUE module)
11
11
 
12
12
  yaml_get_version(&major, &minor, &patch);
13
13
 
14
- list[0] = INT2NUM((long)major);
15
- list[1] = INT2NUM((long)minor);
16
- list[2] = INT2NUM((long)patch);
14
+ list[0] = INT2NUM(major);
15
+ list[1] = INT2NUM(minor);
16
+ list[2] = INT2NUM(patch);
17
17
 
18
18
  return rb_ary_new4((long)3, list);
19
19
  }
@@ -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,6 @@
1
1
  #include <psych.h>
2
2
 
3
3
  VALUE cPsychParser;
4
- VALUE ePsychSyntaxError;
5
4
 
6
5
  static ID id_read;
7
6
  static ID id_path;
@@ -28,7 +27,7 @@ static ID id_event_location;
28
27
  static int io_reader(void * data, unsigned char *buf, size_t size, size_t *read)
29
28
  {
30
29
  VALUE io = (VALUE)data;
31
- VALUE string = rb_funcall(io, id_read, 1, INT2NUM(size));
30
+ VALUE string = rb_funcall(io, id_read, 1, SIZET2NUM(size));
32
31
 
33
32
  *read = 0;
34
33
 
@@ -81,15 +80,18 @@ static VALUE allocate(VALUE klass)
81
80
  static VALUE make_exception(yaml_parser_t * parser, VALUE path)
82
81
  {
83
82
  size_t line, column;
83
+ VALUE ePsychSyntaxError;
84
84
 
85
85
  line = parser->context_mark.line + 1;
86
86
  column = parser->context_mark.column + 1;
87
87
 
88
+ ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));
89
+
88
90
  return rb_funcall(ePsychSyntaxError, rb_intern("new"), 6,
89
91
  path,
90
- INT2NUM(line),
91
- INT2NUM(column),
92
- INT2NUM(parser->problem_offset),
92
+ SIZET2NUM(line),
93
+ SIZET2NUM(column),
94
+ SIZET2NUM(parser->problem_offset),
93
95
  parser->problem ? rb_usascii_str_new2(parser->problem) : Qnil,
94
96
  parser->context ? rb_usascii_str_new2(parser->context) : Qnil);
95
97
  }
@@ -254,7 +256,6 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
254
256
  yaml_parser_t * parser;
255
257
  yaml_event_t event;
256
258
  int done = 0;
257
- int tainted = 0;
258
259
  int state = 0;
259
260
  int parser_encoding = YAML_ANY_ENCODING;
260
261
  int encoding = rb_utf8_encindex();
@@ -273,13 +274,10 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
273
274
  yaml_parser_delete(parser);
274
275
  yaml_parser_initialize(parser);
275
276
 
276
- if (OBJ_TAINTED(yaml)) tainted = 1;
277
-
278
277
  if (rb_respond_to(yaml, id_read)) {
279
278
  yaml = transcode_io(yaml, &parser_encoding);
280
279
  yaml_parser_set_encoding(parser, parser_encoding);
281
280
  yaml_parser_set_input(parser, io_reader, (void *)yaml);
282
- if (RTEST(rb_obj_is_kind_of(yaml, rb_cIO))) tainted = 1;
283
281
  } else {
284
282
  StringValue(yaml);
285
283
  yaml = transcode_string(yaml, &parser_encoding);
@@ -305,10 +303,10 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
305
303
  rb_exc_raise(exception);
306
304
  }
307
305
 
308
- start_line = INT2NUM((long)event.start_mark.line);
309
- start_column = INT2NUM((long)event.start_mark.column);
310
- end_line = INT2NUM((long)event.end_mark.line);
311
- end_column = INT2NUM((long)event.end_mark.column);
306
+ start_line = SIZET2NUM(event.start_mark.line);
307
+ start_column = SIZET2NUM(event.start_mark.column);
308
+ end_line = SIZET2NUM(event.end_mark.line);
309
+ end_column = SIZET2NUM(event.end_mark.column);
312
310
 
313
311
  event_args[0] = handler;
314
312
  event_args[1] = start_line;
@@ -323,7 +321,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
323
321
  VALUE args[2];
324
322
 
325
323
  args[0] = handler;
326
- args[1] = INT2NUM((long)event.data.stream_start.encoding);
324
+ args[1] = INT2NUM(event.data.stream_start.encoding);
327
325
  rb_protect(protected_start_stream, (VALUE)args, &state);
328
326
  }
329
327
  break;
@@ -336,8 +334,8 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
336
334
  VALUE version = event.data.document_start.version_directive ?
337
335
  rb_ary_new3(
338
336
  (long)2,
339
- INT2NUM((long)event.data.document_start.version_directive->major),
340
- INT2NUM((long)event.data.document_start.version_directive->minor)
337
+ INT2NUM(event.data.document_start.version_directive->major),
338
+ INT2NUM(event.data.document_start.version_directive->minor)
341
339
  ) : rb_ary_new();
342
340
 
343
341
  if(event.data.document_start.tag_directives.start) {
@@ -350,13 +348,11 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
350
348
  VALUE prefix = Qnil;
351
349
  if(start->handle) {
352
350
  handle = rb_str_new2((const char *)start->handle);
353
- if (tainted) OBJ_TAINT(handle);
354
351
  PSYCH_TRANSCODE(handle, encoding, internal_enc);
355
352
  }
356
353
 
357
354
  if(start->prefix) {
358
355
  prefix = rb_str_new2((const char *)start->prefix);
359
- if (tainted) OBJ_TAINT(prefix);
360
356
  PSYCH_TRANSCODE(prefix, encoding, internal_enc);
361
357
  }
362
358
 
@@ -385,7 +381,6 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
385
381
  VALUE alias = Qnil;
386
382
  if(event.data.alias.anchor) {
387
383
  alias = rb_str_new2((const char *)event.data.alias.anchor);
388
- if (tainted) OBJ_TAINT(alias);
389
384
  PSYCH_TRANSCODE(alias, encoding, internal_enc);
390
385
  }
391
386
 
@@ -404,19 +399,16 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
404
399
  (const char *)event.data.scalar.value,
405
400
  (long)event.data.scalar.length
406
401
  );
407
- if (tainted) OBJ_TAINT(val);
408
402
 
409
403
  PSYCH_TRANSCODE(val, encoding, internal_enc);
410
404
 
411
405
  if(event.data.scalar.anchor) {
412
406
  anchor = rb_str_new2((const char *)event.data.scalar.anchor);
413
- if (tainted) OBJ_TAINT(anchor);
414
407
  PSYCH_TRANSCODE(anchor, encoding, internal_enc);
415
408
  }
416
409
 
417
410
  if(event.data.scalar.tag) {
418
411
  tag = rb_str_new2((const char *)event.data.scalar.tag);
419
- if (tainted) OBJ_TAINT(tag);
420
412
  PSYCH_TRANSCODE(tag, encoding, internal_enc);
421
413
  }
422
414
 
@@ -426,7 +418,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
426
418
  quoted_implicit =
427
419
  event.data.scalar.quoted_implicit == 0 ? Qfalse : Qtrue;
428
420
 
429
- style = INT2NUM((long)event.data.scalar.style);
421
+ style = INT2NUM(event.data.scalar.style);
430
422
 
431
423
  args[0] = handler;
432
424
  args[1] = val;
@@ -446,21 +438,19 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
446
438
  VALUE implicit, style;
447
439
  if(event.data.sequence_start.anchor) {
448
440
  anchor = rb_str_new2((const char *)event.data.sequence_start.anchor);
449
- if (tainted) OBJ_TAINT(anchor);
450
441
  PSYCH_TRANSCODE(anchor, encoding, internal_enc);
451
442
  }
452
443
 
453
444
  tag = Qnil;
454
445
  if(event.data.sequence_start.tag) {
455
446
  tag = rb_str_new2((const char *)event.data.sequence_start.tag);
456
- if (tainted) OBJ_TAINT(tag);
457
447
  PSYCH_TRANSCODE(tag, encoding, internal_enc);
458
448
  }
459
449
 
460
450
  implicit =
461
451
  event.data.sequence_start.implicit == 0 ? Qfalse : Qtrue;
462
452
 
463
- style = INT2NUM((long)event.data.sequence_start.style);
453
+ style = INT2NUM(event.data.sequence_start.style);
464
454
 
465
455
  args[0] = handler;
466
456
  args[1] = anchor;
@@ -482,20 +472,18 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)
482
472
  VALUE implicit, style;
483
473
  if(event.data.mapping_start.anchor) {
484
474
  anchor = rb_str_new2((const char *)event.data.mapping_start.anchor);
485
- if (tainted) OBJ_TAINT(anchor);
486
475
  PSYCH_TRANSCODE(anchor, encoding, internal_enc);
487
476
  }
488
477
 
489
478
  if(event.data.mapping_start.tag) {
490
479
  tag = rb_str_new2((const char *)event.data.mapping_start.tag);
491
- if (tainted) OBJ_TAINT(tag);
492
480
  PSYCH_TRANSCODE(tag, encoding, internal_enc);
493
481
  }
494
482
 
495
483
  implicit =
496
484
  event.data.mapping_start.implicit == 0 ? Qfalse : Qtrue;
497
485
 
498
- style = INT2NUM((long)event.data.mapping_start.style);
486
+ style = INT2NUM(event.data.mapping_start.style);
499
487
 
500
488
  args[0] = handler;
501
489
  args[1] = anchor;
@@ -539,9 +527,9 @@ static VALUE mark(VALUE self)
539
527
 
540
528
  TypedData_Get_Struct(self, yaml_parser_t, &psych_parser_type, parser);
541
529
  mark_klass = rb_const_get_at(cPsychParser, rb_intern("Mark"));
542
- args[0] = INT2NUM(parser->mark.index);
543
- args[1] = INT2NUM(parser->mark.line);
544
- args[2] = INT2NUM(parser->mark.column);
530
+ args[0] = SIZET2NUM(parser->mark.index);
531
+ args[1] = SIZET2NUM(parser->mark.line);
532
+ args[2] = SIZET2NUM(parser->mark.column);
545
533
 
546
534
  return rb_class_new_instance(3, args, mark_klass);
547
535
  }
@@ -569,7 +557,6 @@ void Init_psych_parser(void)
569
557
  rb_define_const(cPsychParser, "UTF16BE", INT2NUM(YAML_UTF16BE_ENCODING));
570
558
 
571
559
  rb_require("psych/syntax_error");
572
- ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));
573
560
 
574
561
  rb_define_method(cPsychParser, "parse", parse, -1);
575
562
  rb_define_method(cPsychParser, "mark", mark, 0);
@@ -2,23 +2,11 @@
2
2
 
3
3
  VALUE cPsychVisitorsYamlTree;
4
4
 
5
- /*
6
- * call-seq: private_iv_get(target, prop)
7
- *
8
- * Get the private instance variable +prop+ from +target+
9
- */
10
- static VALUE private_iv_get(VALUE self, VALUE target, VALUE prop)
11
- {
12
- return rb_attr_get(target, rb_intern(StringValueCStr(prop)));
13
- }
14
-
15
5
  void Init_psych_yaml_tree(void)
16
6
  {
17
7
  VALUE psych = rb_define_module("Psych");
18
8
  VALUE visitors = rb_define_module_under(psych, "Visitors");
19
9
  VALUE visitor = rb_define_class_under(visitors, "Visitor", rb_cObject);
20
10
  cPsychVisitorsYamlTree = rb_define_class_under(visitors, "YAMLTree", visitor);
21
-
22
- rb_define_private_method(cPsychVisitorsYamlTree, "private_iv_get", private_iv_get, 2);
23
11
  }
24
12
  /* vim: set noet sws=4 sw=4: */