oj 3.6.11 → 3.6.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cef33c35dc056f48604161c781e420fcd13b54e2f674aa3f9722e1c8bc25cfc2
4
- data.tar.gz: 96425922ddda704b173f52fae3c897f1574b373784bf5cb5be18d8223f03bef0
3
+ metadata.gz: 3517ed09e956844a399f8986027f8990949bb7702c9e88a5b4fa4f2fc9d4eb07
4
+ data.tar.gz: 16292809c8dced3cfd7dd6cfb110d85c88256d74c08586e4c436f92cab8888dc
5
5
  SHA512:
6
- metadata.gz: b18e9dbf9b3fb6082210470e560384b1fe5547e35e615fc8717c23342d003ce2923de22d263ae37e708c080ba0d92f75d3be374d7197a49ec79ab619e677cdbe
7
- data.tar.gz: bb9c2884eff2f1e841b6a31339b2e19f92680309ea7042bb7b44bb6a31a4ba5f963106099ce2bb58e9705ec25d60dbe82149c009b830133e6569aa78745bfd3a
6
+ metadata.gz: bc24329317395830e448ec06373ff27458c33612ce6fec0b4a79515c63f43164afb82a093cdbae7a6d6244885f2df16da0fba449c63b283af814769b4ed78147
7
+ data.tar.gz: 10ff64b0f48d1962c26f213e92456de839b65ab595c2925890a1eabd590160be355674bde197e0d65f4de4e1c9d246c1ce1c12f1adedc3c2aca967b3fd339390
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # [![{}j](http://www.ohler.com/dev/images/oj_comet_64.svg)](http://www.ohler.com/oj) gem
2
2
 
3
- [![Build Status](https://img.shields.io/travis/ohler55/oj/master.svg)](http://travis-ci.org/ohler55/oj?branch=master) [![AppVeyor](https://img.shields.io/appveyor/ci/ohler55/oj/master.svg)](https://ci.appveyor.com/project/ohler55/oj) ![Gem](https://img.shields.io/gem/v/oj.svg) ![Gem](https://img.shields.io/gem/dt/oj.svg) [![SemVer compatibility](https://api.dependabot.com/badges/compatibility_score?dependency-name=oj&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=oj&package-manager=bundler&version-scheme=semver)
3
+ [![Build Status](https://img.shields.io/travis/ohler55/oj/master.svg)](http://travis-ci.org/ohler55/oj?branch=master) [![AppVeyor](https://img.shields.io/appveyor/ci/ohler55/oj/master.svg)](https://ci.appveyor.com/project/ohler55/oj) ![Gem](https://img.shields.io/gem/v/oj.svg) ![Gem](https://img.shields.io/gem/dt/oj.svg) [![SemVer compatibility](https://api.dependabot.com/badges/compatibility_score?dependency-name=oj&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=oj&package-manager=bundler&version-scheme=semver) [![TideLift](https://tidelift.com/badges/github/ohler55/oj)](https://tidelift.com/subscription/pkg/rubygems-oj?utm_source=rubygems-oj&utm_medium=referral&utm_campaign=readme)
4
4
 
5
5
  A *fast* JSON parser and Object marshaller as a Ruby gem.
6
6
 
@@ -40,6 +40,10 @@ or in Bundler:
40
40
  gem 'oj'
41
41
  ```
42
42
 
43
+ ## Support
44
+
45
+ [Get supported Oj with a Tidelift Subscription.](https://tidelift.com/subscription/pkg/rubygems-oj?utm_source=rubygems-oj&utm_medium=referral&utm_campaign=readme)
46
+
43
47
  ## Further Reading
44
48
 
45
49
  For more details on options, modes, advanced features, and more follow these
@@ -66,6 +66,7 @@ oj_str_writer_init(StrWriter sw, int buf_size) {
66
66
  sw->out.allocated = true;
67
67
  sw->out.cur = sw->out.buf;
68
68
  *sw->out.cur = '\0';
69
+ sw->out.circ_cache = NULL;
69
70
  sw->out.circ_cnt = 0;
70
71
  sw->out.hash_cnt = 0;
71
72
  sw->out.opts = &sw->opts;
@@ -75,6 +76,7 @@ oj_str_writer_init(StrWriter sw, int buf_size) {
75
76
  sw->out.argv = NULL;
76
77
  sw->out.caller = 0;
77
78
  sw->out.ropts = NULL;
79
+ sw->out.omit_nil = oj_default_options.dump_opts.omit_nil;
78
80
  }
79
81
 
80
82
  void
@@ -1,5 +1,5 @@
1
1
 
2
2
  module Oj
3
3
  # Current version of the module.
4
- VERSION = '3.6.11'
4
+ VERSION = '3.6.12'
5
5
  end
@@ -6,53 +6,12 @@ $: << '../ext'
6
6
 
7
7
  require 'oj'
8
8
 
9
- Oj.default_options = {mode: :strict}
10
- json = Oj.dump({ aggregations: { hashtags: { buckets: Array.new(100) { { key: 'foo', count: 100 } } } } }, mode: :strict)
9
+ 10.times {
10
+ io = StringIO.new
11
+ w = Oj::StreamWriter.new(io)
12
+ w.push_array
13
+ child = {"id"=>"1", "name"=>"foo", "nilElement"=>nil}
14
+ w.push_value(child)
15
+ puts io.string
16
+ }
11
17
 
12
- def expect(a,b)
13
- puts "*** #{a} != #{b}" unless a == b
14
- end
15
-
16
- def dig(obj, *path)
17
- return obj if path.empty?
18
-
19
- if obj.is_a?(Array)
20
- obj.each { |v|
21
- r = dig(v, *path)
22
- return r unless r.nil?
23
- }
24
- end
25
- return nil unless obj.is_a?(Hash)
26
-
27
- dig(obj[path[0]], *path[1..-1])
28
- end
29
-
30
- 1000.times do |i|
31
- Oj::Doc.open(json) do |doc|
32
- # this always passes
33
- doc.each_child('/aggregations/hashtags/buckets') do |bucket|
34
- expect(bucket.fetch('key'), 'foo')
35
- expect(bucket.fetch('count'), 100)
36
- end
37
-
38
- # load any other json using Oj.load
39
- # this will pass
40
- other = Oj.load(json)
41
- dig(other, 'aggregations', 'hashtags', 'buckets').each do |bucket|
42
- expect(bucket.fetch('key'), 'foo')
43
- expect(bucket.fetch('count'), 100)
44
- end
45
- GC.start
46
- doc.each_child('/aggregations/hashtags/buckets') do |bucket|
47
- # This is where it fails!!!! It will be some other object (even an rspec matcher in some cases)
48
- expect(bucket.fetch('key'), 'foo')
49
- expect(bucket.fetch('count'), 100)
50
- end
51
-
52
- # this always passes if it gets this far
53
- dig(other, 'aggregations', 'hashtags', 'buckets').each do |bucket|
54
- expect(bucket.fetch('key'), 'foo')
55
- expect(bucket.fetch('count'), 100)
56
- end
57
- end
58
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oj
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.11
4
+ version: 3.6.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Ohler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-26 00:00:00.000000000 Z
11
+ date: 2018-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler