neatjson 0.6.1 → 0.6.2

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
  SHA1:
3
- metadata.gz: 25e68572d39dc687907b501288dee898cd91b0fe
4
- data.tar.gz: 945e91700e9d4a0494efa3bf21f38a257580bcdb
3
+ metadata.gz: 600101c05a890e9aaf85cee5981faf1e8766fe00
4
+ data.tar.gz: 7e930b2089416b74b216e8ef16d19403f60abfff
5
5
  SHA512:
6
- metadata.gz: 7eabc205eb0b9f291ff8d06d717b38c06abbaa43030811e09bd080db2fe5adb7c2e76df76f33e36c5db30b4c6cbb63fdb8cd5b59c1c59c8bcbf159a6b8d3e338
7
- data.tar.gz: 642c88a6ca834738c8f095e3c17ede54570d07785f79a2a5c5e6a295a205e1580174a23ba724f6ddd41c62c392e6cff99198fcfc7e8d73173e03558cc3e139cf
6
+ metadata.gz: a52b419bcd49ea08a13562ba167f9a087fe498f5ca7bbd5804be7ea8a1d02f6880f4f3da8b2a1732ec0211014d8acae32b2238101314be5b7275d0c8022eb820
7
+ data.tar.gz: 898b7829d5f7ef031821dedde48f50cdb5364228de69d8406fe315b1aec5b88cab4df21f4ef489d6af6ae93c7d0d8fe0ec1f3b6ae8cdfa9ad8c544b524c07ee7
@@ -50,8 +50,9 @@ module JSON
50
50
  colon1= "#{' '*opts[:before_colon_1]}:#{' '*opts[:after_colon_1]}"
51
51
  colonn= "#{' '*opts[:before_colon_n]}:#{' '*opts[:after_colon_n]}"
52
52
 
53
+ memoizer = {}
53
54
  build = ->(o,indent) do
54
- case o
55
+ memoizer[[o,indent]] ||= case o
55
56
  when String,Integer then "#{indent}#{o.inspect}"
56
57
  when Symbol then "#{indent}#{o.to_s.inspect}"
57
58
  when TrueClass,FalseClass then "#{indent}#{o}"
@@ -2,7 +2,7 @@
2
2
  require 'date'
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "neatjson"
5
- s.version = "0.6.1"
5
+ s.version = "0.6.2"
6
6
  s.date = Date.today.iso8601
7
7
  s.authors = ["Gavin Kistner"]
8
8
  s.email = "gavin@phrogz.net"
@@ -145,6 +145,12 @@ exports.tests = [
145
145
 
146
146
  {value:["foo",[{},[{"foo":[]},42]],"bar"], tests:[
147
147
  { json:'["foo",\n [{},\n [{"foo":[]},\n 42]],\n "bar"]', opts:{wrap:1, short:true} },
148
+ ]},
149
+
150
+ {value:{a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{l:{m:1}}}}}}}}}}}}}, tests:[
151
+ { json:'{"a":{"b":{"c":{"d":{"e":{"f":{"g":{"h":{"i":{"j":{"k":{"l":{"m":1}}}}}}}}}}}}}', opts:{wrap:false} },
152
+ { json:'{"a":{"b":{"c":{"d":{"e":{"f":{"g":{"h":{"i":{"j":{"k":{"l":{"m":1}}}}}}}}}}}}}', opts:{wrap:1,short:true} },
153
+ { json:"{\n \"a\":{\n \"b\":{\n \"c\":{\n \"d\":{\n \"e\":{\n \"f\":{\n \"g\":{\n \"h\":{\n \"i\":{\n \"j\":{\n \"k\":{\n \"l\":{\n \"m\":1\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}", opts:{wrap:1} },
148
154
  ]}
149
155
 
150
156
  // {value:Class.new{ def to_json(*a); {a:1}.to_json(*a); end }.new, tests:[
@@ -154,7 +154,12 @@ TESTS = [
154
154
  {value:Class.new{ def to_json(*a); JSON.neat_generate({a:1},*a); end }.new, tests:[
155
155
  { json:'{"a":1}' },
156
156
  { json:"{\n \"a\":1\n}", opts:{wrap:true} }
157
- ]}
157
+ ]},
158
158
 
159
+ {value:{a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{l:{m:1}}}}}}}}}}}}}, tests:[
160
+ { json:'{"a":{"b":{"c":{"d":{"e":{"f":{"g":{"h":{"i":{"j":{"k":{"l":{"m":1}}}}}}}}}}}}}', opts:{wrap:false} },
161
+ { json:'{"a":{"b":{"c":{"d":{"e":{"f":{"g":{"h":{"i":{"j":{"k":{"l":{"m":1}}}}}}}}}}}}}', opts:{wrap:1,short:true} },
162
+ { json:"{\n \"a\":{\n \"b\":{\n \"c\":{\n \"d\":{\n \"e\":{\n \"f\":{\n \"g\":{\n \"h\":{\n \"i\":{\n \"j\":{\n \"k\":{\n \"l\":{\n \"m\":1\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}", opts:{wrap:1} },
163
+ ]}
159
164
  ]
160
165
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neatjson
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Kistner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-12 00:00:00.000000000 Z
11
+ date: 2016-02-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 'Generate JSON strings from Ruby objects with flexible formatting options.
14
14
  Key features: keep arrays and objects on a single line when they fit; format floats