generamba 0.6.0 → 0.6.1
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 +4 -4
- data/generamba.gemspec +9 -7
- data/lib/generamba/cli/cli.rb +1 -0
- data/lib/generamba/cli/gen_command.rb +9 -0
- data/lib/generamba/cli/setup_command.rb +3 -10
- data/lib/generamba/cli/setup_username_command.rb +21 -0
- data/lib/generamba/cli/thor_extension.rb +1 -1
- data/lib/generamba/helpers/rambafile_validator.rb +38 -0
- data/lib/generamba/version.rb +1 -1
- metadata +33 -32
- data/bin/GenerambaSandbox/Rambafile +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49edac40853a1e75968a2583d0e2ee41dd17ce10
|
4
|
+
data.tar.gz: b58c8ab9bdc965aa61e094403a1ea5a7d64183f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5d0ed0bbb05aa123c9176370c20aedf4445003736742f3b93c8d5f16d5947523682ab9f9752f15569dcccfd70fba9f00d86ea6800c3a13050fab10de9a25f70
|
7
|
+
data.tar.gz: b196bf8123c9b4649a41efed5d9de8764d71b4da9e6998a0f6a1d052998a70334c464a63a8c267c5e068fa982fb9182f3ed5349ad664f3f4d82efc372f9f91a6
|
data/generamba.gemspec
CHANGED
@@ -18,14 +18,16 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = ['generamba']
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
|
23
|
-
spec.
|
24
|
-
spec.
|
25
|
-
spec.
|
26
|
-
spec.
|
21
|
+
spec.required_ruby_version = '>= 2.2'
|
22
|
+
|
23
|
+
spec.add_runtime_dependency 'thor', '0.19.1'
|
24
|
+
spec.add_runtime_dependency 'xcodeproj', '0.28.2'
|
25
|
+
spec.add_runtime_dependency 'liquid', '3.0.6'
|
26
|
+
spec.add_runtime_dependency 'tilt', '2.0.1'
|
27
|
+
spec.add_runtime_dependency 'settingslogic', '2.0.9'
|
28
|
+
spec.add_runtime_dependency 'git', '1.2.9.1'
|
27
29
|
|
28
30
|
spec.add_development_dependency 'bundler', '~> 1.10'
|
29
31
|
spec.add_development_dependency 'rake', '~> 10.0'
|
30
|
-
spec.add_development_dependency 'rspec'
|
32
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
31
33
|
end
|
data/lib/generamba/cli/cli.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'thor'
|
2
|
+
require 'generamba/helpers/rambafile_validator.rb'
|
2
3
|
|
3
4
|
module Generamba::CLI
|
4
5
|
class Application < Thor
|
5
6
|
|
7
|
+
include Generamba
|
8
|
+
|
6
9
|
desc 'gen [MODULE_NAME] [TEMPLATE_NAME_KEY]', 'Creates a new VIPER module with a given name from a specific template'
|
7
10
|
method_option :description, :aliases => '-d', :desc => 'Provides a full description to the module'
|
8
11
|
def gen(module_name, template_name)
|
@@ -14,6 +17,12 @@ module Generamba::CLI
|
|
14
17
|
return
|
15
18
|
end
|
16
19
|
|
20
|
+
rambafile_validator = Generamba::RambafileValidator.new
|
21
|
+
rambafile_validator.validate(RAMBAFILE_NAME)
|
22
|
+
|
23
|
+
setup_username_command = Generamba::CLI::SetupUsernameCommand.new
|
24
|
+
setup_username_command.setup_username
|
25
|
+
|
17
26
|
default_module_description = "#{module_name} module"
|
18
27
|
module_description = options[:description] ? options[:description] : default_module_description
|
19
28
|
|
@@ -13,20 +13,14 @@ module Generamba::CLI
|
|
13
13
|
def setup
|
14
14
|
properties = {}
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
if git_username != nil && yes?("Your name in git is configured as #{git_username}. Do you want to use it in code headers? (yes/no)")
|
19
|
-
username = git_username
|
20
|
-
else
|
21
|
-
username = ask_non_empty_string('The author name which will be used in the headers:', 'User name should not be empty')
|
22
|
-
end
|
23
|
-
|
24
|
-
Generamba::UserPreferences.save_username(username)
|
16
|
+
setup_username_command = Generamba::CLI::SetupUsernameCommand.new
|
17
|
+
setup_username_command.setup_username
|
25
18
|
|
26
19
|
properties[COMPANY_KEY] = ask('The company name which will be used in the headers:')
|
27
20
|
|
28
21
|
project_name = Pathname.new(Dir.getwd).basename.to_s
|
29
22
|
is_right_project_name = yes?("The name of your project is #{project_name}. Do you want to use it? (yes/no)")
|
23
|
+
|
30
24
|
properties[PROJECT_NAME_KEY] = is_right_project_name ? project_name : ask_non_empty_string('The project name:', 'Project name should not be empty')
|
31
25
|
properties[PROJECT_PREFIX_KEY] = ask('The project prefix (if any):')
|
32
26
|
|
@@ -44,7 +38,6 @@ module Generamba::CLI
|
|
44
38
|
|
45
39
|
targets_prompt = ''
|
46
40
|
project.targets.each_with_index { |element, i| targets_prompt += ("#{i}. #{element.name}" + "\n") }
|
47
|
-
|
48
41
|
project_target = ask_index("Select the appropriate target for adding your MODULES (type the index):\n" + targets_prompt,project.targets)
|
49
42
|
test_target = ask_index("Select the appropriate target for adding your TESTS (type the index):\n" + targets_prompt,project.targets)
|
50
43
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Generamba::CLI
|
2
|
+
class SetupUsernameCommand < Thor
|
3
|
+
|
4
|
+
no_commands {
|
5
|
+
def setup_username
|
6
|
+
username = Generamba::UserPreferences.obtain_username
|
7
|
+
if username == nil
|
8
|
+
puts('The author name is not configured!')
|
9
|
+
git_username = Git.init.config['user.name']
|
10
|
+
if git_username != nil && yes?("Your name in git is configured as #{git_username}. Do you want to use it in code headers? (yes/no)")
|
11
|
+
username = git_username
|
12
|
+
else
|
13
|
+
username = ask_non_empty_string('The author name which will be used in the headers:', 'User name should not be empty')
|
14
|
+
end
|
15
|
+
Generamba::UserPreferences.save_username(username)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Generamba
|
2
|
+
|
3
|
+
# Provides methods for validating Rambafile contents
|
4
|
+
class RambafileValidator
|
5
|
+
|
6
|
+
# Method validates Rambafile contents
|
7
|
+
# @param path [String] The path to a Rambafile
|
8
|
+
def validate(path)
|
9
|
+
file_contents = open(path).read
|
10
|
+
preferences = file_contents.empty? ? {} : YAML.load(file_contents).to_hash
|
11
|
+
|
12
|
+
mandatory_fields = [COMPANY_KEY,
|
13
|
+
PROJECT_NAME_KEY,
|
14
|
+
XCODEPROJ_PATH_KEY,
|
15
|
+
PROJECT_TARGET_KEY,
|
16
|
+
PROJECT_FILE_PATH_KEY,
|
17
|
+
PROJECT_GROUP_PATH_KEY,
|
18
|
+
TEST_TARGET_KEY,
|
19
|
+
TEST_FILE_PATH_KEY,
|
20
|
+
TEST_GROUP_PATH_KEY,
|
21
|
+
TEMPLATES_KEY]
|
22
|
+
|
23
|
+
mandatory_fields.each { |field|
|
24
|
+
if preferences.has_key?(field) == false
|
25
|
+
error_description = "Rambafile is broken! Cannot find #{field} field, which is mandatory. Either add it manually, or run *generamba setup*."
|
26
|
+
raise StandardError.new(error_description)
|
27
|
+
end
|
28
|
+
}
|
29
|
+
|
30
|
+
if preferences[TEMPLATES_KEY] == nil
|
31
|
+
error_description = "You can't run *generamba gen* without any templates installed. Add their declarations to a Rambafile and run *generamba template install*."
|
32
|
+
raise StandardError.new(error_description)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
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.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Egor Tolstoy
|
@@ -9,92 +9,92 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-11-
|
12
|
+
date: 2015-11-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 0.19.1
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 0.19.1
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: xcodeproj
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - '='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 0.28.2
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 0.28.2
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: liquid
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - '='
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
48
|
+
version: 3.0.6
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - '='
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: 3.0.6
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: tilt
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - '='
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: 2.0.1
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - '='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 2.0.1
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: settingslogic
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - '='
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: 2.0.9
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - '='
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
83
|
+
version: 2.0.9
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: git
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - '='
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
90
|
+
version: 1.2.9.1
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - '='
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
97
|
+
version: 1.2.9.1
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: bundler
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,16 +127,16 @@ dependencies:
|
|
127
127
|
name: rspec
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - "
|
130
|
+
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: '
|
132
|
+
version: '3.4'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - "
|
137
|
+
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: '
|
139
|
+
version: '3.4'
|
140
140
|
description: Generamba is a powerful and easy-to-use Xcode code generator. It provides
|
141
141
|
a project-based configuration, flexible templates system, the ability to generate
|
142
142
|
code and tests simultaneously.
|
@@ -153,7 +153,6 @@ files:
|
|
153
153
|
- LICENSE.txt
|
154
154
|
- Rakefile
|
155
155
|
- Readme.md
|
156
|
-
- bin/GenerambaSandbox/Rambafile
|
157
156
|
- bin/console
|
158
157
|
- bin/generamba
|
159
158
|
- bin/setup
|
@@ -162,6 +161,7 @@ files:
|
|
162
161
|
- lib/generamba/cli/cli.rb
|
163
162
|
- lib/generamba/cli/gen_command.rb
|
164
163
|
- lib/generamba/cli/setup_command.rb
|
164
|
+
- lib/generamba/cli/setup_username_command.rb
|
165
165
|
- lib/generamba/cli/template/template_create_command.rb
|
166
166
|
- lib/generamba/cli/template/template_group.rb
|
167
167
|
- lib/generamba/cli/template/template_install_command.rb
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- lib/generamba/constants/rambafile_constants.rb
|
178
178
|
- lib/generamba/constants/rambaspec_constants.rb
|
179
179
|
- lib/generamba/constants/user_preferences_constants.rb
|
180
|
+
- lib/generamba/helpers/rambafile_validator.rb
|
180
181
|
- lib/generamba/helpers/template_helper.rb
|
181
182
|
- lib/generamba/helpers/xcodeproj_helper.rb
|
182
183
|
- lib/generamba/module_generator.rb
|
@@ -205,7 +206,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
206
|
requirements:
|
206
207
|
- - ">="
|
207
208
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
209
|
+
version: '2.2'
|
209
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
211
|
requirements:
|
211
212
|
- - ">="
|
@@ -1,17 +0,0 @@
|
|
1
|
-
---
|
2
|
-
author: Egor Tolstoy
|
3
|
-
company: Rambler&Co
|
4
|
-
project_name: GenerambaSandbox
|
5
|
-
prefix:
|
6
|
-
xcodeproj_path: "/Users/etolstoy/Generamba/GenerambaSandbox/GenerambaSandbox.xcodeproj"
|
7
|
-
project_target: GenerambaSandbox
|
8
|
-
project_file_path: GenerambaSandbox/Classes/Modules/
|
9
|
-
project_group_path: GenerambaSandbox/Classes/Modules/
|
10
|
-
test_target: GenerambaSandboxTests
|
11
|
-
test_file_path: GenerambaSandboxTests/Classes/Modules/
|
12
|
-
test_group_path: GenerambaSandboxTests/Classes/Modules/
|
13
|
-
templates:
|
14
|
-
- {name: default_template, git: 'https://github.com/igrekde/default_template.git'}
|
15
|
-
- {name: rambler_viper_controller, local: '/Users/etolstoy/Generamba/rambler_viper_controller'}
|
16
|
-
- {name: rambler_viper_controller2, local: '/Users/etolstoy/Generamba/rambler_viper_controller2'}
|
17
|
-
- {name: default}
|