xfabricator 0.1.1 → 0.1.2

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: 4cb829b85a1c809946640551eea258db47b207d2
4
- data.tar.gz: 95d19734a19e86962e8adf9c01b1f64886247fb2
3
+ metadata.gz: 645a21806994d33b4928c8ff917164bd7ee10e0f
4
+ data.tar.gz: 675a34495eba71982d963f6c0125d691852e747c
5
5
  SHA512:
6
- metadata.gz: 6c65ba6fb729820365861262c81f2d8e8121ff9f86a18257d2257cb3934288d26a4b306bc442ca8331313b348ab7ca97f4739de1f476cb5d523425d1d55dedb6
7
- data.tar.gz: b5f45876f1e1748fb73285c1f11b8438abcc8af8c63cbdbf64b502447b115ae8aed8e9ece1cb338ece1b5030cbf28e7b24514730342faddf8373d159be55cf06
6
+ metadata.gz: 98352f3416adb271fc9bd3d73379cdb018670e3072e6d7a1050cfb7e8108e18dddb7c129054bc0734c1599a3e74d5c41cc238a0cc964bcbfe605a022dfe765d8
7
+ data.tar.gz: 725e357afccdf7fa7e87495108454cc5c15e0b2d7baa09752319add13fd86aa60039147c1807275833e02b145e2140f6b11a50d1f7492d3575b5914f42554268
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # Xfabricator
1
+ # xfabricator
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/xfabricator`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ Generate files from mustache templates and add them directly to an xcode projects.
4
+ * Generated files can be added to specific targets, groups and paths
5
+ * Generated files can be added to groups automatically based on the path
6
6
 
7
7
  ## Installation
8
8
 
@@ -22,7 +22,69 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ ### Project configuration
26
+
27
+ This configuration file should be located somewhere in the root of your project directory. When the `xfabricate` CLI
28
+ tool is run it will scan up the folder hierarchy until it finds this file.
29
+
30
+ **.xfabricate**
31
+ ```ruby
32
+ FabricationConfig.create_config lambda { |config|
33
+ variables = {}
34
+ variables[:project_variable] = "value specific to the project"
35
+ variables[:some_interesting_value] = "another value specific to the project"
36
+
37
+ #Any project specific variables. This can be omitted.
38
+ config[:variables] = variables
39
+
40
+ #The project file to add generated files to
41
+ config[:project_file] = "#{relative_path}/ExampleProj.xcodeproj"
42
+
43
+ #The location of template definitions and associated files; can be absolute or relative
44
+ config[:template_location] = "#{relative_path}/xftemplates"
45
+
46
+ #The target to associate any generated files when no specific target is specified
47
+ config[:default_target] = 'ExampleProj'
48
+ }
49
+ ```
50
+
51
+ ### Template definitions
52
+
53
+ The template definition file should be located in the template_location specified in the `.xfabricate` configuration file.
54
+ A file named `Test.xftemplate` could be used for template fabrication using the following `xfabricate -t Test` anywhere
55
+ inside the project.
56
+
57
+ ```ruby
58
+ TemplateDefinition.create_definition lambda { |template_definition|
59
+ #Declare template files and generated file names
60
+ #Generated file names can include any project or template variable
61
+ template_files = [
62
+ TemplateFileDefinition.new("ExampleTemplate.h", '{{some_variable}}Widget.h'),
63
+ TemplateFileDefinition.new("ExampleTemplate.m", '{{some_variable}}Widget.m')
64
+ ]
65
+
66
+ template_definition[:template_files] = template_files
67
+
68
+ #declare variable names and appropriate prompts to request variable values
69
+ template_definition[:variable_prompts] = {
70
+ some_variable: 'some_variable value:',
71
+ a_variable_used_in_template: 'Please enter a value for the variable used in the template...'
72
+ }
73
+ }
74
+ ```
75
+
76
+ The template files are mustache templates with access to any variables in the project configuration or supplied at
77
+ prompts defined in the template definition.
78
+
79
+ ### Command line tool
80
+
81
+ ```
82
+ Usage: xfabricate [options]
83
+ -t, --template=template_name specify template to fabricate
84
+ -a, --target=target_name specify target to add created files
85
+ -g, --group=group_name specify group to add created files
86
+ -p, --path=path_name specify path to generate created files
87
+ ```
26
88
 
27
89
  ## Development
28
90
 
@@ -34,7 +96,6 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
34
96
 
35
97
  Bug reports and pull requests are welcome on GitHub at https://github.com/nicholascross/xfabricator.
36
98
 
37
-
38
99
  ## License
39
100
 
40
101
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -71,7 +71,15 @@ module Xfabricator
71
71
 
72
72
  def find_current_group
73
73
  project = @config.project
74
- find_group_for_directory(project.main_group, @fabrication_path, project)
74
+ main_group = project.main_group
75
+
76
+ main_group_path = "#{project.path.parent.to_s}#{main_group.hierarchy_path}"
77
+ puts "#{main_group_path} == #{@fabrication_path.to_s}"
78
+ if main_group_path == @fabrication_path.to_s
79
+ return main_group
80
+ end
81
+
82
+ find_group_for_directory(main_group, @fabrication_path, project)
75
83
  end
76
84
 
77
85
  def find_group_for_directory(current_group, directory, project)
@@ -1,3 +1,3 @@
1
1
  module Xfabricator
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xfabricator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Cross
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-17 00:00:00.000000000 Z
11
+ date: 2017-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler