json 1.4.3-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of json might be problematic. Click here for more details.

Files changed (60) hide show
  1. data/lib/json.rb +10 -0
  2. data/lib/json/Array.xpm +21 -0
  3. data/lib/json/FalseClass.xpm +21 -0
  4. data/lib/json/Hash.xpm +21 -0
  5. data/lib/json/Key.xpm +73 -0
  6. data/lib/json/NilClass.xpm +21 -0
  7. data/lib/json/Numeric.xpm +28 -0
  8. data/lib/json/String.xpm +96 -0
  9. data/lib/json/TrueClass.xpm +21 -0
  10. data/lib/json/add/core.rb +148 -0
  11. data/lib/json/add/rails.rb +58 -0
  12. data/lib/json/common.rb +397 -0
  13. data/lib/json/editor.rb +1371 -0
  14. data/lib/json/ext.rb +15 -0
  15. data/lib/json/ext/generator.jar +0 -0
  16. data/lib/json/ext/parser.jar +0 -0
  17. data/lib/json/json.xpm +1499 -0
  18. data/lib/json/pure.rb +77 -0
  19. data/lib/json/pure/generator.rb +452 -0
  20. data/lib/json/pure/parser.rb +307 -0
  21. data/lib/json/version.rb +8 -0
  22. data/tests/fixtures/fail1.json +1 -0
  23. data/tests/fixtures/fail10.json +1 -0
  24. data/tests/fixtures/fail11.json +1 -0
  25. data/tests/fixtures/fail12.json +1 -0
  26. data/tests/fixtures/fail13.json +1 -0
  27. data/tests/fixtures/fail14.json +1 -0
  28. data/tests/fixtures/fail18.json +1 -0
  29. data/tests/fixtures/fail19.json +1 -0
  30. data/tests/fixtures/fail2.json +1 -0
  31. data/tests/fixtures/fail20.json +1 -0
  32. data/tests/fixtures/fail21.json +1 -0
  33. data/tests/fixtures/fail22.json +1 -0
  34. data/tests/fixtures/fail23.json +1 -0
  35. data/tests/fixtures/fail24.json +1 -0
  36. data/tests/fixtures/fail25.json +1 -0
  37. data/tests/fixtures/fail27.json +2 -0
  38. data/tests/fixtures/fail28.json +2 -0
  39. data/tests/fixtures/fail3.json +1 -0
  40. data/tests/fixtures/fail4.json +1 -0
  41. data/tests/fixtures/fail5.json +1 -0
  42. data/tests/fixtures/fail6.json +1 -0
  43. data/tests/fixtures/fail7.json +1 -0
  44. data/tests/fixtures/fail8.json +1 -0
  45. data/tests/fixtures/fail9.json +1 -0
  46. data/tests/fixtures/pass1.json +56 -0
  47. data/tests/fixtures/pass15.json +1 -0
  48. data/tests/fixtures/pass16.json +1 -0
  49. data/tests/fixtures/pass17.json +1 -0
  50. data/tests/fixtures/pass2.json +1 -0
  51. data/tests/fixtures/pass26.json +1 -0
  52. data/tests/fixtures/pass3.json +6 -0
  53. data/tests/test_json.rb +361 -0
  54. data/tests/test_json_addition.rb +162 -0
  55. data/tests/test_json_encoding.rb +68 -0
  56. data/tests/test_json_fixtures.rb +34 -0
  57. data/tests/test_json_generate.rb +122 -0
  58. data/tests/test_json_rails.rb +144 -0
  59. data/tests/test_json_unicode.rb +76 -0
  60. metadata +122 -0
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'test/unit'
5
+ case ENV['JSON']
6
+ when 'pure' then require 'json/pure'
7
+ when 'ext' then require 'json/ext'
8
+ else require 'json'
9
+ end
10
+ require 'iconv'
11
+
12
+ class TC_JSONEncoding < Test::Unit::TestCase
13
+ include JSON
14
+
15
+ def setup
16
+ @utf_8 = '["© ≠ €!"]'
17
+ @parsed = [ "© ≠ €!" ]
18
+ @utf_16_data = Iconv.iconv('utf-16be', 'utf-8', @parsed.first)
19
+ @generated = '["\u00a9 \u2260 \u20ac!"]'
20
+ if defined?(::Encoding)
21
+ @utf_8_ascii_8bit = @utf_8.dup.force_encoding(Encoding::ASCII_8BIT)
22
+ @utf_16be, = Iconv.iconv('utf-16be', 'utf-8', @utf_8)
23
+ @utf_16be_ascii_8bit = @utf_16be.dup.force_encoding(Encoding::ASCII_8BIT)
24
+ @utf_16le, = Iconv.iconv('utf-16le', 'utf-8', @utf_8)
25
+ @utf_16le_ascii_8bit = @utf_16le.dup.force_encoding(Encoding::ASCII_8BIT)
26
+ @utf_32be, = Iconv.iconv('utf-32be', 'utf-8', @utf_8)
27
+ @utf_32be_ascii_8bit = @utf_32be.dup.force_encoding(Encoding::ASCII_8BIT)
28
+ @utf_32le, = Iconv.iconv('utf-32le', 'utf-8', @utf_8)
29
+ @utf_32le_ascii_8bit = @utf_32le.dup.force_encoding(Encoding::ASCII_8BIT)
30
+ else
31
+ @utf_8_ascii_8bit = @utf_8.dup
32
+ @utf_16be, = Iconv.iconv('utf-16be', 'utf-8', @utf_8)
33
+ @utf_16be_ascii_8bit = @utf_16be.dup
34
+ @utf_16le, = Iconv.iconv('utf-16le', 'utf-8', @utf_8)
35
+ @utf_16le_ascii_8bit = @utf_16le.dup
36
+ @utf_32be, = Iconv.iconv('utf-32be', 'utf-8', @utf_8)
37
+ @utf_32be_ascii_8bit = @utf_32be.dup
38
+ @utf_32le, = Iconv.iconv('utf-32le', 'utf-8', @utf_8)
39
+ @utf_32le_ascii_8bit = @utf_32le.dup
40
+ end
41
+ end
42
+
43
+ def test_parse
44
+ assert_equal @parsed, JSON.parse(@utf_8)
45
+ assert_equal @parsed, JSON.parse(@utf_16be)
46
+ assert_equal @parsed, JSON.parse(@utf_16le)
47
+ assert_equal @parsed, JSON.parse(@utf_32be)
48
+ assert_equal @parsed, JSON.parse(@utf_32le)
49
+ end
50
+
51
+ def test_parse_ascii_8bit
52
+ assert_equal @parsed, JSON.parse(@utf_8_ascii_8bit)
53
+ assert_equal @parsed, JSON.parse(@utf_16be_ascii_8bit)
54
+ assert_equal @parsed, JSON.parse(@utf_16le_ascii_8bit)
55
+ assert_equal @parsed, JSON.parse(@utf_32be_ascii_8bit)
56
+ assert_equal @parsed, JSON.parse(@utf_32le_ascii_8bit)
57
+ end
58
+
59
+ def test_generate
60
+ assert_equal @generated, JSON.generate(@parsed, :ascii_only => true)
61
+ if defined?(::Encoding)
62
+ assert_equal @generated, JSON.generate(@utf_16_data, :ascii_only => true)
63
+ else
64
+ # XXX checking of correct utf8 data is not as strict (yet?) without :ascii_only
65
+ assert_raises(JSON::GeneratorError) { JSON.generate(@utf_16_data, :ascii_only => true) }
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'test/unit'
5
+ case ENV['JSON']
6
+ when 'pure' then require 'json/pure'
7
+ when 'ext' then require 'json/ext'
8
+ else require 'json'
9
+ end
10
+
11
+ class TC_JSONFixtures < Test::Unit::TestCase
12
+ def setup
13
+ fixtures = File.join(File.dirname(__FILE__), 'fixtures/*.json')
14
+ passed, failed = Dir[fixtures].partition { |f| f['pass'] }
15
+ @passed = passed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort
16
+ @failed = failed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort
17
+ end
18
+
19
+ def test_passing
20
+ for name, source in @passed
21
+ assert JSON.parse(source),
22
+ "Did not pass for fixture '#{name}'"
23
+ end
24
+ end
25
+
26
+ def test_failing
27
+ for name, source in @failed
28
+ assert_raises(JSON::ParserError, JSON::NestingError,
29
+ "Did not fail for fixture '#{name}'") do
30
+ JSON.parse(source)
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,122 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'test/unit'
5
+ case ENV['JSON']
6
+ when 'pure' then require 'json/pure'
7
+ when 'ext' then require 'json/ext'
8
+ else require 'json'
9
+ end
10
+
11
+ class TC_JSONGenerate < Test::Unit::TestCase
12
+ include JSON
13
+
14
+ def setup
15
+ @hash = {
16
+ 'a' => 2,
17
+ 'b' => 3.141,
18
+ 'c' => 'c',
19
+ 'd' => [ 1, "b", 3.14 ],
20
+ 'e' => { 'foo' => 'bar' },
21
+ 'g' => "\"\0\037",
22
+ 'h' => 1000.0,
23
+ 'i' => 0.001
24
+ }
25
+ @json2 = '{"a":2,"b":3.141,"c":"c","d":[1,"b",3.14],"e":{"foo":"bar"},' +
26
+ '"g":"\\"\\u0000\\u001f","h":1000.0,"i":0.001}'
27
+ @json3 = <<'EOT'.chomp
28
+ {
29
+ "a": 2,
30
+ "b": 3.141,
31
+ "c": "c",
32
+ "d": [
33
+ 1,
34
+ "b",
35
+ 3.14
36
+ ],
37
+ "e": {
38
+ "foo": "bar"
39
+ },
40
+ "g": "\"\u0000\u001f",
41
+ "h": 1000.0,
42
+ "i": 0.001
43
+ }
44
+ EOT
45
+ end
46
+
47
+ def test_generate
48
+ json = generate(@hash)
49
+ assert_equal(JSON.parse(@json2), JSON.parse(json))
50
+ parsed_json = parse(json)
51
+ assert_equal(@hash, parsed_json)
52
+ json = generate({1=>2})
53
+ assert_equal('{"1":2}', json)
54
+ parsed_json = parse(json)
55
+ assert_equal({"1"=>2}, parsed_json)
56
+ assert_raise(GeneratorError) { generate(666) }
57
+ end
58
+
59
+ def test_generate_pretty
60
+ json = pretty_generate(@hash)
61
+ assert_equal(JSON.parse(@json3), JSON.parse(json))
62
+ parsed_json = parse(json)
63
+ assert_equal(@hash, parsed_json)
64
+ json = pretty_generate({1=>2})
65
+ assert_equal(<<'EOT'.chomp, json)
66
+ {
67
+ "1": 2
68
+ }
69
+ EOT
70
+ parsed_json = parse(json)
71
+ assert_equal({"1"=>2}, parsed_json)
72
+ assert_raise(GeneratorError) { pretty_generate(666) }
73
+ end
74
+
75
+ def test_fast_generate
76
+ json = fast_generate(@hash)
77
+ assert_equal(JSON.parse(@json2), JSON.parse(json))
78
+ parsed_json = parse(json)
79
+ assert_equal(@hash, parsed_json)
80
+ json = fast_generate({1=>2})
81
+ assert_equal('{"1":2}', json)
82
+ parsed_json = parse(json)
83
+ assert_equal({"1"=>2}, parsed_json)
84
+ assert_raise(GeneratorError) { fast_generate(666) }
85
+ end
86
+
87
+ def test_states
88
+ json = generate({1=>2}, nil)
89
+ assert_equal('{"1":2}', json)
90
+ s = JSON.state.new
91
+ assert s.check_circular?
92
+ assert s[:check_circular?]
93
+ h = { 1=>2 }
94
+ h[3] = h
95
+ assert_raises(JSON::NestingError) { generate(h) }
96
+ assert_raises(JSON::NestingError) { generate(h, s) }
97
+ s = JSON.state.new
98
+ a = [ 1, 2 ]
99
+ a << a
100
+ assert_raises(JSON::NestingError) { generate(a, s) }
101
+ assert s.check_circular?
102
+ assert s[:check_circular?]
103
+ end
104
+
105
+ def test_allow_nan
106
+ assert_raises(GeneratorError) { generate([JSON::NaN]) }
107
+ assert_equal '[NaN]', generate([JSON::NaN], :allow_nan => true)
108
+ assert_raises(GeneratorError) { fast_generate([JSON::NaN]) }
109
+ assert_raises(GeneratorError) { pretty_generate([JSON::NaN]) }
110
+ assert_equal "[\n NaN\n]", pretty_generate([JSON::NaN], :allow_nan => true)
111
+ assert_raises(GeneratorError) { generate([JSON::Infinity]) }
112
+ assert_equal '[Infinity]', generate([JSON::Infinity], :allow_nan => true)
113
+ assert_raises(GeneratorError) { fast_generate([JSON::Infinity]) }
114
+ assert_raises(GeneratorError) { pretty_generate([JSON::Infinity]) }
115
+ assert_equal "[\n Infinity\n]", pretty_generate([JSON::Infinity], :allow_nan => true)
116
+ assert_raises(GeneratorError) { generate([JSON::MinusInfinity]) }
117
+ assert_equal '[-Infinity]', generate([JSON::MinusInfinity], :allow_nan => true)
118
+ assert_raises(GeneratorError) { fast_generate([JSON::MinusInfinity]) }
119
+ assert_raises(GeneratorError) { pretty_generate([JSON::MinusInfinity]) }
120
+ assert_equal "[\n -Infinity\n]", pretty_generate([JSON::MinusInfinity], :allow_nan => true)
121
+ end
122
+ end
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'test/unit'
5
+ case ENV['JSON']
6
+ when 'pure' then require 'json/pure'
7
+ when 'ext' then require 'json/ext'
8
+ else require 'json'
9
+ end
10
+ require 'json/add/rails'
11
+ require 'date'
12
+
13
+ class TC_JSONRails < Test::Unit::TestCase
14
+ include JSON
15
+
16
+ class A
17
+ def initialize(a)
18
+ @a = a
19
+ end
20
+
21
+ attr_reader :a
22
+
23
+ def ==(other)
24
+ a == other.a
25
+ end
26
+
27
+ def self.json_create(object)
28
+ new(*object['args'])
29
+ end
30
+
31
+ def to_json(*args)
32
+ {
33
+ 'json_class' => self.class.name,
34
+ 'args' => [ @a ],
35
+ }.to_json(*args)
36
+ end
37
+ end
38
+
39
+ class B
40
+ def self.json_creatable?
41
+ false
42
+ end
43
+
44
+ def to_json(*args)
45
+ {
46
+ 'json_class' => self.class.name,
47
+ }.to_json(*args)
48
+ end
49
+ end
50
+
51
+ class C
52
+ def to_json(*args)
53
+ {
54
+ 'json_class' => 'TC_JSONRails::Nix',
55
+ }.to_json(*args)
56
+ end
57
+ end
58
+
59
+ class D
60
+ def initialize
61
+ @foo = 666
62
+ end
63
+
64
+ attr_reader :foo
65
+
66
+ def ==(other)
67
+ foo == other.foo
68
+ end
69
+ end
70
+
71
+ def test_extended_json
72
+ a = A.new(666)
73
+ assert A.json_creatable?
74
+ assert_equal 666, a.a
75
+ json = generate(a)
76
+ a_again = JSON.parse(json)
77
+ assert_kind_of a.class, a_again
78
+ assert_equal a, a_again
79
+ assert_equal 666, a_again.a
80
+ end
81
+
82
+ def test_extended_json_generic_object
83
+ d = D.new
84
+ assert D.json_creatable?
85
+ assert_equal 666, d.foo
86
+ json = generate(d)
87
+ d_again = JSON.parse(json)
88
+ assert_kind_of d.class, d_again
89
+ assert_equal d, d_again
90
+ assert_equal 666, d_again.foo
91
+ end
92
+
93
+ def test_extended_json_disabled
94
+ a = A.new(666)
95
+ assert A.json_creatable?
96
+ json = generate(a)
97
+ a_again = JSON.parse(json, :create_additions => true)
98
+ assert_kind_of a.class, a_again
99
+ assert_equal a, a_again
100
+ a_hash = JSON.parse(json, :create_additions => false)
101
+ assert_kind_of Hash, a_hash
102
+ assert_equal(
103
+ {"args"=>[666], "json_class"=>"TC_JSONRails::A"}.sort_by { |k,| k },
104
+ a_hash.sort_by { |k,| k }
105
+ )
106
+ end
107
+
108
+ def test_extended_json_fail1
109
+ b = B.new
110
+ assert !B.json_creatable?
111
+ json = generate(b)
112
+ assert_equal({ 'json_class' => B.name }, JSON.parse(json))
113
+ end
114
+
115
+ def test_extended_json_fail2
116
+ c = C.new # with rails addition all objects are theoretically creatable
117
+ assert C.json_creatable?
118
+ json = generate(c)
119
+ assert_raises(ArgumentError, NameError) { JSON.parse(json) }
120
+ end
121
+
122
+ def test_raw_strings
123
+ raw = ''
124
+ raw.respond_to?(:encode!) and raw.encode!(Encoding::ASCII_8BIT)
125
+ raw_array = []
126
+ for i in 0..255
127
+ raw << i
128
+ raw_array << i
129
+ end
130
+ json = raw.to_json_raw
131
+ json_raw_object = raw.to_json_raw_object
132
+ hash = { 'json_class' => 'String', 'raw'=> raw_array }
133
+ assert_equal hash, json_raw_object
134
+ assert_match /\A\{.*\}\Z/, json
135
+ assert_match /"json_class":"String"/, json
136
+ 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
137
+ raw_again = JSON.parse(json)
138
+ assert_equal raw, raw_again
139
+ end
140
+
141
+ def test_symbol
142
+ assert_equal '"foo"', :foo.to_json # we don't want an object here
143
+ end
144
+ end
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'test/unit'
5
+ case ENV['JSON']
6
+ when 'pure' then require 'json/pure'
7
+ when 'ext' then require 'json/ext'
8
+ else require 'json'
9
+ end
10
+
11
+ class TC_JSONUnicode < Test::Unit::TestCase
12
+ include JSON
13
+
14
+ def test_unicode
15
+ assert_equal '""', ''.to_json
16
+ assert_equal '"\\b"', "\b".to_json
17
+ assert_equal '"\u0001"', 0x1.chr.to_json
18
+ assert_equal '"\u001f"', 0x1f.chr.to_json
19
+ assert_equal '" "', ' '.to_json
20
+ assert_equal "\"#{0x7f.chr}\"", 0x7f.chr.to_json
21
+ utf8 = [ "© ≠ €! \01" ]
22
+ json = '["© ≠ €! \u0001"]'
23
+ assert_equal json, utf8.to_json(:ascii_only => false)
24
+ assert_equal utf8, parse(json)
25
+ json = '["\u00a9 \u2260 \u20ac! \u0001"]'
26
+ assert_equal json, utf8.to_json(:ascii_only => true)
27
+ assert_equal utf8, parse(json)
28
+ utf8 = ["\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212"]
29
+ json = "[\"\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212\"]"
30
+ assert_equal utf8, parse(json)
31
+ assert_equal json, utf8.to_json(:ascii_only => false)
32
+ utf8 = ["\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212"]
33
+ assert_equal utf8, parse(json)
34
+ json = "[\"\\u3042\\u3044\\u3046\\u3048\\u304a\"]"
35
+ assert_equal json, utf8.to_json(:ascii_only => true)
36
+ assert_equal utf8, parse(json)
37
+ utf8 = ['საქართველო']
38
+ json = '["საქართველო"]'
39
+ assert_equal json, utf8.to_json(:ascii_only => false)
40
+ json = "[\"\\u10e1\\u10d0\\u10e5\\u10d0\\u10e0\\u10d7\\u10d5\\u10d4\\u10da\\u10dd\"]"
41
+ assert_equal json, utf8.to_json(:ascii_only => true)
42
+ assert_equal utf8, parse(json)
43
+ assert_equal '["Ã"]', JSON.generate(["Ã"], :ascii_only => false)
44
+ assert_equal '["\\u00c3"]', JSON.generate(["Ã"], :ascii_only => true)
45
+ assert_equal ["€"], JSON.parse('["\u20ac"]')
46
+ utf8 = ["\xf0\xa0\x80\x81"]
47
+ json = "[\"\xf0\xa0\x80\x81\"]"
48
+ assert_equal json, JSON.generate(utf8, :ascii_only => false)
49
+ assert_equal utf8, JSON.parse(json)
50
+ json = '["\ud840\udc01"]'
51
+ assert_equal json, JSON.generate(utf8, :ascii_only => true)
52
+ assert_equal utf8, JSON.parse(json)
53
+ end
54
+
55
+ def test_chars
56
+ (0..0x7f).each do |i|
57
+ json = '["\u%04x"]' % i
58
+ if RUBY_VERSION >= "1.9."
59
+ i = i.chr
60
+ end
61
+ assert_equal i, JSON.parse(json).first[0]
62
+ if i == ?\b
63
+ generated = JSON.generate(["" << i])
64
+ assert '["\b"]' == generated || '["\10"]' == generated
65
+ elsif [?\n, ?\r, ?\t, ?\f].include?(i)
66
+ assert_equal '[' << ('' << i).dump << ']', JSON.generate(["" << i])
67
+ elsif i.chr < 0x20.chr
68
+ assert_equal json, JSON.generate(["" << i])
69
+ end
70
+ end
71
+ assert_raise(JSON::GeneratorError) do
72
+ JSON.generate(["\x80"], :ascii_only => true)
73
+ end
74
+ assert_equal "\302\200", JSON.parse('["\u0080"]').first
75
+ end
76
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: json
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 4
8
+ - 3
9
+ version: 1.4.3
10
+ platform: java
11
+ authors:
12
+ - Daniel Luz
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-08-03 00:00:00 -05:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: A JSON implementation as a JRuby extension.
22
+ email: dev+ruby@mernen.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/json.rb
31
+ - lib/json/Array.xpm
32
+ - lib/json/common.rb
33
+ - lib/json/editor.rb
34
+ - lib/json/ext.rb
35
+ - lib/json/FalseClass.xpm
36
+ - lib/json/Hash.xpm
37
+ - lib/json/json.xpm
38
+ - lib/json/Key.xpm
39
+ - lib/json/NilClass.xpm
40
+ - lib/json/Numeric.xpm
41
+ - lib/json/pure.rb
42
+ - lib/json/String.xpm
43
+ - lib/json/TrueClass.xpm
44
+ - lib/json/version.rb
45
+ - lib/json/add/core.rb
46
+ - lib/json/add/rails.rb
47
+ - lib/json/ext/generator.jar
48
+ - lib/json/ext/parser.jar
49
+ - lib/json/pure/generator.rb
50
+ - lib/json/pure/parser.rb
51
+ - tests/test_json.rb
52
+ - tests/test_json_addition.rb
53
+ - tests/test_json_encoding.rb
54
+ - tests/test_json_fixtures.rb
55
+ - tests/test_json_generate.rb
56
+ - tests/test_json_rails.rb
57
+ - tests/test_json_unicode.rb
58
+ - tests/fixtures/fail1.json
59
+ - tests/fixtures/fail10.json
60
+ - tests/fixtures/fail11.json
61
+ - tests/fixtures/fail12.json
62
+ - tests/fixtures/fail13.json
63
+ - tests/fixtures/fail14.json
64
+ - tests/fixtures/fail18.json
65
+ - tests/fixtures/fail19.json
66
+ - tests/fixtures/fail2.json
67
+ - tests/fixtures/fail20.json
68
+ - tests/fixtures/fail21.json
69
+ - tests/fixtures/fail22.json
70
+ - tests/fixtures/fail23.json
71
+ - tests/fixtures/fail24.json
72
+ - tests/fixtures/fail25.json
73
+ - tests/fixtures/fail27.json
74
+ - tests/fixtures/fail28.json
75
+ - tests/fixtures/fail3.json
76
+ - tests/fixtures/fail4.json
77
+ - tests/fixtures/fail5.json
78
+ - tests/fixtures/fail6.json
79
+ - tests/fixtures/fail7.json
80
+ - tests/fixtures/fail8.json
81
+ - tests/fixtures/fail9.json
82
+ - tests/fixtures/pass1.json
83
+ - tests/fixtures/pass15.json
84
+ - tests/fixtures/pass16.json
85
+ - tests/fixtures/pass17.json
86
+ - tests/fixtures/pass2.json
87
+ - tests/fixtures/pass26.json
88
+ - tests/fixtures/pass3.json
89
+ has_rdoc: true
90
+ homepage: http://json-jruby.rubyforge.org/
91
+ licenses: []
92
+
93
+ post_install_message:
94
+ rdoc_options: []
95
+
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ segments:
104
+ - 0
105
+ version: "0"
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ requirements: []
115
+
116
+ rubyforge_project: json-jruby
117
+ rubygems_version: 1.3.7
118
+ signing_key:
119
+ specification_version: 3
120
+ summary: JSON implementation for JRuby
121
+ test_files: []
122
+