vulcano 0.6.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/vulcano/codable_generator.rb +7 -7
- data/lib/vulcano/parsed_class.rb +5 -1
- data/lib/vulcano/version.rb +1 -1
- data/lib/vulcano.rb +9 -1
- data/resources/TemplateFile.swift +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8321bbfa2fec6b2364797671e98be8b492271502
|
4
|
+
data.tar.gz: fe982cac6d4748c8345e3c0ae26d0785c497a876
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a658b32cd5c2f85aa9dd7868c823ecfb43f2b8b50ed877cb2fe4fbf76f60c9b03857c7933091c6a53a346ad9ba091c11b78cbfe70c9a6091d2883c905e948eb1
|
7
|
+
data.tar.gz: fe38eac69b6af13202c09c26fd6fa4e101e803642376a882a4f010510ebcf229ddb5800908c892d8ec1f415eaead2f549274f7e6df7ff541b01bafaa79738db2
|
data/Gemfile.lock
CHANGED
@@ -3,23 +3,23 @@ require "vulcano/parsed_variable"
|
|
3
3
|
|
4
4
|
module Vulcano
|
5
5
|
class CodableGenerator
|
6
|
-
def generate_codable_file(json, destination_folder, className
|
6
|
+
def generate_codable_file(json, destination_folder, options, className)
|
7
7
|
if json.is_a?(Array)
|
8
|
-
generate_codable_file(json.first, destination_folder, className)
|
8
|
+
generate_codable_file(json.first, destination_folder, options, className)
|
9
9
|
return
|
10
10
|
end
|
11
11
|
|
12
12
|
variables = []
|
13
13
|
|
14
14
|
json.each do |key, value|
|
15
|
-
parsed_object = parse_object(destination_folder, key, value)
|
15
|
+
parsed_object = parse_object(destination_folder, options, key, value)
|
16
16
|
|
17
17
|
variables.push(parsed_object) unless parsed_object.nil?
|
18
18
|
end
|
19
19
|
|
20
20
|
name = className.nil? ? 'Generated' : className
|
21
21
|
|
22
|
-
parsed_class = ParsedClass.new(name, variables)
|
22
|
+
parsed_class = ParsedClass.new(name, variables, !(options[:public].nil?), options[:use_classes].nil?)
|
23
23
|
|
24
24
|
spec = Gem::Specification.find_by_name('vulcano')
|
25
25
|
template = File.read("#{spec.gem_dir}/resources/TemplateFile.swift")
|
@@ -30,13 +30,13 @@ module Vulcano
|
|
30
30
|
File.open("#{destination_folder}/#{name}.swift", 'w') { |f| f.write(result) }
|
31
31
|
end
|
32
32
|
|
33
|
-
def parse_object(destination_folder, key, value)
|
33
|
+
def parse_object(destination_folder, options, key, value)
|
34
34
|
return nil if value.is_a?(Array) && value.size == 0
|
35
|
-
return parse_object(destination_folder, key, value.first).array if value.is_a?(Array)
|
35
|
+
return parse_object(destination_folder, options, key, value.first).array if value.is_a?(Array)
|
36
36
|
return nil if value.nil?
|
37
37
|
|
38
38
|
if value.is_a?(Hash)
|
39
|
-
generate_codable_file(value, destination_folder, class_name_from_key(key))
|
39
|
+
generate_codable_file(value, destination_folder, options, class_name_from_key(key))
|
40
40
|
end
|
41
41
|
|
42
42
|
ParsedVariable.new(key, value)
|
data/lib/vulcano/parsed_class.rb
CHANGED
@@ -5,11 +5,15 @@ module Vulcano
|
|
5
5
|
attr_reader :name
|
6
6
|
attr_reader :variables
|
7
7
|
attr_reader :codable_keys
|
8
|
+
attr_reader :is_public
|
9
|
+
attr_reader :is_struct
|
8
10
|
|
9
|
-
def initialize(name, variables)
|
11
|
+
def initialize(name, variables, is_public, is_struct)
|
12
|
+
@is_public = is_public
|
10
13
|
@name = name
|
11
14
|
@variables = variables
|
12
15
|
@codable_keys = codable_keys
|
16
|
+
@is_struct = is_struct
|
13
17
|
end
|
14
18
|
|
15
19
|
def class_binding
|
data/lib/vulcano/version.rb
CHANGED
data/lib/vulcano.rb
CHANGED
@@ -15,7 +15,7 @@ module Vulcano
|
|
15
15
|
json_path = ARGV[0]
|
16
16
|
destination_folder = options[:destination_folder].nil? ? "." : options[:destination_folder]
|
17
17
|
json = JsonReader.new.read_from_file(json_path)
|
18
|
-
CodableGenerator.new.generate_codable_file(json, destination_folder, options[:class_name])
|
18
|
+
CodableGenerator.new.generate_codable_file(json, destination_folder, options, options[:class_name])
|
19
19
|
end
|
20
20
|
|
21
21
|
def parse_options
|
@@ -31,6 +31,14 @@ module Vulcano
|
|
31
31
|
opts.on("-n", "--class-name CLASS_NAME", String, "Name for the generated class (the default name is 'Generated')") do |class_name|
|
32
32
|
options[:class_name] = class_name
|
33
33
|
end
|
34
|
+
|
35
|
+
opts.on("-p", "--public", "Generates all the objects as public objects") do |is_public|
|
36
|
+
options[:public] = is_public
|
37
|
+
end
|
38
|
+
|
39
|
+
opts.on("-c", "--use-classes", "Generates classes instead of structs") do |use_classes|
|
40
|
+
options[:use_classes] = use_classes
|
41
|
+
end
|
34
42
|
end.parse!
|
35
43
|
|
36
44
|
return options
|
@@ -4,8 +4,8 @@
|
|
4
4
|
// Generated with Vulcano https://rubygems.org/gems/vulcano
|
5
5
|
//
|
6
6
|
|
7
|
-
class <%= @name %>: Codable {<% for @variable in @variables %>
|
8
|
-
var <%= @variable.name %>: <%= @variable.type %><% end %><% if (@codable_keys != nil) then %>
|
7
|
+
<% if is_public then %>public <% end %><% if is_struct then %>struct<% else %>class<% end %> <%= @name %>: Codable {<% for @variable in @variables %>
|
8
|
+
<% if is_public then %>public <% end %>var <%= @variable.name %>: <%= @variable.type %><% end %><% if (@codable_keys != nil) then %>
|
9
9
|
|
10
10
|
enum CodingKeys: String, CodingKey { <% for @codable_key in @codable_keys %>
|
11
11
|
<% if (@codable_key.codable_name != nil) then %> case <%= @codable_key.codable_name %> = "<%= @codable_key.original_name %>"<% else %> case <%= @codable_key.original_name %><% end %><% end %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vulcano
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Franco Meloni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|