rusty_json 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2144aa6c5054069d1f941651e994d43a5b464df5
4
- data.tar.gz: 38e1c86e62c3483d5b1728ff7c6dd25e3cce4939
3
+ metadata.gz: c49a5182155d7545c422ea591c173797cc9f53ab
4
+ data.tar.gz: bda3805e8dd9dd57af0c4e78dad6219b459fa620
5
5
  SHA512:
6
- metadata.gz: 1d2bef7ba8b83355d15061b97e9f93c0d0561dd325d5ba54963491f68295ef06bf91679bff9772f12f30070e5cd9bdc81db1386e232c4f472042af401a44f573
7
- data.tar.gz: d11cf157e574365a92a01acb1fc3d723e4aeef9cab59b3f70510868e079ccab544c1d4364de096cb6ef22e903578ee5b45fc2151563f6a69acc5af52a9f5d62f
6
+ metadata.gz: bffdf0b482c56c02e3a0a577042a5382b95f438013f55f75b3ecea20dc3d4e9bdf848957c324d650caf123a9707db104dee06c379af5544c08da3d4673b90070
7
+ data.tar.gz: 5ec2b7f4d32dd95dc5e542572c783bc259d3b2a276705872f2c5098fc709f0bf8090b38d8afddc861cf90b532336cdc061315d3f95c46b0c1f712ea884a589a2
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
+ cache: bundler
2
3
  rvm:
3
4
  - 2.0.0
4
5
  - 2.1.7
@@ -18,7 +18,7 @@ module RustyJson
18
18
 
19
19
  def parse
20
20
  @parsed = JSON.parse(@json)
21
- struct = RustStruct.new(@name)
21
+ struct = RustStruct.new(@name, true)
22
22
  if @parsed.is_a? Hash
23
23
  struct = parse_hash(@parsed, struct)
24
24
  end
@@ -27,22 +27,23 @@ module RustyJson
27
27
 
28
28
  private
29
29
 
30
+ def parse_name(n)
31
+ if @struct_names.include? n
32
+ i = 2
33
+ while @struct_names.include? "#{n}_#{i}"
34
+ i += 1
35
+ end
36
+ "#{n}_#{i}"
37
+ else
38
+ n
39
+ end
40
+ end
41
+
30
42
  def parse_parts(name, values, struct)
31
43
  if values.is_a? Array
32
44
  struct = parse_array(name, values, struct)
33
45
  elsif values.is_a? Hash
34
- n = name.split('_').collect(&:capitalize).join
35
- # binding.pry if n.include? 'Key'
36
- n = if @struct_names.include? n
37
- parts = n.split('_')
38
- if parts.count > 1
39
- "#{parts[0]}_#{parts[1].to_i + 1}"
40
- else
41
- n + "_2"
42
- end
43
- else
44
- n
45
- end
46
+ n = parse_name(name.split('_').collect(&:capitalize).join)
46
47
  @struct_names << n
47
48
  s = RustStruct.new(n)
48
49
  s = parse_hash(values, s)
@@ -9,7 +9,8 @@ module RustyJson
9
9
  Array => 'Vec',
10
10
  }
11
11
 
12
- def initialize(name)
12
+ def initialize(name, root = false)
13
+ @root = root
13
14
  @printed = false
14
15
  @name = name
15
16
  @values = {}
@@ -18,6 +19,9 @@ module RustyJson
18
19
 
19
20
  def reset
20
21
  @printed = false
22
+ @structs.each do |s|
23
+ s.reset
24
+ end
21
25
  end
22
26
 
23
27
  def add_value(name, type, subtype = nil)
@@ -71,6 +75,10 @@ struct #{@name} {
71
75
  struct << <<-RUST
72
76
  }
73
77
  RUST
78
+ if @root
79
+ reset
80
+ end
81
+ struct
74
82
  end
75
83
 
76
84
  private
@@ -1,3 +1,3 @@
1
1
  module RustyJson
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
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.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris MacNaughton