oj 2.17.3 → 2.17.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ $VERBOSE = true
5
+
6
+ %w(lib ext test).each do |dir|
7
+ $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
8
+ end
9
+
10
+ require 'rubygems' if RUBY_VERSION.start_with?('1.8.')
11
+
12
+ #require "minitest/spec"
13
+ require "minitest/autorun"
14
+
15
+ require "oj"
16
+
17
+ # Uncomment this line and test_big_decimal will fail
18
+ require "active_support/json"
19
+
20
+ # With ActiveSupport 4.0, neither of these settings affect BigDecimal#to_json,
21
+ # only BigDecimal#as_json
22
+ #
23
+ # ActiveSupport.encode_big_decimal_as_string = false
24
+ # ActiveSupport::JSON::Encoding.encode_big_decimal_as_string = false
25
+
26
+ describe Oj do
27
+
28
+ # Options set by default in Rails 4.0 / Rabl
29
+ def options
30
+ {
31
+ :bigdecimal_as_decimal=>true, # default = true
32
+ :use_to_json=>true, # default = false
33
+ :mode=>:compat, # default = object
34
+ :time_format=>:ruby, # default = unix
35
+ }
36
+ end
37
+
38
+ def test_big_decimal
39
+ orig = BigDecimal.new("3.14159265359")
40
+ puts "*** to_s: #{orig.to_s}"
41
+ puts "*** to_json: #{orig.to_json}"
42
+ puts "*** JSON.dump: #{JSON.dump(orig)}"
43
+ json = Oj.dump(orig, options)
44
+ puts "*** json: #{json}"
45
+
46
+ value = Oj.load(json)
47
+ puts "*** value: #{value.class}"
48
+ assert_equal(value, orig)
49
+
50
+ # by default, without active support
51
+ # assert_equal("0.314159265359E1", json)
52
+ # in Rails 4.1, with active support
53
+ # assert_equal("3.14159265359", json)
54
+ end
55
+
56
+ # Floats are unaffected
57
+ def test_float
58
+ orig = 3.14159265359
59
+ json = Oj.dump(orig, options)
60
+ assert_equal("3.14159265359", json)
61
+ end
62
+
63
+ end
@@ -1,16 +1,19 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: UTF-8
3
3
 
4
+ $VERBOSE = true
5
+
4
6
  %w(lib ext test).each do |dir|
5
7
  $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
6
8
  end
7
9
 
10
+ require 'rubygems' if RUBY_VERSION.start_with?('1.8.')
8
11
  require 'oj'
9
12
 
13
+ Oj.mimic_JSON
14
+
15
+ #puts Oj.default_options
16
+
17
+ range = ("01".."12")
10
18
 
11
- Thread.new do
12
- string_io = StringIO.new('{"foo":"bar"}')
13
- Oj.load(string_io)
14
- string_io.rewind
15
- puts string_io.read
16
- end.join
19
+ puts Oj.dump(range)
@@ -297,7 +297,7 @@ class Juice < Minitest::Test
297
297
  # validate that an invalid unicode raises unless the :allow_invalid_unicode is true
298
298
  json = %{"x\\ud83dy"}
299
299
  begin
300
- obj = Oj.load(json)
300
+ Oj.load(json)
301
301
  rescue Exception
302
302
  assert(true)
303
303
  return
metadata CHANGED
@@ -1,58 +1,65 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oj
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.17.3
4
+ version: 2.17.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Peter Ohler
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2016-08-16 00:00:00.000000000 Z
12
+ date: 2016-09-04 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rake-compiler
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - "~>"
19
+ - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0.9'
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - "~>"
27
+ - - ~>
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0.9'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: minitest
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - "~>"
35
+ - - ~>
32
36
  - !ruby/object:Gem::Version
33
37
  version: '5'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - "~>"
43
+ - - ~>
39
44
  - !ruby/object:Gem::Version
40
45
  version: '5'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rails
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - "~>"
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
53
  version: '4'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - "~>"
59
+ - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '4'
55
- description: 'The fastest JSON parser and object serializer. '
62
+ description: ! 'The fastest JSON parser and object serializer. '
56
63
  email: peter@ohler.com
57
64
  executables: []
58
65
  extensions:
@@ -60,63 +67,55 @@ extensions:
60
67
  extra_rdoc_files:
61
68
  - README.md
62
69
  files:
63
- - LICENSE
64
- - README.md
70
+ - lib/oj/active_support_helper.rb
71
+ - lib/oj/bag.rb
72
+ - lib/oj/easy_hash.rb
73
+ - lib/oj/error.rb
74
+ - lib/oj/mimic.rb
75
+ - lib/oj/saj.rb
76
+ - lib/oj/schandler.rb
77
+ - lib/oj/version.rb
78
+ - lib/oj.rb
79
+ - ext/oj/extconf.rb
65
80
  - ext/oj/buf.h
66
- - ext/oj/cache8.c
67
81
  - ext/oj/cache8.h
68
- - ext/oj/circarray.c
69
82
  - ext/oj/circarray.h
83
+ - ext/oj/encode.h
84
+ - ext/oj/err.h
85
+ - ext/oj/hash.h
86
+ - ext/oj/odd.h
87
+ - ext/oj/oj.h
88
+ - ext/oj/parse.h
89
+ - ext/oj/reader.h
90
+ - ext/oj/resolve.h
91
+ - ext/oj/val_stack.h
92
+ - ext/oj/cache8.c
93
+ - ext/oj/circarray.c
70
94
  - ext/oj/compat.c
71
95
  - ext/oj/dump.c
72
- - ext/oj/encode.h
73
96
  - ext/oj/err.c
74
- - ext/oj/err.h
75
- - ext/oj/extconf.rb
76
97
  - ext/oj/fast.c
77
98
  - ext/oj/hash.c
78
- - ext/oj/hash.h
79
99
  - ext/oj/hash_test.c
80
100
  - ext/oj/object.c
81
101
  - ext/oj/odd.c
82
- - ext/oj/odd.h
83
102
  - ext/oj/oj.c
84
- - ext/oj/oj.h
85
103
  - ext/oj/parse.c
86
- - ext/oj/parse.h
87
104
  - ext/oj/reader.c
88
- - ext/oj/reader.h
89
105
  - ext/oj/resolve.c
90
- - ext/oj/resolve.h
91
106
  - ext/oj/saj.c
92
107
  - ext/oj/scp.c
93
108
  - ext/oj/sparse.c
94
109
  - ext/oj/strict.c
95
110
  - ext/oj/val_stack.c
96
- - ext/oj/val_stack.h
97
- - lib/oj.rb
98
- - lib/oj/active_support_helper.rb
99
- - lib/oj/bag.rb
100
- - lib/oj/easy_hash.rb
101
- - lib/oj/error.rb
102
- - lib/oj/mimic.rb
103
- - lib/oj/saj.rb
104
- - lib/oj/schandler.rb
105
- - lib/oj/version.rb
106
111
  - test/_test_active.rb
107
112
  - test/_test_active_mimic.rb
108
113
  - test/_test_mimic_rails.rb
114
+ - test/aaa.rb
109
115
  - test/activesupport_datetime_test.rb
110
116
  - test/bug.rb
111
- - test/bug2.rb
112
- - test/bug3.rb
113
- - test/bug_fast.rb
114
- - test/bug_load.rb
115
- - test/crash.rb
116
- - test/example.rb
117
117
  - test/files.rb
118
118
  - test/helper.rb
119
- - test/io.rb
120
119
  - test/isolated/shared.rb
121
120
  - test/isolated/test_mimic_after.rb
122
121
  - test/isolated/test_mimic_alone.rb
@@ -125,19 +124,19 @@ files:
125
124
  - test/isolated/test_mimic_define.rb
126
125
  - test/isolated/test_mimic_rails_after.rb
127
126
  - test/isolated/test_mimic_rails_before.rb
128
- - test/isolated/test_mimic_rails_datetime.rb
129
- - test/mod.rb
127
+ - test/pact.rb
130
128
  - test/perf.rb
129
+ - test/perf1.rb
130
+ - test/perf2.rb
131
131
  - test/perf_compat.rb
132
132
  - test/perf_fast.rb
133
133
  - test/perf_file.rb
134
+ - test/perf_obj_old.rb
134
135
  - test/perf_object.rb
135
136
  - test/perf_saj.rb
136
137
  - test/perf_scp.rb
137
138
  - test/perf_simple.rb
138
139
  - test/perf_strict.rb
139
- - test/russian.rb
140
- - test/sample.rb
141
140
  - test/sample/change.rb
142
141
  - test/sample/dir.rb
143
142
  - test/sample/doc.rb
@@ -150,8 +149,9 @@ files:
150
149
  - test/sample/rect.rb
151
150
  - test/sample/shape.rb
152
151
  - test/sample/text.rb
152
+ - test/sample.rb
153
153
  - test/sample_json.rb
154
- - test/struct.rb
154
+ - test/test_bigd.rb
155
155
  - test/test_compat.rb
156
156
  - test/test_debian.rb
157
157
  - test/test_fast.rb
@@ -159,54 +159,50 @@ files:
159
159
  - test/test_gc.rb
160
160
  - test/test_hash.rb
161
161
  - test/test_object.rb
162
+ - test/test_range.rb
162
163
  - test/test_saj.rb
163
164
  - test/test_scp.rb
164
- - test/test_serializer.rb
165
165
  - test/test_strict.rb
166
166
  - test/test_various.rb
167
167
  - test/test_writer.rb
168
- - test/write_timebars.rb
168
+ - LICENSE
169
+ - README.md
169
170
  homepage: http://www.ohler.com/oj
170
171
  licenses:
171
172
  - MIT
172
- metadata: {}
173
173
  post_install_message:
174
174
  rdoc_options:
175
- - "--main"
175
+ - --main
176
176
  - README.md
177
177
  require_paths:
178
178
  - lib
179
179
  required_ruby_version: !ruby/object:Gem::Requirement
180
+ none: false
180
181
  requirements:
181
- - - ">="
182
+ - - ! '>='
182
183
  - !ruby/object:Gem::Version
183
184
  version: '0'
184
185
  required_rubygems_version: !ruby/object:Gem::Requirement
186
+ none: false
185
187
  requirements:
186
- - - ">="
188
+ - - ! '>='
187
189
  - !ruby/object:Gem::Version
188
190
  version: '0'
189
191
  requirements: []
190
192
  rubyforge_project: oj
191
- rubygems_version: 2.4.5
193
+ rubygems_version: 1.8.23.2
192
194
  signing_key:
193
- specification_version: 4
195
+ specification_version: 3
194
196
  summary: A fast JSON parser and serializer.
195
197
  test_files:
196
198
  - test/_test_active.rb
197
199
  - test/_test_active_mimic.rb
198
200
  - test/_test_mimic_rails.rb
201
+ - test/aaa.rb
199
202
  - test/activesupport_datetime_test.rb
200
203
  - test/bug.rb
201
- - test/bug2.rb
202
- - test/bug3.rb
203
- - test/bug_fast.rb
204
- - test/bug_load.rb
205
- - test/crash.rb
206
- - test/example.rb
207
204
  - test/files.rb
208
205
  - test/helper.rb
209
- - test/io.rb
210
206
  - test/isolated/shared.rb
211
207
  - test/isolated/test_mimic_after.rb
212
208
  - test/isolated/test_mimic_alone.rb
@@ -215,18 +211,19 @@ test_files:
215
211
  - test/isolated/test_mimic_define.rb
216
212
  - test/isolated/test_mimic_rails_after.rb
217
213
  - test/isolated/test_mimic_rails_before.rb
218
- - test/isolated/test_mimic_rails_datetime.rb
219
- - test/mod.rb
214
+ - test/pact.rb
220
215
  - test/perf.rb
216
+ - test/perf1.rb
217
+ - test/perf2.rb
221
218
  - test/perf_compat.rb
222
219
  - test/perf_fast.rb
223
220
  - test/perf_file.rb
221
+ - test/perf_obj_old.rb
224
222
  - test/perf_object.rb
225
223
  - test/perf_saj.rb
226
224
  - test/perf_scp.rb
227
225
  - test/perf_simple.rb
228
226
  - test/perf_strict.rb
229
- - test/russian.rb
230
227
  - test/sample/change.rb
231
228
  - test/sample/dir.rb
232
229
  - test/sample/doc.rb
@@ -241,7 +238,7 @@ test_files:
241
238
  - test/sample/text.rb
242
239
  - test/sample.rb
243
240
  - test/sample_json.rb
244
- - test/struct.rb
241
+ - test/test_bigd.rb
245
242
  - test/test_compat.rb
246
243
  - test/test_debian.rb
247
244
  - test/test_fast.rb
@@ -249,11 +246,9 @@ test_files:
249
246
  - test/test_gc.rb
250
247
  - test/test_hash.rb
251
248
  - test/test_object.rb
249
+ - test/test_range.rb
252
250
  - test/test_saj.rb
253
251
  - test/test_scp.rb
254
- - test/test_serializer.rb
255
252
  - test/test_strict.rb
256
253
  - test/test_various.rb
257
254
  - test/test_writer.rb
258
- - test/write_timebars.rb
259
- has_rdoc: true
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: e6db88500e6a8f5b5243b53140952b8956fdad9b
4
- data.tar.gz: bd67bf4dd52102f84c728f9349a57a79f28cacd8
5
- SHA512:
6
- metadata.gz: a85842674b8da8c33f9526c14a675535da412be6f52ad136f6ba48fad5cadf99ec5810ebc076fbf2e27dbda4758b5432dc697a11cdcbff5d7955482dfea92f9c
7
- data.tar.gz: d5e3c117f7cea742867e06ca02fdcef961ff6b14c58d9b21979d4df556b780d052bb6de5695ecf9b11d2084091102e752553390bb31d666d6205f39708f52b0b
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #!/usr/bin/env ruby
4
- # encoding: UTF-8
5
-
6
- $: << File.dirname(__FILE__)
7
-
8
- require 'helper'
9
-
10
-
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #!/usr/bin/env ruby
4
- # encoding: UTF-8
5
-
6
- $: << File.dirname(__FILE__)
7
- %w(lib ext test).each do |dir|
8
- $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
9
- end
10
-
11
- require 'oj'
12
- require 'stringio'
13
-
14
- class Parser < Oj::Saj
15
-
16
- def parse(json)
17
- Oj.saj_parse(self, StringIO.new(json))
18
- end
19
-
20
- def hash_start(key)
21
- puts "START: #{key}"
22
- end
23
-
24
- def error(message, line, column)
25
- puts "Error callback: #{message}"
26
- end
27
-
28
- end
29
-
30
- parser = Parser.new
31
-
32
- begin
33
- # truncated JSON, Oj.saj_parse raises, #error not called
34
- parser.parse('{"foo{"bar":')
35
- rescue Exception => e
36
- puts "*** #{e.class}: #{e.message}"
37
- end
38
-
39
- puts "\n\n"
40
-
41
- begin
42
- # invalid JSON, doesn't raise an error
43
- parser.parse('{"foo":{"bar":}')
44
- rescue Exception => e
45
- puts "*** #{e.class}: #{e.message}"
46
- end