vulcano 0.3.0 → 0.4.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: 858726c7fc12dd257149ed09ddf7049e95a10d4c
4
- data.tar.gz: 4fdd4db01089e306b8bb8ff55ed41ed5001a0515
3
+ metadata.gz: d074ee092ad90a619c4c40d993fc5f0faaa53fad
4
+ data.tar.gz: 619b9991bafb8c11005899bbefdfa93dcadf409d
5
5
  SHA512:
6
- metadata.gz: 11b50ccf689d7b99fec91cbd61806429a44b69892d8d4886836ddd6817f5a893dffdf9807f4b910854535f5c409727d7ed39029157f95dfefb3e625b9ce067ef
7
- data.tar.gz: f51e33bd72afcfaa0557d91b55b183a878ed7f63f74097592449802c48cba86a648a197b33dbfc3f14e7917096e127deaaf0cbaf7475ea890dd16415652f75d7
6
+ metadata.gz: fbe5a455f9fb078e2e9c5a94ccac5f672d246d4c57d46eb265d2015720cc611acb43a9b04e253e2f6ccb7cc08db428c81854c7b74785f20829b0c877499caef8
7
+ data.tar.gz: 2eb63b9cfdb9080a16ad7183419f73c780d7c7cd0ce46c01309a1ac1dd7d1e4ff67b2575ca098950b11f9745ac39b7386b57da3c9a24f130cf84fb4455a494dc
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Gem Version](https://badge.fury.io/rb/vulcano.svg)](https://badge.fury.io/rb/vulcano)
2
+
1
3
  # Vulcano
2
4
 
3
5
  Ruby script to generate Swift Codable files from a JSON
@@ -27,7 +29,7 @@ vulcano json_path [output_folder]
27
29
  #### Examples
28
30
 
29
31
  ```
30
- vulcano /Users/franco/vulcan_json.json
32
+ vulcano /Users/franco/vulcano_json.json
31
33
  ```
32
34
 
33
35
  ```
@@ -4,6 +4,11 @@ require "vulcano/parsed_variable"
4
4
  module Vulcano
5
5
  class CodableGenerator
6
6
  def generate_codable_file(json, destination_folder, className = nil)
7
+ if json.is_a?(Array)
8
+ generate_codable_file(json.first, destination_folder, className)
9
+ return
10
+ end
11
+
7
12
  variables = []
8
13
 
9
14
  json.each do |key, value|
@@ -26,9 +31,7 @@ module Vulcano
26
31
  end
27
32
 
28
33
  def parse_object(destination_folder, key, value)
29
- return parse_object(destination_folder, key, value.first).array unless !value.is_a?(Array)
30
-
31
- if value.is_a?(Hash)
34
+ if value.is_a?(Hash) || value.is_a?(Array)
32
35
  generate_codable_file(value, destination_folder, class_name_from_key(key))
33
36
  end
34
37
 
@@ -14,22 +14,23 @@ module Vulcano
14
14
  original_name.camel_case_lower
15
15
  end
16
16
 
17
- def array
18
- ParsedVariable.new(original_name, nil, "[#{type}]")
19
- end
20
-
21
17
  def type
22
18
  return @type unless @type.nil?
23
19
 
24
- case value
20
+ typeString(value)
21
+ end
22
+
23
+ def typeString(object)
24
+ case object
25
25
  when Integer then 'Int'
26
26
  when Float then 'Float'
27
27
  when String then 'String'
28
28
  when TrueClass then 'Boolean'
29
29
  when FalseClass then 'Boolean'
30
30
  when Hash then original_name.camel_case
31
+ when Array then "[#{typeString(object.first)}]"
31
32
  else
32
- raise "Unknown type: #{value.class}"
33
+ raise "Unknown type: #{object.class}"
33
34
  end
34
35
  end
35
36
  end
@@ -1,3 +1,3 @@
1
1
  module Vulcano
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vulcano
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franco Meloni