diff options
-rw-r--r-- | lang/ruby/rubyversion.mk | 4 | ||||
-rw-r--r-- | lang/ruby193-base/Makefile | 3 | ||||
-rw-r--r-- | lang/ruby193-base/distinfo | 16 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-ext_json_lib_json_add_core.rb | 32 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-ext_json_lib_json_common.rb | 54 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-ext_json_lib_json_version.rb | 14 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-ext_json_parser_parser.c | 15 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-ext_json_parser_parser.rl | 25 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-test_json_test__json.rb | 55 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-test_json_test__json__addition.rb | 104 | ||||
-rw-r--r-- | lang/ruby193-base/patches/patch-test_json_test__json__string__matching.rb | 26 |
11 files changed, 7 insertions, 341 deletions
diff --git a/lang/ruby/rubyversion.mk b/lang/ruby/rubyversion.mk index 05518f26408..077aeba3d6c 100644 --- a/lang/ruby/rubyversion.mk +++ b/lang/ruby/rubyversion.mk @@ -1,4 +1,4 @@ -# $NetBSD: rubyversion.mk,v 1.94 2013/02/06 15:48:30 taca Exp $ +# $NetBSD: rubyversion.mk,v 1.95 2013/02/22 16:20:47 taca Exp $ # # This file determines which Ruby version is used as a dependency for @@ -206,7 +206,7 @@ RUBY193_VERSION= 1.9.3 # patch RUBY18_PATCHLEVEL= pl371 -RUBY193_PATCHLEVEL= p385 +RUBY193_PATCHLEVEL= p392 # current API compatible version; used for version of shared library RUBY18_API_VERSION= 1.8.7 diff --git a/lang/ruby193-base/Makefile b/lang/ruby193-base/Makefile index 18f2f725a8a..4fd5522feef 100644 --- a/lang/ruby193-base/Makefile +++ b/lang/ruby193-base/Makefile @@ -1,9 +1,8 @@ -# $NetBSD: Makefile,v 1.25 2013/02/12 13:03:08 taca Exp $ +# $NetBSD: Makefile,v 1.26 2013/02/22 16:20:48 taca Exp $ # DISTNAME= ${RUBY_DISTNAME} PKGNAME= ${RUBY_PKGPREFIX}-base-${RUBY_VERSION_FULL} -PKGREVISION= 2 CATEGORIES= lang ruby MASTER_SITES= ${MASTER_SITE_RUBY} diff --git a/lang/ruby193-base/distinfo b/lang/ruby193-base/distinfo index 64192c8afa7..81f37ee224b 100644 --- a/lang/ruby193-base/distinfo +++ b/lang/ruby193-base/distinfo @@ -1,16 +1,11 @@ -$NetBSD: distinfo,v 1.17 2013/02/12 13:03:09 taca Exp $ +$NetBSD: distinfo,v 1.18 2013/02/22 16:20:48 taca Exp $ -SHA1 (ruby-1.9.3-p385.tar.bz2) = 54e8d08103e915e2b07dcfcea88ab7fc42d40b0a -RMD160 (ruby-1.9.3-p385.tar.bz2) = b2fbe56de1295659aa54c0a2d9f77a1212f62a02 -Size (ruby-1.9.3-p385.tar.bz2) = 10021486 bytes +SHA1 (ruby-1.9.3-p392.tar.bz2) = de73455ff6500372d647fb49d24cc130fbd5815e +RMD160 (ruby-1.9.3-p392.tar.bz2) = 4d12f62ce294a9c8fe27369413253097241e3fb0 +Size (ruby-1.9.3-p392.tar.bz2) = 10024221 bytes SHA1 (patch-configure) = e72a5414a9e706962692e645173c5b47ddb41932 SHA1 (patch-configure.in) = 0996411e3125a298c770f4eead0edbc530a0a584 SHA1 (patch-defs_default__gems) = fb24111736f1a76a05e853aa068024dbdd24e5a5 -SHA1 (patch-ext_json_lib_json_add_core.rb) = d5dc99b3ae708a3866bd7dc67d232f99f91ec6ff -SHA1 (patch-ext_json_lib_json_common.rb) = 69aa40256393b75bf246f53302766ebfbe367e30 -SHA1 (patch-ext_json_lib_json_version.rb) = 868cb21e42ded3b891fb09de4d767f7ecc491b55 -SHA1 (patch-ext_json_parser_parser.c) = f17a3c3e65c9783db5e530058ee1c5e5ca1f28a3 -SHA1 (patch-ext_json_parser_parser.rl) = a64baf9d268c5161a061e29a0692583b599dd237 SHA1 (patch-lib_rdoc_ri_driver.rb) = acb4cb022893eb8dea2adf7564f5e5e1a0f1e9c8 SHA1 (patch-lib_rubygems.rb) = 2aed4990a868dc92668a78da7bcff2050ff3dd66 SHA1 (patch-lib_rubygems_commands_install__command.rb) = ff637f39f3fd76b7550fd7f8c32fe303eec6f8c3 @@ -30,9 +25,6 @@ SHA1 (patch-man_erb.1) = a8f69ebb02b4d5e1c80b270a3d683c23d8dfbcf1 SHA1 (patch-man_irb.1) = 58fcccbb5f5f76450715cbf246a018af58d9b57e SHA1 (patch-man_ri.1) = 25d82d08a9eb74ccc1cbbc1fc324d23f1a56ed64 SHA1 (patch-man_ruby.1) = 43c638a38bed8257f33d8f5a491acd77a18032b7 -SHA1 (patch-test_json_test__json.rb) = 174f8664ad20bdcdcd7987c4c5234bcfa29e0df4 -SHA1 (patch-test_json_test__json__addition.rb) = 266421cf4f7b844bf354b9bf11cec371d9996e3f -SHA1 (patch-test_json_test__json__string__matching.rb) = e2015f62e21607068e111ade3323207ae65093c8 SHA1 (patch-test_rubygems_test__gem.rb) = fe8b8e436b255595122d2a01462ba0a686575f24 SHA1 (patch-tool_rbinstall.rb) = f0497085a09b31145f57028b30e335b09acabcff SHA1 (patch-vsnprintf.c) = 7bb4ca07381536717518143ef7803634168ca9fa diff --git a/lang/ruby193-base/patches/patch-ext_json_lib_json_add_core.rb b/lang/ruby193-base/patches/patch-ext_json_lib_json_add_core.rb deleted file mode 100644 index 2a02c43a17f..00000000000 --- a/lang/ruby193-base/patches/patch-ext_json_lib_json_add_core.rb +++ /dev/null @@ -1,32 +0,0 @@ -$NetBSD: patch-ext_json_lib_json_add_core.rb,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- ext/json/lib/json/add/core.rb.orig 2011-08-31 07:02:52.000000000 +0000 -+++ ext/json/lib/json/add/core.rb -@@ -36,8 +36,8 @@ class Time - if usec = object.delete('u') # used to be tv_usec -> tv_nsec - object['n'] = usec * 1000 - end -- if respond_to?(:tv_nsec) -- at(*object.values_at('s', 'n')) -+ if instance_methods.include?(:tv_nsec) -+ at(object['s'], Rational(object['n'], 1000)) - else - at(object['s'], object['n'] / 1000) - end -@@ -46,10 +46,13 @@ class Time - # Returns a hash, that will be turned into a JSON object and represent this - # object. - def as_json(*) -+ nanoseconds = [ tv_usec * 1000 ] -+ respond_to?(:tv_nsec) and nanoseconds << tv_nsec -+ nanoseconds = nanoseconds.max - { - JSON.create_id => self.class.name, - 's' => tv_sec, -- 'n' => respond_to?(:tv_nsec) ? tv_nsec : tv_usec * 1000 -+ 'n' => nanoseconds, - } - end - diff --git a/lang/ruby193-base/patches/patch-ext_json_lib_json_common.rb b/lang/ruby193-base/patches/patch-ext_json_lib_json_common.rb deleted file mode 100644 index 262f3325b36..00000000000 --- a/lang/ruby193-base/patches/patch-ext_json_lib_json_common.rb +++ /dev/null @@ -1,54 +0,0 @@ -$NetBSD: patch-ext_json_lib_json_common.rb,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- ext/json/lib/json/common.rb.orig 2011-08-30 02:25:32.000000000 +0000 -+++ ext/json/lib/json/common.rb -@@ -141,7 +141,7 @@ module JSON - # the default. - # * *create_additions*: If set to false, the Parser doesn't create - # additions even if a matching class and create_id was found. This option -- # defaults to true. -+ # defaults to false. - # * *object_class*: Defaults to Hash - # * *array_class*: Defaults to Array - def parse(source, opts = {}) -@@ -162,7 +162,7 @@ module JSON - # to true. - # * *create_additions*: If set to false, the Parser doesn't create - # additions even if a matching class and create_id was found. This option -- # defaults to true. -+ # defaults to false. - def parse!(source, opts = {}) - opts = { - :max_nesting => false, -@@ -287,11 +287,18 @@ module JSON - # Load a ruby data structure from a JSON _source_ and return it. A source can - # either be a string-like object, an IO-like object, or an object responding - # to the read method. If _proc_ was given, it will be called with any nested -- # Ruby object as an argument recursively in depth first order. -+ # Ruby object as an argument recursively in depth first order. To modify the -+ # default options pass in the optional _options_ argument as well. - # - # This method is part of the implementation of the load/dump interface of - # Marshal and YAML. -- def load(source, proc = nil) -+ def load(source, proc = nil, options = {}) -+ load_default_options = { -+ :max_nesting => false, -+ :allow_nan => true, -+ :create_additions => false -+ } -+ opts = load_default_options.merge options - if source.respond_to? :to_str - source = source.to_str - elsif source.respond_to? :to_io -@@ -299,7 +306,7 @@ module JSON - else - source = source.read - end -- result = parse(source, :max_nesting => false, :allow_nan => true) -+ result = parse(source, opts) - recurse_proc(result, &proc) if proc - result - end diff --git a/lang/ruby193-base/patches/patch-ext_json_lib_json_version.rb b/lang/ruby193-base/patches/patch-ext_json_lib_json_version.rb deleted file mode 100644 index 77d58cf2394..00000000000 --- a/lang/ruby193-base/patches/patch-ext_json_lib_json_version.rb +++ /dev/null @@ -1,14 +0,0 @@ -$NetBSD: patch-ext_json_lib_json_version.rb,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- ext/json/lib/json/version.rb.orig 2011-07-10 08:01:04.000000000 +0000 -+++ ext/json/lib/json/version.rb -@@ -1,6 +1,6 @@ - module JSON - # JSON version -- VERSION = '1.5.4' -+ VERSION = '1.5.5' - VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc: - VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc: - VERSION_MINOR = VERSION_ARRAY[1] # :nodoc: diff --git a/lang/ruby193-base/patches/patch-ext_json_parser_parser.c b/lang/ruby193-base/patches/patch-ext_json_parser_parser.c deleted file mode 100644 index c0a3de52056..00000000000 --- a/lang/ruby193-base/patches/patch-ext_json_parser_parser.c +++ /dev/null @@ -1,15 +0,0 @@ -$NetBSD: patch-ext_json_parser_parser.c,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- ext/json/parser/parser.c.orig 2012-04-16 11:15:31.000000000 +0000 -+++ ext/json/parser/parser.c -@@ -1676,7 +1676,7 @@ static VALUE cParser_initialize(int argc - if (option_given_p(opts, tmp)) { - json->create_additions = RTEST(rb_hash_aref(opts, tmp)); - } else { -- json->create_additions = 1; -+ json->create_additions = 0; - } - tmp = ID2SYM(i_create_id); - if (option_given_p(opts, tmp)) { diff --git a/lang/ruby193-base/patches/patch-ext_json_parser_parser.rl b/lang/ruby193-base/patches/patch-ext_json_parser_parser.rl deleted file mode 100644 index 54e827b69c7..00000000000 --- a/lang/ruby193-base/patches/patch-ext_json_parser_parser.rl +++ /dev/null @@ -1,25 +0,0 @@ -$NetBSD: patch-ext_json_parser_parser.rl,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- ext/json/parser/parser.rl.orig 2012-04-16 11:15:31.000000000 +0000 -+++ ext/json/parser/parser.rl -@@ -607,6 +607,9 @@ static VALUE convert_encoding(VALUE sour - * defaults to true. - * * *object_class*: Defaults to Hash - * * *array_class*: Defaults to Array -+ * * *quirks_mode*: Enables quirks_mode for parser, that is for example -+ * parsing single JSON values instead of documents is possible. -+ * - */ - static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) - { -@@ -657,7 +660,7 @@ static VALUE cParser_initialize(int argc - if (option_given_p(opts, tmp)) { - json->create_additions = RTEST(rb_hash_aref(opts, tmp)); - } else { -- json->create_additions = 1; -+ json->create_additions = 0; - } - tmp = ID2SYM(i_create_id); - if (option_given_p(opts, tmp)) { diff --git a/lang/ruby193-base/patches/patch-test_json_test__json.rb b/lang/ruby193-base/patches/patch-test_json_test__json.rb deleted file mode 100644 index b3d5d710b95..00000000000 --- a/lang/ruby193-base/patches/patch-test_json_test__json.rb +++ /dev/null @@ -1,55 +0,0 @@ -$NetBSD: patch-test_json_test__json.rb,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- test/json/test_json.rb.orig 2011-08-30 02:25:32.000000000 +0000 -+++ test/json/test_json.rb -@@ -4,6 +4,7 @@ - require 'test/unit' - require File.join(File.dirname(__FILE__), 'setup_variant') - require 'stringio' -+require 'tempfile' - - unless Array.method_defined?(:permutation) - begin -@@ -263,12 +264,12 @@ class TC_JSON < Test::Unit::TestCase - def test_generation_of_core_subclasses_with_new_to_json - obj = SubHash2["foo" => SubHash2["bar" => true]] - obj_json = JSON(obj) -- obj_again = JSON(obj_json) -+ obj_again = JSON.parse(obj_json, :create_additions => true) - assert_kind_of SubHash2, obj_again - assert_kind_of SubHash2, obj_again['foo'] - assert obj_again['foo']['bar'] - assert_equal obj, obj_again -- assert_equal ["foo"], JSON(JSON(SubArray2["foo"])) -+ assert_equal ["foo"], JSON(JSON(SubArray2["foo"]), :create_additions => true) - end - - def test_generation_of_core_subclasses_with_default_to_json -@@ -414,6 +415,25 @@ EOT - JSON.parse('{"foo":"bar", "baz":"quux"}', :symbolize_names => true)) - end - -+ def test_load -+ assert_equal @hash, JSON.load(@json) -+ tempfile = Tempfile.open('json') -+ tempfile.write @json -+ tempfile.rewind -+ assert_equal @hash, JSON.load(tempfile) -+ stringio = StringIO.new(@json) -+ stringio.rewind -+ assert_equal @hash, JSON.load(stringio) -+ assert_raise(NoMethodError) { JSON.load(nil) } -+ assert_raise(JSON::ParserError) {JSON.load('') } -+ end -+ -+ def test_load_with_options -+ small_hash = JSON("foo" => 'bar') -+ symbol_hash = { :foo => 'bar' } -+ assert_equal symbol_hash, JSON.load(small_hash, nil, :symbolize_names => true) -+ end -+ - def test_load_dump - too_deep = '[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]' - assert_equal too_deep, JSON.dump(eval(too_deep)) diff --git a/lang/ruby193-base/patches/patch-test_json_test__json__addition.rb b/lang/ruby193-base/patches/patch-test_json_test__json__addition.rb deleted file mode 100644 index eed25b22059..00000000000 --- a/lang/ruby193-base/patches/patch-test_json_test__json__addition.rb +++ /dev/null @@ -1,104 +0,0 @@ -$NetBSD: patch-test_json_test__json__addition.rb,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- test/json/test_json_addition.rb.orig 2011-09-01 00:25:52.000000000 +0000 -+++ test/json/test_json_addition.rb -@@ -69,11 +69,19 @@ class TC_JSONAddition < Test::Unit::Test - a = A.new(666) - assert A.json_creatable? - json = generate(a) -- a_again = JSON.parse(json) -+ a_again = JSON.parse(json, :create_additions => true) - assert_kind_of a.class, a_again - assert_equal a, a_again - end - -+ def test_extended_json_default -+ a = A.new(666) -+ assert A.json_creatable? -+ json = generate(a) -+ a_hash = JSON.parse(json) -+ assert_kind_of Hash, a_hash -+ end -+ - def test_extended_json_disabled - a = A.new(666) - assert A.json_creatable? -@@ -100,7 +108,7 @@ class TC_JSONAddition < Test::Unit::Test - c = C.new - assert !C.json_creatable? - json = generate(c) -- assert_raises(ArgumentError, NameError) { JSON.parse(json) } -+ assert_raises(ArgumentError, NameError) { JSON.parse(json, :create_additions => true) } - end - - def test_raw_strings -@@ -118,7 +126,7 @@ class TC_JSONAddition < Test::Unit::Test - assert_match(/\A\{.*\}\Z/, json) - assert_match(/"json_class":"String"/, json) - assert_match(/"raw":\[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255\]/, json) -- raw_again = JSON.parse(json) -+ raw_again = JSON.parse(json, :create_additions => true) - assert_equal raw, raw_again - end - -@@ -126,17 +134,17 @@ class TC_JSONAddition < Test::Unit::Test - - def test_core - t = Time.now -- assert_equal t.inspect, JSON(JSON(t)).inspect -+ assert_equal t, JSON(JSON(t), :create_additions => true) - d = Date.today -- assert_equal d, JSON(JSON(d)) -+ assert_equal d, JSON(JSON(d), :create_additions => true) - d = DateTime.civil(2007, 6, 14, 14, 57, 10, Rational(1, 12), 2299161) -- assert_equal d, JSON(JSON(d)) -- assert_equal 1..10, JSON(JSON(1..10)) -- assert_equal 1...10, JSON(JSON(1...10)) -- assert_equal "a".."c", JSON(JSON("a".."c")) -- assert_equal "a"..."c", JSON(JSON("a"..."c")) -+ assert_equal d, JSON(JSON(d), :create_additions => true) -+ assert_equal 1..10, JSON(JSON(1..10), :create_additions => true) -+ assert_equal 1...10, JSON(JSON(1...10), :create_additions => true) -+ assert_equal "a".."c", JSON(JSON("a".."c"), :create_additions => true) -+ assert_equal "a"..."c", JSON(JSON("a"..."c"), :create_additions => true) - s = MyJsonStruct.new 4711, 'foot' -- assert_equal s, JSON(JSON(s)) -+ assert_equal s, JSON(JSON(s), :create_additions => true) - struct = Struct.new :foo, :bar - s = struct.new 4711, 'foot' - assert_raises(JSONError) { JSON(s) } -@@ -144,24 +152,24 @@ class TC_JSONAddition < Test::Unit::Test - raise TypeError, "test me" - rescue TypeError => e - e_json = JSON.generate e -- e_again = JSON e_json -+ e_again = JSON e_json, :create_additions => true - assert_kind_of TypeError, e_again - assert_equal e.message, e_again.message - assert_equal e.backtrace, e_again.backtrace - end -- assert_equal(/foo/, JSON(JSON(/foo/))) -- assert_equal(/foo/i, JSON(JSON(/foo/i))) -+ assert_equal(/foo/, JSON(JSON(/foo/), :create_additions => true)) -+ assert_equal(/foo/i, JSON(JSON(/foo/i), :create_additions => true)) - end - - def test_utc_datetime - now = Time.now -- d = DateTime.parse(now.to_s) # usual case -- assert_equal d, JSON.parse(d.to_json) -+ d = DateTime.parse(now.to_s, :create_additions => true) # usual case -+ assert_equal d, JSON.parse(d.to_json, :create_additions => true) - d = DateTime.parse(now.utc.to_s) # of = 0 -- assert_equal d, JSON.parse(d.to_json) -+ assert_equal d, JSON.parse(d.to_json, :create_additions => true) - d = DateTime.civil(2008, 6, 17, 11, 48, 32, Rational(1,24)) -- assert_equal d, JSON.parse(d.to_json) -+ assert_equal d, JSON.parse(d.to_json, :create_additions => true) - d = DateTime.civil(2008, 6, 17, 11, 48, 32, Rational(12,24)) -- assert_equal d, JSON.parse(d.to_json) -+ assert_equal d, JSON.parse(d.to_json, :create_additions => true) - end - end diff --git a/lang/ruby193-base/patches/patch-test_json_test__json__string__matching.rb b/lang/ruby193-base/patches/patch-test_json_test__json__string__matching.rb deleted file mode 100644 index a86efdb3670..00000000000 --- a/lang/ruby193-base/patches/patch-test_json_test__json__string__matching.rb +++ /dev/null @@ -1,26 +0,0 @@ -$NetBSD: patch-test_json_test__json__string__matching.rb,v 1.1 2013/02/12 13:03:09 taca Exp $ - -Fix for CVE-2013-0269. - ---- test/json/test_json_string_matching.rb.orig 2011-07-10 08:01:04.000000000 +0000 -+++ test/json/test_json_string_matching.rb -@@ -27,14 +27,13 @@ class TestJsonStringMatching < Test::Uni - t = TestTime.new - t_json = [ t ].to_json - assert_equal [ t ], -- JSON.parse(t_json, -- :match_string => { /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\Z/ => TestTime }) -+ JSON.parse(t_json, :create_additions => true, -+ :match_string => { /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\z/ => TestTime }) - assert_equal [ t.strftime('%FT%T%z') ], -- JSON.parse(t_json, -- :match_string => { /\A\d{3}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\Z/ => TestTime }) -+ JSON.parse(t_json, :create_additions => true, -+ :match_string => { /\A\d{3}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\z/ => TestTime }) - assert_equal [ t.strftime('%FT%T%z') ], - JSON.parse(t_json, -- :match_string => { /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\Z/ => TestTime }, -- :create_additions => false) -+ :match_string => { /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\z/ => TestTime }) - end - end |