xfabricator 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/bin/xfabricate +16 -3
- data/lib/xfabricator/version.rb +1 -1
- data/xfabricator.gemspec +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93149bb48e6ba66cee41a8cb892062e7280ed962
|
4
|
+
data.tar.gz: 20772395ef2ab5791cdaa9b129354d8e204c44a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87e8764a79ed760041dc3c608e75dcc14f502b066013d4d112cb894425990b2ef7f2266bda7427cd7c3a46aedc5efc4ffd5d388f373f495e7fc7ff031f5cd51e
|
7
|
+
data.tar.gz: b04118bab2064cb01bcb467ced6f7061b1a1f2cd460b0db393edc72b22da6da2dbcab9eea84cace7db6ad24d720247ca497a37ebe22c0ad7f25058b8f1d97863
|
data/README.md
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
Is a command line tool that generates files from mustache templates and add them directly to an xcode project.
|
4
4
|
|
5
|
-
* Generated files can be added to specific targets
|
6
|
-
* Generated files can be added to groups automatically based on the path
|
5
|
+
* Generated files can be added to specific targets & groups
|
6
|
+
* Generated files can be added to groups automatically based on the present working directory or specified path
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
data/bin/xfabricate
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'inquirer'
|
5
|
+
require 'active_support/core_ext/hash'
|
5
6
|
require 'xfabricator/fabricator'
|
6
7
|
require 'xfabricator/fabrication_config'
|
7
8
|
require 'xfabricator/template_definition'
|
@@ -26,7 +27,7 @@ class XFabricate
|
|
26
27
|
@config = FabricationConfig.load_config xfabricate_file
|
27
28
|
end
|
28
29
|
|
29
|
-
def fabricate(template_name, target_name, output_path, group_name)
|
30
|
+
def fabricate(template_name, target_name, output_path, group_name, initial_variables = {})
|
30
31
|
unless template_name
|
31
32
|
raise ArgumentError, 'name of template to fabricate not specified'
|
32
33
|
end
|
@@ -41,11 +42,16 @@ class XFabricate
|
|
41
42
|
template = TemplateDefinition.load_definition Pathname.new(template_file)
|
42
43
|
|
43
44
|
prompts = template.variable_prompts
|
44
|
-
variables =
|
45
|
+
variables = initial_variables.with_indifferent_access
|
46
|
+
variables = variables.merge( @config.variables ) if @config.variables
|
47
|
+
|
48
|
+
puts "existing variables #{variables}"
|
45
49
|
|
46
50
|
prompts.each do |variable, prompt|
|
51
|
+
unless variables[variable]
|
47
52
|
value = Ask.input prompt
|
48
53
|
variables[variable] = value
|
54
|
+
end
|
49
55
|
end
|
50
56
|
|
51
57
|
fabricator.fabricate template, variables, target_name unless group_name
|
@@ -80,6 +86,8 @@ end
|
|
80
86
|
options = {}
|
81
87
|
options[:path] = Pathname.pwd
|
82
88
|
|
89
|
+
variables = {}
|
90
|
+
|
83
91
|
OptionParser.new do |opts|
|
84
92
|
opts.banner = "Usage: xfabricate [options]"
|
85
93
|
|
@@ -99,9 +107,14 @@ OptionParser.new do |opts|
|
|
99
107
|
options[:path] = Pathname.new(path).expand_path
|
100
108
|
end
|
101
109
|
|
110
|
+
opts.on("-k key_value", "--var=key_value", "specify variables seperated key and value by a colon '-k variable:value'") do |variable|
|
111
|
+
key_value = variable.split(':', 2)
|
112
|
+
variables[key_value[0]] = key_value[1]
|
113
|
+
end
|
114
|
+
|
102
115
|
end.parse!
|
103
116
|
|
104
117
|
raise OptionParser::MissingArgument if options[:template].nil?
|
105
118
|
|
106
119
|
xfabricate = Xfabricator::XFabricate.new Xfabricator::XFabricate.locate_file(".xfabricate")
|
107
|
-
xfabricate.fabricate options[:template], options[:target], options[:path], options[:group]
|
120
|
+
xfabricate.fabricate options[:template], options[:target], options[:path], options[:group], variables
|
data/lib/xfabricator/version.rb
CHANGED
data/xfabricator.gemspec
CHANGED
@@ -26,5 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "xcodeproj", "~> 1.4"
|
27
27
|
spec.add_development_dependency "mustache", "~> 1.0"
|
28
28
|
spec.add_development_dependency "inquirer", "~> 0"
|
29
|
+
spec.add_development_dependency "active_support", "~> 3.2"
|
29
30
|
|
30
31
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xfabricator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Cross
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: active_support
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.2'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.2'
|
83
97
|
description: Generate file templates and add them to XCode project...
|
84
98
|
email:
|
85
99
|
executables:
|