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: 04129f5e6777daf44ff8abc73838ae0faa4d4143
4
- data.tar.gz: 8deecaf4017ca3f9260625254b20847de3788356
3
+ metadata.gz: 75fd8f09b867e3a63ea18b53a9d78d82eb1123f3
4
+ data.tar.gz: 83c57bda10c9a4cf25c28ab9724c1b4a1e606826
5
5
  SHA512:
6
- metadata.gz: d39bf225fadf01ff2edd26de5d808fe35e3efea4294bce452df27ebe4f9b46d3582e8091c05f2a67c1ba24ac0d51a8e851b5e7359f6dabdb46642c5531d9dc37
7
- data.tar.gz: 4824dbce92c86b7c53816fe89487661b048f307558964c6e6b3f151633473258f7142b98442460bb69b64eeda482d4d557591978c825fced3e8d44a7a9a74383
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.create_file_content(file, code_module, template)
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
- file_name = File.basename(file[TEMPLATE_FILE_NAME_KEY])
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
- output = template.render(scope)
46
+ file_name = filename_template.render(scope)
44
47
 
45
- return output
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
@@ -11,6 +11,7 @@ module Generamba
11
11
  TEMPLATE_TEST_FILES_KEY = 'test_files'
12
12
  TEMPLATE_FILE_NAME_KEY = 'name'
13
13
  TEMPLATE_FILE_PATH_KEY = 'path'
14
+ TEMPLATE_FILE_FILENAME_KEY = 'file_name'
14
15
 
15
16
  TEMPLATE_DEPENDENCIES_KEY = 'dependencies'
16
17
  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
- # The target file's name consists of three parameters: project prefix, module name and template file name.
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.create_file_content(file, code_module, template)
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|
@@ -1,3 +1,3 @@
1
1
  module Generamba
2
- VERSION = '0.7.6'
2
+ VERSION = '0.7.7'
3
3
  end
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.6
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-04-30 00:00:00.000000000 Z
13
+ date: 2016-05-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor