rusty_json 1.2.0 → 1.2.1

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: c49a5182155d7545c422ea591c173797cc9f53ab
4
- data.tar.gz: bda3805e8dd9dd57af0c4e78dad6219b459fa620
3
+ metadata.gz: 586d28acc06307f6920e376bcae55b025ce42021
4
+ data.tar.gz: 6851dd830392776b050b8c14730267a5518e1066
5
5
  SHA512:
6
- metadata.gz: bffdf0b482c56c02e3a0a577042a5382b95f438013f55f75b3ecea20dc3d4e9bdf848957c324d650caf123a9707db104dee06c379af5544c08da3d4673b90070
7
- data.tar.gz: 5ec2b7f4d32dd95dc5e542572c783bc259d3b2a276705872f2c5098fc709f0bf8090b38d8afddc861cf90b532336cdc061315d3f95c46b0c1f712ea884a589a2
6
+ metadata.gz: 40753f7dd3e28fec338b956250501a9bced6d0b60cced4ae1130328087725fd8ed6620e51a8b7298492a1c9b76a6cc1a587b8b67febb53e39ed675f3e1285338
7
+ data.tar.gz: a3810f86f425c2b341527a5f061bbe513ba846f28c22494f1d29b383332dcb1ee5849a03ece019f7edf7a42c76bb88fe842388c4fddb90165ea827f26730a412
@@ -18,9 +18,8 @@ module RustyJson
18
18
 
19
19
  def parse
20
20
  @parsed = JSON.parse(@json)
21
- struct = RustStruct.new(@name, true)
22
21
  if @parsed.is_a? Hash
23
- struct = parse_hash(@parsed, struct)
22
+ struct = parse_hash(@name, @parsed)
24
23
  end
25
24
  struct.to_s
26
25
  end
@@ -39,20 +38,22 @@ module RustyJson
39
38
  end
40
39
  end
41
40
 
41
+ def possible_new_struct(s)
42
+ match = @structs.find{|st| s == st}
43
+ s = match || s
44
+ if match.nil?
45
+ @structs << s
46
+ end
47
+ s
48
+ end
49
+
42
50
  def parse_parts(name, values, struct)
43
51
  if values.is_a? Array
44
52
  struct = parse_array(name, values, struct)
45
53
  elsif values.is_a? Hash
46
54
  n = parse_name(name.split('_').collect(&:capitalize).join)
47
55
  @struct_names << n
48
- s = RustStruct.new(n)
49
- s = parse_hash(values, s)
50
- match = @structs.find{|st| s == st}
51
- s = match || s
52
- if match.nil?
53
- @struct_names << n
54
- @structs << s
55
- end
56
+ s = possible_new_struct( parse_hash(n, values) )
56
57
  struct.add_value(name, s)
57
58
  else
58
59
  struct = parse_value(name, values, struct)
@@ -60,7 +61,9 @@ module RustyJson
60
61
  struct
61
62
  end
62
63
 
63
- def parse_hash(hash, struct)
64
+ def parse_hash(n, hash)
65
+ struct = RustStruct.new(n)
66
+ @struct_names << n
64
67
  hash.each do |name, values|
65
68
  struct = parse_parts(name, values, struct)
66
69
  end
@@ -1,3 +1,3 @@
1
1
  module RustyJson
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rusty_json
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris MacNaughton