generamba-mp 0.0.3 → 0.0.5

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: be0770fa2f33612f677ccf90e241af8663805979
4
- data.tar.gz: 045bad5f2e6e4ed7536c94171acc3759892e2ade
3
+ metadata.gz: 4cf24c7bef74d63bd1a60fa24e1a13d8acfaf652
4
+ data.tar.gz: fafff07f593f7d39d2be0aaea8e1749f1007d535
5
5
  SHA512:
6
- metadata.gz: 4bc14232ae967ac4bc900956f6955f7581d226632cf840a18850b0538ae8e3b2b3dfb2b2a65add5cf31d0e92623a468e1be358a9531e46d5abda5803701fb908
7
- data.tar.gz: b35a706ca0a71f15be84efd5888d59f226b4c3b52077db5af4eb9e0e25acab229bfe712d4a19bb454747f068ff3e1ec4710ffdaf939cdbe5dbe8a119363cf02f
6
+ metadata.gz: 00aace9efe6aec620ed780c8a374a54c01d6715cacf5a7cab0c0aae8a04b2f11bc699485d605c7abfce113a921f54985a3975f3acd14d720b4d35b267bb3b728
7
+ data.tar.gz: 9c578a7ff41873246efba781363ff3914f306339ac86af4e942b49b68c2b654160159248e34ea96d43dfa5d01b8769beb71089deaae89740645634fe247fba30
Binary file
@@ -0,0 +1,64 @@
1
+ {
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ "version": "0.2.0",
6
+ "configurations": [
7
+ {
8
+ "name": "Debug Local File",
9
+ "type": "Ruby",
10
+ "request": "launch",
11
+ "cwd": "${workspaceRoot}",
12
+ "program": "${workspaceRoot}/bin/generamba"
13
+ },
14
+ {
15
+ "name": "Listen for rdebug-ide",
16
+ "type": "Ruby",
17
+ "request": "attach",
18
+ "cwd": "${workspaceRoot}",
19
+ "remoteHost": "127.0.0.1",
20
+ "remotePort": "1234",
21
+ "remoteWorkspaceRoot": "${workspaceRoot}"
22
+ },
23
+ {
24
+ "name": "Rails server",
25
+ "type": "Ruby",
26
+ "request": "launch",
27
+ "cwd": "${workspaceRoot}",
28
+ "program": "${workspaceRoot}/bin/rails",
29
+ "args": [
30
+ "server"
31
+ ]
32
+ },
33
+ {
34
+ "name": "RSpec - all",
35
+ "type": "Ruby",
36
+ "request": "launch",
37
+ "cwd": "${workspaceRoot}",
38
+ "program": "${workspaceRoot}/bin/rspec",
39
+ "args": [
40
+ "-I",
41
+ "${workspaceRoot}"
42
+ ]
43
+ },
44
+ {
45
+ "name": "RSpec - active spec file only",
46
+ "type": "Ruby",
47
+ "request": "launch",
48
+ "cwd": "${workspaceRoot}",
49
+ "program": "${workspaceRoot}/bin/rspec",
50
+ "args": [
51
+ "-I",
52
+ "${workspaceRoot}",
53
+ "${file}"
54
+ ]
55
+ },
56
+ {
57
+ "name": "Cucumber",
58
+ "type": "Ruby",
59
+ "request": "launch",
60
+ "cwd": "${workspaceRoot}",
61
+ "program": "${workspaceRoot}/bin/cucumber"
62
+ }
63
+ ]
64
+ }
@@ -5,13 +5,13 @@ require 'generamba/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'generamba-mp'
8
- spec.version = '0.0.3'
9
- spec.authors = ['Marton Pito']
8
+ spec.version = '0.0.5'
9
+ spec.authors = ['Egor Tolstoy', 'Andrey Zarembo', 'Beniamin Sarkisyan', 'Aleksandr Sychev','Marton Pito']
10
10
  spec.email = 'martonpito@gmail.com'
11
11
 
12
- spec.summary = 'Generamba forked for own modifications.'
12
+ spec.summary = 'FORKED FOR OWN USAGE! Advanced code generator for Xcode projects with a nice and flexible template system.'
13
13
  spec.description = 'Generamba is a powerful and easy-to-use Xcode code generator. It provides a project-based configuration, flexible templates system, the ability to generate code and tests simultaneously.'
14
- spec.homepage = 'https://github.com/Hunartimon/Generamba'
14
+ spec.homepage = 'https://github.com/rambler-digital-solutions/Generamba'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -8,9 +8,9 @@ require 'generamba/cli/version_command.rb'
8
8
  require 'generamba/cli/setup_username_command.rb'
9
9
  require 'generamba/cli/thor_extension.rb'
10
10
  require 'generamba/cli/template/template_group.rb'
11
+ require 'generamba/tools/liquid-camelcase.rb'
11
12
 
12
13
  module Generamba::CLI
13
14
  class Application < Thor
14
-
15
15
  end
16
16
  end
@@ -1,4 +1,5 @@
1
1
  require 'thor'
2
+ require 'liquid'
2
3
  require 'generamba/helpers/print_table.rb'
3
4
  require 'generamba/helpers/rambafile_validator.rb'
4
5
  require 'generamba/helpers/xcodeproj_helper.rb'
@@ -58,15 +59,20 @@ module Generamba::CLI
58
59
  DependencyChecker.check_all_required_dependencies_has_in_cartfile(template.dependencies, code_module.cartfile_path)
59
60
 
60
61
  project = XcodeprojHelper.obtain_project(code_module.xcodeproj_path)
61
- module_group_already_exists = XcodeprojHelper.module_with_group_path_already_exists(project, code_module.project_group_path)
62
-
63
- if module_group_already_exists
64
- replace_exists_module = yes?("#{module_name} module already exists. Replace? (yes/no)")
65
-
66
- unless replace_exists_module
67
- return
68
- end
69
- end
62
+
63
+ template.code_files.each do |file|
64
+ file_group = File.join(code_module.project_group_path, "/", File.dirname(file[TEMPLATE_NAME_KEY]))
65
+
66
+ if XcodeprojHelper.module_with_group_path_already_exists(project, file_group)
67
+ replace_exists_module = yes?("#{module_name} module already exists. Replace? (yes/no)")
68
+
69
+ unless replace_exists_module
70
+ return
71
+ else
72
+ break
73
+ end
74
+ end
75
+ end
70
76
 
71
77
  generator = Generamba::ModuleGenerator.new
72
78
  generator.generate_module(module_name, code_module, template)
@@ -81,7 +81,8 @@ module Generamba
81
81
  file_path = group_path unless file_path
82
82
 
83
83
  variable_value = file_path.gsub(SLASH_REGEX, '')
84
- variable_value = Pathname.new(variable_value).join(@name)
84
+ variable_value = Pathname.new(variable_value)#.join(@name)
85
+ puts("setup_file_and_group_paths variable_value: #{variable_value}")
85
86
  instance_variable_set("@#{variable_name}", variable_value)
86
87
  end
87
88
 
@@ -91,7 +92,8 @@ module Generamba
91
92
  group_path = file_path unless group_path
92
93
 
93
94
  variable_value = group_path.gsub(SLASH_REGEX, '')
94
- variable_value = Pathname.new(variable_value).join(@name)
95
+ variable_value = Pathname.new(variable_value)#.join(@name)
96
+ puts("setup_file_and_group_paths variable_value: #{variable_value}")
95
97
  instance_variable_set("@#{variable_name}", variable_value)
96
98
  end
97
99
  end
@@ -24,6 +24,8 @@ module Generamba
24
24
  file_path = file_path.join(file_group_path) if file_group_path
25
25
  file_path = file_path.join(file_name) if file_name
26
26
 
27
+ puts "add_file_to_project_and_targets file_path: #{file_path}"
28
+
27
29
  module_group = self.retrieve_group_or_create_if_needed(group_path, dir_path, file_group_path, project, true)
28
30
  xcode_file = module_group.new_file(File.absolute_path(file_path))
29
31
 
@@ -46,6 +48,7 @@ module Generamba
46
48
  #
47
49
  # @return [void]
48
50
  def self.add_group_to_project(project, group_path, dir_path, directory_name)
51
+ puts "add_group_to_project: group_path: #{group_path}, dir_path: #{dir_path}, directory_name: #{directory_name} "
49
52
  self.retrieve_group_or_create_if_needed(group_path, dir_path, directory_name, project, true)
50
53
  end
51
54
 
@@ -72,9 +75,11 @@ module Generamba
72
75
  # @return [Void]
73
76
  def self.clear_group(project, targets_name, group_path)
74
77
  module_group = self.retrieve_group_or_create_if_needed(group_path, nil, nil, project, false)
78
+ puts "clear_group: group_path: #{group_path} module_group: #{module_group}"
75
79
  return unless module_group
76
80
 
77
81
  files_path = self.files_path_from_group(module_group, project)
82
+ puts "clear_group: group_path: #{group_path} files_path: #{files_path}"
78
83
  return unless files_path
79
84
 
80
85
  files_path.each do |file_path|
@@ -105,15 +110,16 @@ module Generamba
105
110
  #
106
111
  # @return [PBXGroup]
107
112
  def self.retrieve_group_or_create_if_needed(group_path, dir_path, file_group_path, project, create_group_if_not_exists)
113
+
108
114
  group_names = path_names_from_path(group_path)
109
115
  group_components_count = group_names.count
110
116
  group_names += path_names_from_path(file_group_path) if file_group_path
111
-
117
+ puts "retrieve_group_or_create_if_needed group_names: #{group_names}" unless create_group_if_not_exists
112
118
  final_group = project
113
119
 
114
120
  group_names.each_with_index do |group_name, index|
115
121
  next_group = final_group[group_name]
116
-
122
+ # puts "retrieve_group_or_create_if_needed next_group: #{next_group}" unless create_group_if_not_exists
117
123
  unless next_group
118
124
  return nil unless create_group_if_not_exists
119
125
 
@@ -126,7 +132,7 @@ module Generamba
126
132
 
127
133
  final_group = next_group
128
134
  end
129
-
135
+ # puts "final_group: #{final_group}" unless create_group_if_not_exists
130
136
  final_group
131
137
  end
132
138
 
@@ -55,25 +55,32 @@ module Generamba
55
55
  def process_files_if_needed(files, code_module, template, project, targets, group_path, dir_path, processed_groups = [])
56
56
  # It's possible that current project doesn't test targets configured, so it doesn't need to generate tests.
57
57
  # The same is for files property - a template can have only test or project files
58
+ puts "process_files_if_needed: group_path: #{group_path}\n dir_path: #{dir_path}\n"
58
59
  if targets.count == 0 || files == nil || files.count == 0 || dir_path == nil || group_path == nil
59
60
  return
60
61
  end
61
62
 
62
- XcodeprojHelper.clear_group(project, targets, group_path) unless processed_groups.include? group_path
63
63
  files.each do |file|
64
- unless file[TEMPLATE_FILE_PATH_KEY]
65
64
 
65
+ file_group = File.dirname(file[TEMPLATE_NAME_KEY])
66
+ file_group = nil if file_group == '.'
67
+
68
+ unless processed_groups.include? File.join(group_path, "/", file_group)
69
+ # puts "process_files_if_needed: file_group: #{File.join(group_path, "/", file_group)}"
70
+ XcodeprojHelper.clear_group(project, targets, File.join(group_path, "/", file_group))
71
+ processed_groups.push(File.join(group_path, "/", file_group))
72
+ end
73
+
74
+ unless file[TEMPLATE_FILE_PATH_KEY]
66
75
  directory_name = file[TEMPLATE_NAME_KEY].gsub(/^\/|\/$/, '')
67
76
  file_group = dir_path.join(directory_name)
68
77
 
69
78
  FileUtils.mkdir_p file_group
70
79
  XcodeprojHelper.add_group_to_project(project, group_path, dir_path, directory_name)
80
+
71
81
  next
72
82
  end
73
83
 
74
- # file_group = File.dirname(file[TEMPLATE_NAME_KEY])
75
- file_group = nil if file_group == '.'
76
-
77
84
  module_info = ModuleInfoGenerator.new(code_module)
78
85
 
79
86
  # Generating the content of the code file and it's name
@@ -0,0 +1,14 @@
1
+ require 'liquid'
2
+ require 'uri'
3
+
4
+ # Camelize all words of the input
5
+ module Camelize
6
+
7
+ def camelize(term)
8
+ string = term.to_s
9
+ return string.camelize(:lower)
10
+ end
11
+
12
+ end
13
+
14
+ Liquid::Template.register_filter(Camelize)
metadata CHANGED
@@ -1,14 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generamba-mp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
+ - Egor Tolstoy
8
+ - Andrey Zarembo
9
+ - Beniamin Sarkisyan
10
+ - Aleksandr Sychev
7
11
  - Marton Pito
8
12
  autorequire:
9
13
  bindir: bin
10
14
  cert_chain: []
11
- date: 2018-05-18 00:00:00.000000000 Z
15
+ date: 2018-05-19 00:00:00.000000000 Z
12
16
  dependencies:
13
17
  - !ruby/object:Gem::Dependency
14
18
  name: thor
@@ -179,10 +183,12 @@ executables:
179
183
  extensions: []
180
184
  extra_rdoc_files: []
181
185
  files:
186
+ - ".DS_Store"
182
187
  - ".codeclimate.yml"
183
188
  - ".gitignore"
184
189
  - ".rspec"
185
190
  - ".travis.yml"
191
+ - ".vscode/launch.json"
186
192
  - CHANGELOG.md
187
193
  - Gemfile
188
194
  - LICENSE.txt
@@ -242,9 +248,10 @@ files:
242
248
  - lib/generamba/template/installer/template_installer_factory.rb
243
249
  - lib/generamba/template/processor/template_declaration.rb
244
250
  - lib/generamba/template/processor/template_processor.rb
251
+ - lib/generamba/tools/liquid-camelcase.rb
245
252
  - lib/generamba/tools/string-colorize.rb
246
253
  - lib/generamba/version.rb
247
- homepage: https://github.com/Hunartimon/Generamba
254
+ homepage: https://github.com/rambler-digital-solutions/Generamba
248
255
  licenses:
249
256
  - MIT
250
257
  metadata: {}
@@ -267,5 +274,6 @@ rubyforge_project:
267
274
  rubygems_version: 2.5.2
268
275
  signing_key:
269
276
  specification_version: 4
270
- summary: Generamba forked for own modifications.
277
+ summary: FORKED FOR OWN USAGE! Advanced code generator for Xcode projects with a nice
278
+ and flexible template system.
271
279
  test_files: []