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 +4 -4
- data/README.md +3 -1
- data/lib/vulcano/codable_generator.rb +6 -3
- data/lib/vulcano/parsed_variable.rb +7 -6
- data/lib/vulcano/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d074ee092ad90a619c4c40d993fc5f0faaa53fad
|
4
|
+
data.tar.gz: 619b9991bafb8c11005899bbefdfa93dcadf409d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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/
|
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
|
-
|
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
|
-
|
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: #{
|
33
|
+
raise "Unknown type: #{object.class}"
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
data/lib/vulcano/version.rb
CHANGED