json 1.5.3 → 1.5.4

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.

@@ -3,7 +3,9 @@
3
3
 
4
4
  require 'test/unit'
5
5
  require File.join(File.dirname(__FILE__), 'setup_variant')
6
- load 'json/add/core.rb'
6
+ require 'json/add/core'
7
+ require 'json/add/complex'
8
+ require 'json/add/rational'
7
9
  require 'date'
8
10
 
9
11
  class TC_JSONAddition < Test::Unit::TestCase
@@ -19,7 +21,7 @@ class TC_JSONAddition < Test::Unit::TestCase
19
21
  def ==(other)
20
22
  a == other.a
21
23
  end
22
-
24
+
23
25
  def self.json_create(object)
24
26
  new(*object['args'])
25
27
  end
@@ -164,4 +166,9 @@ class TC_JSONAddition < Test::Unit::TestCase
164
166
  d = DateTime.civil(2008, 6, 17, 11, 48, 32, Rational(12,24))
165
167
  assert_equal d, JSON.parse(d.to_json)
166
168
  end
169
+
170
+ def test_rational_complex
171
+ assert_equal Rational(2, 9), JSON(JSON(Rational(2, 9)))
172
+ assert_equal Complex(2, 9), JSON(JSON(Complex(2, 9)))
173
+ end
167
174
  end
@@ -50,6 +50,7 @@ EOT
50
50
  parsed_json = parse(json)
51
51
  assert_equal({"1"=>2}, parsed_json)
52
52
  assert_raise(GeneratorError) { generate(666) }
53
+ assert_equal '666', generate(666, :quirks_mode => true)
53
54
  end
54
55
 
55
56
  def test_generate_pretty
@@ -67,6 +68,7 @@ EOT
67
68
  parsed_json = parse(json)
68
69
  assert_equal({"1"=>2}, parsed_json)
69
70
  assert_raise(GeneratorError) { pretty_generate(666) }
71
+ assert_equal '666', pretty_generate(666, :quirks_mode => true)
70
72
  end
71
73
 
72
74
  def test_fast_generate
@@ -79,9 +81,24 @@ EOT
79
81
  parsed_json = parse(json)
80
82
  assert_equal({"1"=>2}, parsed_json)
81
83
  assert_raise(GeneratorError) { fast_generate(666) }
84
+ assert_equal '666', fast_generate(666, :quirks_mode => true)
82
85
  end
83
86
 
84
-
87
+ def test_own_state
88
+ state = State.new
89
+ json = generate(@hash, state)
90
+ assert_equal(JSON.parse(@json2), JSON.parse(json))
91
+ parsed_json = parse(json)
92
+ assert_equal(@hash, parsed_json)
93
+ json = generate({1=>2}, state)
94
+ assert_equal('{"1":2}', json)
95
+ parsed_json = parse(json)
96
+ assert_equal({"1"=>2}, parsed_json)
97
+ assert_raise(GeneratorError) { generate(666, state) }
98
+ state.quirks_mode = true
99
+ assert state.quirks_mode?
100
+ assert_equal '666', generate(666, state)
101
+ end
85
102
 
86
103
  def test_states
87
104
  json = generate({1=>2}, nil)
@@ -107,6 +124,7 @@ EOT
107
124
  :allow_nan => false,
108
125
  :array_nl => "\n",
109
126
  :ascii_only => false,
127
+ :quirks_mode => false,
110
128
  :depth => 0,
111
129
  :indent => " ",
112
130
  :max_nesting => 19,
@@ -122,6 +140,7 @@ EOT
122
140
  :allow_nan => false,
123
141
  :array_nl => "",
124
142
  :ascii_only => false,
143
+ :quirks_mode => false,
125
144
  :depth => 0,
126
145
  :indent => "",
127
146
  :max_nesting => 19,
@@ -137,6 +156,7 @@ EOT
137
156
  :allow_nan => false,
138
157
  :array_nl => "",
139
158
  :ascii_only => false,
159
+ :quirks_mode => false,
140
160
  :depth => 0,
141
161
  :indent => "",
142
162
  :max_nesting => 0,
@@ -177,4 +197,17 @@ EOT
177
197
  assert_raises(JSON::NestingError) { ary.to_json(s) }
178
198
  assert_equal 19, s.depth
179
199
  end
200
+
201
+ def test_gc
202
+ bignum_too_long_to_embed_as_string = 1234567890123456789012345
203
+ expect = bignum_too_long_to_embed_as_string.to_s
204
+ stress, GC.stress = GC.stress, true
205
+
206
+ 10.times do |i|
207
+ tmp = bignum_too_long_to_embed_as_string.to_json
208
+ assert_equal expect, tmp
209
+ end
210
+ ensure
211
+ GC.stress = stress
212
+ end if GC.respond_to?(:stress=)
180
213
  end
@@ -120,7 +120,7 @@ loop do
120
120
  if $DEBUG
121
121
  puts "-" * 80
122
122
  puts json, json.size
123
- else
123
+ else
124
124
  puts json.size
125
125
  end
126
126
  begin
metadata CHANGED
@@ -1,61 +1,60 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: json
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.5.4
4
5
  prerelease:
5
- version: 1.5.3
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Florian Frank
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-20 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-08-31 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: permutation
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2157055580 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :development
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: bullshit
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2157055580
25
+ - !ruby/object:Gem::Dependency
26
+ name: bullshit
27
+ requirement: &2157055140 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: sdoc
39
34
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2157055140
36
+ - !ruby/object:Gem::Dependency
37
+ name: sdoc
38
+ requirement: &2157054720 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
46
44
  type: :development
47
- version_requirements: *id003
45
+ prerelease: false
46
+ version_requirements: *2157054720
48
47
  description: This is a JSON implementation as a Ruby extension in C.
49
48
  email: flori@ping.de
50
- executables:
49
+ executables:
51
50
  - edit_json.rb
52
51
  - prettify_json.rb
53
- extensions:
52
+ extensions:
54
53
  - ext/json/ext/parser/extconf.rb
55
54
  - ext/json/ext/generator/extconf.rb
56
- extra_rdoc_files:
55
+ extra_rdoc_files:
57
56
  - README.rdoc
58
- files:
57
+ files:
59
58
  - tests/test_json_string_matching.rb
60
59
  - tests/test_json_fixtures.rb
61
60
  - tests/setup_variant.rb
@@ -139,8 +138,9 @@ files:
139
138
  - lib/json/TrueClass.xpm
140
139
  - lib/json/version.rb
141
140
  - lib/json/Array.xpm
141
+ - lib/json/add/complex.rb
142
+ - lib/json/add/rational.rb
142
143
  - lib/json/add/core.rb
143
- - lib/json/add/rails.rb
144
144
  - lib/json/common.rb
145
145
  - lib/json/pure/generator.rb
146
146
  - lib/json/pure/parser.rb
@@ -203,37 +203,35 @@ files:
203
203
  - ./tests/test_json.rb
204
204
  homepage: http://flori.github.com/json
205
205
  licenses: []
206
-
207
206
  post_install_message:
208
- rdoc_options:
207
+ rdoc_options:
209
208
  - --title
210
209
  - JSON implemention for Ruby
211
210
  - --main
212
211
  - README.rdoc
213
- require_paths:
212
+ require_paths:
214
213
  - ext/json/ext
215
214
  - ext
216
215
  - lib
217
- required_ruby_version: !ruby/object:Gem::Requirement
216
+ required_ruby_version: !ruby/object:Gem::Requirement
218
217
  none: false
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: "0"
223
- required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ required_rubygems_version: !ruby/object:Gem::Requirement
224
223
  none: false
225
- requirements:
226
- - - ">="
227
- - !ruby/object:Gem::Version
228
- version: "0"
224
+ requirements:
225
+ - - ! '>='
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
229
228
  requirements: []
230
-
231
229
  rubyforge_project: json
232
- rubygems_version: 1.8.5
230
+ rubygems_version: 1.8.10
233
231
  signing_key:
234
232
  specification_version: 3
235
233
  summary: JSON Implementation for Ruby
236
- test_files:
234
+ test_files:
237
235
  - ./tests/test_json_string_matching.rb
238
236
  - ./tests/test_json_fixtures.rb
239
237
  - ./tests/test_json_unicode.rb
@@ -1,8 +0,0 @@
1
- # This file used to implementations of rails custom objects for
2
- # serialisation/deserialisation and is obsoleted now.
3
-
4
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
5
- require 'json'
6
- end
7
-
8
- $DEBUG and warn "required json/add/rails which is obsolete now!"