generamba 0.7.6 → 0.7.7
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75fd8f09b867e3a63ea18b53a9d78d82eb1123f3
|
4
|
+
data.tar.gz: 83c57bda10c9a4cf25c28ab9724c1b4a1e606826
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aa8ae6ebdd3b662865a14926857eb6d925651ce4f4779346484a4476587d7a926895e8929a2063b120246fc3623004ba8644aee35a2739d0b9bd4a4eed3d65c
|
7
|
+
data.tar.gz: 0cdb99df08c246ceda3c59abeafc48483d2bfe77a9f2a2f1bc2f95a10a68e310531b4e809dff643fe4d1c4be820e5f5e6decee4f020b8e9a0589e8e7ddf64714
|
@@ -5,22 +5,23 @@ module Generamba
|
|
5
5
|
# Responsible for generating code using provided liquid templates
|
6
6
|
class ContentGenerator
|
7
7
|
|
8
|
-
# Generates and returns a body of a specific code file.
|
8
|
+
# Generates and returns a filename and a body of a specific code file.
|
9
9
|
# @param file []Hash<String,String>] A hashmap with template's filename and filepath
|
10
10
|
# @param code_module [CodeModule] The model describing a generating module
|
11
11
|
# @param template [ModuleTemplate] The model describing a Generamba template used for code generation
|
12
12
|
#
|
13
|
-
# @return [String] The generated body
|
14
|
-
def self.
|
13
|
+
# @return [String], [String] The generated file_name and body
|
14
|
+
def self.create_file(file, code_module, template)
|
15
15
|
file_source = IO.read(template.template_path.join(file[TEMPLATE_FILE_PATH_KEY]))
|
16
16
|
Liquid::Template.file_system = Liquid::LocalFileSystem.new(template.template_path.join('snippets'), '%s.liquid')
|
17
17
|
|
18
18
|
template = Liquid::Template.parse(file_source)
|
19
|
-
|
19
|
+
filename_template = self.file_name_template(file)
|
20
|
+
|
21
|
+
file_basename = File.basename(file[TEMPLATE_FILE_NAME_KEY])
|
20
22
|
|
21
23
|
module_info = {
|
22
24
|
'name' => code_module.name,
|
23
|
-
'file_name' => file_name,
|
24
25
|
'description' => code_module.description,
|
25
26
|
'project_name' => code_module.project_name,
|
26
27
|
'project_targets' => code_module.project_targets,
|
@@ -39,10 +40,23 @@ module Generamba
|
|
39
40
|
'module_info' => module_info,
|
40
41
|
'prefix' => code_module.prefix
|
41
42
|
}
|
43
|
+
|
44
|
+
module_info['file_basename'] = file_basename
|
42
45
|
|
43
|
-
|
46
|
+
file_name = filename_template.render(scope)
|
44
47
|
|
45
|
-
|
48
|
+
module_info['file_name'] = file_name
|
49
|
+
module_info.delete('file_basename')
|
50
|
+
|
51
|
+
content = template.render(scope)
|
52
|
+
|
53
|
+
return file_name, content
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.file_name_template(file)
|
57
|
+
template_default_text = "{{ prefix }}{{ module_info.name }}{{ module_info.file_basename }}"
|
58
|
+
template_text = file[TEMPLATE_FILE_FILENAME_KEY] || template_default_text
|
59
|
+
return Liquid::Template.parse(template_text)
|
46
60
|
end
|
47
61
|
end
|
48
62
|
end
|
@@ -67,19 +67,14 @@ module Generamba
|
|
67
67
|
|
68
68
|
XcodeprojHelper.clear_group(project, targets, group_path)
|
69
69
|
files.each do |file|
|
70
|
-
|
71
|
-
# E.g. RDS + Authorization + Presenter.h = RDSAuthorizationPresenter.h
|
72
|
-
file_basename = name + File.basename(file[TEMPLATE_NAME_KEY])
|
73
|
-
prefix = code_module.prefix
|
74
|
-
file_name = prefix ? prefix + file_basename : file_basename
|
75
|
-
|
70
|
+
|
76
71
|
file_group = File.dirname(file[TEMPLATE_NAME_KEY])
|
77
72
|
|
78
|
-
# Generating the content of the code file
|
79
|
-
file_content = ContentGenerator.
|
73
|
+
# Generating the content of the code file and it's name
|
74
|
+
file_name, file_content = ContentGenerator.create_file(file, code_module, template)
|
80
75
|
file_path = dir_path.join(file_group)
|
81
76
|
.join(file_name)
|
82
|
-
|
77
|
+
|
83
78
|
# Creating the file in the filesystem
|
84
79
|
FileUtils.mkdir_p File.dirname(file_path)
|
85
80
|
File.open(file_path, 'w+') do |f|
|
data/lib/generamba/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: generamba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Egor Tolstoy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-05-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thor
|