json_pure 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +18 -0
- data/Rakefile +5 -5
- data/VERSION +1 -1
- data/benchmarks/benchmark_generator.rb +5 -1
- data/benchmarks/benchmark_parser.rb +5 -1
- data/bin/edit_json.rb +11 -11
- data/ext/json/ext/generator/extconf.rb +2 -2
- data/ext/json/ext/generator/generator.c +185 -50
- data/ext/json/ext/parser/extconf.rb +2 -2
- data/ext/json/ext/parser/parser.c +246 -117
- data/ext/json/ext/parser/parser.rl +54 -6
- data/lib/json.rb +23 -0
- data/lib/json/add/core.rb +119 -0
- data/lib/json/add/rails.rb +52 -0
- data/lib/json/common.rb +174 -23
- data/lib/json/editor.rb +12 -14
- data/lib/json/pure/generator.rb +83 -10
- data/lib/json/pure/parser.rb +15 -1
- data/lib/json/version.rb +1 -1
- data/tests/fixtures/fail18.json +1 -1
- data/tests/test_json.rb +51 -12
- data/tests/test_json_addition.rb +34 -3
- data/tests/test_json_fixtures.rb +2 -2
- data/tests/test_json_generate.rb +21 -2
- data/tests/test_json_unicode.rb +4 -1
- data/tools/fuzz.rb +2 -1
- metadata +6 -3
data/tests/test_json_generate.rb
CHANGED
@@ -40,7 +40,7 @@ EOT
|
|
40
40
|
|
41
41
|
def test_unparse
|
42
42
|
json = unparse(@hash)
|
43
|
-
assert_equal(@json2, json)
|
43
|
+
assert_equal(JSON.parse(@json2), JSON.parse(json))
|
44
44
|
parsed_json = parse(json)
|
45
45
|
assert_equal(@hash, parsed_json)
|
46
46
|
json = generate({1=>2})
|
@@ -51,7 +51,7 @@ EOT
|
|
51
51
|
|
52
52
|
def test_unparse_pretty
|
53
53
|
json = pretty_unparse(@hash)
|
54
|
-
assert_equal(@json3, json)
|
54
|
+
assert_equal(JSON.parse(@json3), JSON.parse(json))
|
55
55
|
parsed_json = parse(json)
|
56
56
|
assert_equal(@hash, parsed_json)
|
57
57
|
json = pretty_generate({1=>2})
|
@@ -71,6 +71,7 @@ EOT
|
|
71
71
|
#assert s.check_circular
|
72
72
|
h = { 1=>2 }
|
73
73
|
h[3] = h
|
74
|
+
assert_raises(JSON::CircularDatastructure) { generate(h) }
|
74
75
|
assert_raises(JSON::CircularDatastructure) { generate(h, s) }
|
75
76
|
s = JSON.state.new(:check_circular => true)
|
76
77
|
#assert s.check_circular
|
@@ -78,4 +79,22 @@ EOT
|
|
78
79
|
a << a
|
79
80
|
assert_raises(JSON::CircularDatastructure) { generate(a, s) }
|
80
81
|
end
|
82
|
+
|
83
|
+
def test_allow_nan
|
84
|
+
assert_raises(GeneratorError) { generate([JSON::NaN]) }
|
85
|
+
assert_equal '[NaN]', generate([JSON::NaN], :allow_nan => true)
|
86
|
+
assert_equal '[NaN]', fast_generate([JSON::NaN])
|
87
|
+
assert_raises(GeneratorError) { pretty_generate([JSON::NaN]) }
|
88
|
+
assert_equal "[\n NaN\n]", pretty_generate([JSON::NaN], :allow_nan => true)
|
89
|
+
assert_raises(GeneratorError) { generate([JSON::Infinity]) }
|
90
|
+
assert_equal '[Infinity]', generate([JSON::Infinity], :allow_nan => true)
|
91
|
+
assert_equal '[Infinity]', fast_generate([JSON::Infinity])
|
92
|
+
assert_raises(GeneratorError) { pretty_generate([JSON::Infinity]) }
|
93
|
+
assert_equal "[\n Infinity\n]", pretty_generate([JSON::Infinity], :allow_nan => true)
|
94
|
+
assert_raises(GeneratorError) { generate([JSON::MinusInfinity]) }
|
95
|
+
assert_equal '[-Infinity]', generate([JSON::MinusInfinity], :allow_nan => true)
|
96
|
+
assert_equal '[-Infinity]', fast_generate([JSON::MinusInfinity])
|
97
|
+
assert_raises(GeneratorError) { pretty_generate([JSON::MinusInfinity]) }
|
98
|
+
assert_equal "[\n -Infinity\n]", pretty_generate([JSON::MinusInfinity], :allow_nan => true)
|
99
|
+
end
|
81
100
|
end
|
data/tests/test_json_unicode.rb
CHANGED
@@ -40,13 +40,16 @@ class TC_JSONUnicode < Test::Unit::TestCase
|
|
40
40
|
def test_chars
|
41
41
|
(0..0x7f).each do |i|
|
42
42
|
json = '["\u%04x"]' % i
|
43
|
+
if RUBY_VERSION >= "1.9."
|
44
|
+
i = i.chr
|
45
|
+
end
|
43
46
|
assert_equal i, JSON.parse(json).first[0]
|
44
47
|
if i == ?\b
|
45
48
|
generated = JSON.generate(["" << i])
|
46
49
|
assert '["\b"]' == generated || '["\10"]' == generated
|
47
50
|
elsif [?\n, ?\r, ?\t, ?\f].include?(i)
|
48
51
|
assert_equal '[' << ('' << i).dump << ']', JSON.generate(["" << i])
|
49
|
-
elsif i < 0x20
|
52
|
+
elsif i.chr < 0x20.chr
|
50
53
|
assert_equal json, JSON.generate(["" << i])
|
51
54
|
end
|
52
55
|
end
|
data/tools/fuzz.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: json_pure
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.1.
|
7
|
-
date: 2007-06
|
6
|
+
version: 1.1.1
|
7
|
+
date: 2007-07-06 00:00:00 +02:00
|
8
8
|
summary: A JSON implementation in Ruby
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -92,7 +92,6 @@ files:
|
|
92
92
|
- ext/json/ext/generator/unicode.h
|
93
93
|
- ext/json/ext/generator/extconf.rb
|
94
94
|
- ext/json/ext/generator/generator.c
|
95
|
-
- ext/json/ext/parser/parser.c
|
96
95
|
- ext/json/ext/parser/unicode.c
|
97
96
|
- ext/json/ext/parser/parser.rl
|
98
97
|
- ext/json/ext/parser/unicode.h
|
@@ -108,6 +107,7 @@ files:
|
|
108
107
|
- lib/json.rb
|
109
108
|
- lib/json/FalseClass.xpm
|
110
109
|
- lib/json/TrueClass.xpm
|
110
|
+
- lib/json/add
|
111
111
|
- lib/json/ext.rb
|
112
112
|
- lib/json/common.rb
|
113
113
|
- lib/json/Hash.xpm
|
@@ -121,10 +121,13 @@ files:
|
|
121
121
|
- lib/json/NilClass.xpm
|
122
122
|
- lib/json/version.rb
|
123
123
|
- lib/json/json.xpm
|
124
|
+
- lib/json/add/core.rb
|
125
|
+
- lib/json/add/rails.rb
|
124
126
|
- lib/json/pure/parser.rb
|
125
127
|
- lib/json/pure/generator.rb
|
126
128
|
- tools/server.rb
|
127
129
|
- tools/fuzz.rb
|
130
|
+
- ext/json/ext/parser/parser.c
|
128
131
|
test_files:
|
129
132
|
- tests/runner.rb
|
130
133
|
rdoc_options:
|