rusty_json 1.1.0 → 1.2.0

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: 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