json_pure 1.1.0 → 1.1.1

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.
@@ -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
@@ -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
@@ -84,7 +84,8 @@ class MyState < JSON.state
84
84
  :space => make_spaces,
85
85
  :space_before => make_spaces,
86
86
  :object_nl => make_spaces,
87
- :array_nl => make_spaces
87
+ :array_nl => make_spaces,
88
+ :max_nesting => false
88
89
  )
89
90
  end
90
91
 
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.0
7
- date: 2007-06-04 00:00:00 +02:00
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: