generamba 0.7.6 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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