json 2.1.0-java → 2.4.1-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.
@@ -4,6 +4,7 @@ require 'test_helper'
4
4
  require 'stringio'
5
5
  require 'tempfile'
6
6
  require 'ostruct'
7
+ require 'bigdecimal'
7
8
 
8
9
  class JSONParserTest < Test::Unit::TestCase
9
10
  include JSON
@@ -90,27 +91,27 @@ class JSONParserTest < Test::Unit::TestCase
90
91
  assert_raise(JSON::ParserError) { parse('+23') }
91
92
  assert_raise(JSON::ParserError) { parse('.23') }
92
93
  assert_raise(JSON::ParserError) { parse('023') }
93
- assert_equal 23, parse('23')
94
- assert_equal -23, parse('-23')
95
- assert_equal_float 3.141, parse('3.141')
96
- assert_equal_float -3.141, parse('-3.141')
97
- assert_equal_float 3.141, parse('3141e-3')
98
- assert_equal_float 3.141, parse('3141.1e-3')
99
- assert_equal_float 3.141, parse('3141E-3')
100
- assert_equal_float 3.141, parse('3141.0E-3')
101
- assert_equal_float -3.141, parse('-3141.0e-3')
102
- assert_equal_float -3.141, parse('-3141e-3')
94
+ assert_equal(23, parse('23'))
95
+ assert_equal(-23, parse('-23'))
96
+ assert_equal_float(3.141, parse('3.141'))
97
+ assert_equal_float(-3.141, parse('-3.141'))
98
+ assert_equal_float(3.141, parse('3141e-3'))
99
+ assert_equal_float(3.141, parse('3141.1e-3'))
100
+ assert_equal_float(3.141, parse('3141E-3'))
101
+ assert_equal_float(3.141, parse('3141.0E-3'))
102
+ assert_equal_float(-3.141, parse('-3141.0e-3'))
103
+ assert_equal_float(-3.141, parse('-3141e-3'))
103
104
  assert_raise(ParserError) { parse('NaN') }
104
105
  assert parse('NaN', :allow_nan => true).nan?
105
106
  assert_raise(ParserError) { parse('Infinity') }
106
- assert_equal 1.0/0, parse('Infinity', :allow_nan => true)
107
+ assert_equal(1.0/0, parse('Infinity', :allow_nan => true))
107
108
  assert_raise(ParserError) { parse('-Infinity') }
108
- assert_equal -1.0/0, parse('-Infinity', :allow_nan => true)
109
+ assert_equal(-1.0/0, parse('-Infinity', :allow_nan => true))
109
110
  end
110
111
 
111
112
  def test_parse_bigdecimals
112
- assert_equal(BigDecimal, JSON.parse('{"foo": 9.01234567890123456789}', decimal_class: BigDecimal)["foo"].class)
113
- assert_equal(BigDecimal.new("0.901234567890123456789E1"),JSON.parse('{"foo": 9.01234567890123456789}', decimal_class: BigDecimal)["foo"] )
113
+ assert_equal(BigDecimal, JSON.parse('{"foo": 9.01234567890123456789}', decimal_class: BigDecimal)["foo"].class)
114
+ assert_equal(BigDecimal("0.901234567890123456789E1"),JSON.parse('{"foo": 9.01234567890123456789}', decimal_class: BigDecimal)["foo"] )
114
115
  end
115
116
 
116
117
  if Array.method_defined?(:permutation)
@@ -217,6 +218,17 @@ class JSONParserTest < Test::Unit::TestCase
217
218
  end
218
219
  end
219
220
 
221
+ def test_freeze
222
+ assert_predicate parse('{}', :freeze => true), :frozen?
223
+ assert_predicate parse('[]', :freeze => true), :frozen?
224
+ assert_predicate parse('"foo"', :freeze => true), :frozen?
225
+
226
+ if string_deduplication_available?
227
+ assert_same(-'foo', parse('"foo"', :freeze => true))
228
+ assert_same(-'foo', parse('{"foo": 1}', :freeze => true).keys.first)
229
+ end
230
+ end
231
+
220
232
  def test_parse_comments
221
233
  json = <<EOT
222
234
  {
@@ -292,6 +304,10 @@ EOT
292
304
  json = '["\\\'"]'
293
305
  data = ["'"]
294
306
  assert_equal data, parse(json)
307
+
308
+ json = '["\/"]'
309
+ data = [ '/' ]
310
+ assert_equal data, parse(json)
295
311
  end
296
312
 
297
313
  class SubArray < Array
@@ -463,6 +479,16 @@ EOT
463
479
 
464
480
  private
465
481
 
482
+ def string_deduplication_available?
483
+ r1 = rand.to_s
484
+ r2 = r1.dup
485
+ begin
486
+ (-r1).equal?(-r2)
487
+ rescue NoMethodError
488
+ false # No String#-@
489
+ end
490
+ end
491
+
466
492
  def assert_equal_float(expected, actual, delta = 1e-2)
467
493
  Array === expected and expected = expected.first
468
494
  Array === actual and actual = actual.first
@@ -1,12 +1,12 @@
1
1
  case ENV['JSON']
2
2
  when 'pure'
3
- $:.unshift 'lib'
3
+ $:.unshift File.join(__dir__, '../lib')
4
4
  require 'json/pure'
5
5
  when 'ext'
6
- $:.unshift 'ext', 'lib'
6
+ $:.unshift File.join(__dir__, '../ext'), File.join(__dir__, '../lib')
7
7
  require 'json/ext'
8
8
  else
9
- $:.unshift 'ext', 'lib'
9
+ $:.unshift File.join(__dir__, '../ext'), File.join(__dir__, '../lib')
10
10
  require 'json'
11
11
  end
12
12
 
@@ -15,7 +15,3 @@ begin
15
15
  require 'byebug'
16
16
  rescue LoadError
17
17
  end
18
- if ENV['START_SIMPLECOV'].to_i == 1
19
- require 'simplecov'
20
- SimpleCov.start
21
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.4.1
5
5
  platform: java
6
6
  authors:
7
7
  - Daniel Luz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-18 00:00:00.000000000 Z
11
+ date: 2020-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: '0'
19
19
  name: rake
20
- prerelease: false
21
20
  type: :development
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
@@ -27,23 +27,24 @@ dependencies:
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '2.0'
32
+ version: '0'
33
33
  name: test-unit
34
- prerelease: false
35
34
  type: :development
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '2.0'
40
+ version: '0'
41
41
  description: A JSON implementation as a JRuby extension.
42
42
  email: dev+ruby@mernen.com
43
43
  executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
+ - LICENSE
47
48
  - lib/json.rb
48
49
  - lib/json/add/bigdecimal.rb
49
50
  - lib/json/add/complex.rb
@@ -55,6 +56,7 @@ files:
55
56
  - lib/json/add/range.rb
56
57
  - lib/json/add/rational.rb
57
58
  - lib/json/add/regexp.rb
59
+ - lib/json/add/set.rb
58
60
  - lib/json/add/struct.rb
59
61
  - lib/json/add/symbol.rb
60
62
  - lib/json/add/time.rb
@@ -83,7 +85,11 @@ files:
83
85
  - tests/fixtures/fail25.json
84
86
  - tests/fixtures/fail27.json
85
87
  - tests/fixtures/fail28.json
88
+ - tests/fixtures/fail29.json
86
89
  - tests/fixtures/fail3.json
90
+ - tests/fixtures/fail30.json
91
+ - tests/fixtures/fail31.json
92
+ - tests/fixtures/fail32.json
87
93
  - tests/fixtures/fail4.json
88
94
  - tests/fixtures/fail5.json
89
95
  - tests/fixtures/fail6.json
@@ -108,10 +114,16 @@ files:
108
114
  - tests/json_parser_test.rb
109
115
  - tests/json_string_matching_test.rb
110
116
  - tests/test_helper.rb
111
- homepage: http://json-jruby.rubyforge.org/
117
+ homepage: http://flori.github.com/json
112
118
  licenses:
113
119
  - Ruby
114
- metadata: {}
120
+ metadata:
121
+ bug_tracker_uri: https://github.com/flori/json/issues
122
+ changelog_uri: https://github.com/flori/json/blob/master/CHANGES.md
123
+ documentation_uri: http://flori.github.io/json/doc/index.html
124
+ homepage_uri: http://flori.github.io/json/
125
+ source_code_uri: https://github.com/flori/json
126
+ wiki_uri: https://github.com/flori/json/wiki
115
127
  post_install_message:
116
128
  rdoc_options: []
117
129
  require_paths:
@@ -120,16 +132,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
132
  requirements:
121
133
  - - ">="
122
134
  - !ruby/object:Gem::Version
123
- version: '0'
135
+ version: '2.0'
124
136
  required_rubygems_version: !ruby/object:Gem::Requirement
125
137
  requirements:
126
138
  - - ">="
127
139
  - !ruby/object:Gem::Version
128
140
  version: '0'
129
141
  requirements: []
130
- rubyforge_project: json-jruby
131
- rubygems_version: 2.6.8
142
+ rubygems_version: 3.0.6
132
143
  signing_key:
133
144
  specification_version: 4
134
- summary: JSON implementation for JRuby
135
- test_files: []
145
+ summary: JSON Implementation for Ruby
146
+ test_files:
147
+ - tests/test_helper.rb