klipp 0.2.1 → 0.2.2
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/klipp.gemspec +7 -6
- data/lib/klipp.rb +29 -4
- data/lib/klipp/version.rb +1 -1
- data/lib/template.rb +1 -0
- data/lib/template/required_file.rb +16 -0
- data/lib/template/spec.rb +44 -8
- data/lib/template/token.rb +1 -1
- data/spec/fixtures/complex-projects/file-requirement/Klippfile-file-requirement +8 -0
- data/spec/fixtures/template-repository/FileRequirement/FileRequirement.klippspec +10 -0
- data/spec/klipp_spec.rb +19 -1
- data/spec/template/required_file_spec.rb +48 -0
- data/spec/template/spec_spec.rb +32 -15
- metadata +46 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1614564fed67e3a011845b9b346acf78db4f099
|
4
|
+
data.tar.gz: 8c6d33936676f31382a901fc8b7df203d2de5689
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61cc131c53da984262157a9acfc2002d278ac3afce1bc1ce0fe094c5614d2e979523a6617149c41cd8a6c225a2b3c58d327bca06598f099553946d078c5e88c4
|
7
|
+
data.tar.gz: a22297e52cc98ed4c3ae60797cddba52f666779d4a028fd8c0ef28a028849ba195683773a8d97e2fec22c5a9fd4873b4974f0e734fe6bfaedfaac0f13b27edcb
|
data/klipp.gemspec
CHANGED
@@ -22,10 +22,11 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.require_paths = %w(lib)
|
23
23
|
|
24
24
|
spec.add_runtime_dependency 'bundler', '~> 1.3'
|
25
|
-
spec.add_runtime_dependency 'rake'
|
26
|
-
spec.add_runtime_dependency 'ptools'
|
27
|
-
spec.add_runtime_dependency 'formatador'
|
28
|
-
spec.add_runtime_dependency 'colorize'
|
29
|
-
spec.add_runtime_dependency 'grit'
|
30
|
-
spec.add_runtime_dependency 'highline'
|
25
|
+
spec.add_runtime_dependency 'rake', '~> 10.1'
|
26
|
+
spec.add_runtime_dependency 'ptools', '~> 1.2'
|
27
|
+
spec.add_runtime_dependency 'formatador', '~> 0.2'
|
28
|
+
spec.add_runtime_dependency 'colorize', '~> 0.6'
|
29
|
+
spec.add_runtime_dependency 'grit', '~> 2.5'
|
30
|
+
spec.add_runtime_dependency 'highline', '~> 1.6'
|
31
|
+
spec.add_runtime_dependency 'zaru', '~> 0'
|
31
32
|
end
|
data/lib/klipp.rb
CHANGED
@@ -16,6 +16,10 @@ module Klipp
|
|
16
16
|
class Hint < StandardError
|
17
17
|
end
|
18
18
|
|
19
|
+
class ClusterError < StandardError
|
20
|
+
attr_accessor :messages
|
21
|
+
end
|
22
|
+
|
19
23
|
def self.env
|
20
24
|
@@env ||= StringInquirer.new('prod')
|
21
25
|
end
|
@@ -47,9 +51,11 @@ module Klipp
|
|
47
51
|
case e
|
48
52
|
when Klipp::Hint
|
49
53
|
Formatador.display_line("[yellow][?] #{e.message}[/]")
|
54
|
+
when Klipp::ClusterError
|
55
|
+
e.messages.each { |msg| Formatador.display_line("[red][!] #{msg}[/]\n") }
|
50
56
|
else
|
51
|
-
Formatador.display_line("[red][!] #{e.message}[/]")
|
52
|
-
Formatador.display_line(e.backtrace
|
57
|
+
Formatador.display_line("[red][!] #{e.message}[/]\n")
|
58
|
+
Formatador.display_line(e.backtrace.first)
|
53
59
|
end
|
54
60
|
1 # exit code
|
55
61
|
end
|
@@ -90,7 +96,26 @@ module Klipp
|
|
90
96
|
end
|
91
97
|
spec_path = Template::Spec.spec_path_for_identifier creator.identifier
|
92
98
|
spec = Template::Spec.from_file spec_path
|
93
|
-
|
99
|
+
|
100
|
+
validation_errors = Array.new
|
101
|
+
|
102
|
+
begin
|
103
|
+
spec.set_token_values(creator.tokens, params.splice_option('-v'))
|
104
|
+
rescue Exception => e
|
105
|
+
validation_errors << e.message
|
106
|
+
end
|
107
|
+
|
108
|
+
begin
|
109
|
+
spec.confirm_required_files
|
110
|
+
rescue Exception => e
|
111
|
+
validation_errors << e.message
|
112
|
+
end
|
113
|
+
|
114
|
+
if validation_errors.length > 0
|
115
|
+
e = Klipp::ClusterError.new
|
116
|
+
e.messages = validation_errors
|
117
|
+
raise e
|
118
|
+
end
|
94
119
|
|
95
120
|
block_actions = spec.block_actions_under_git && git_repository?
|
96
121
|
if spec.pre_actions.count > 0
|
@@ -160,7 +185,7 @@ end
|
|
160
185
|
|
161
186
|
class StringInquirer < String
|
162
187
|
def method_missing(method_name, *arguments)
|
163
|
-
if method_name.to_s[-1,1] == '?'
|
188
|
+
if method_name.to_s[-1, 1] == '?'
|
164
189
|
self == method_name.to_s[0..-2]
|
165
190
|
else
|
166
191
|
super
|
data/lib/klipp/version.rb
CHANGED
data/lib/template.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'zaru'
|
2
|
+
|
3
|
+
module Template
|
4
|
+
|
5
|
+
class RequiredFile
|
6
|
+
attr_accessor :name, :directory # :default_value, :type, :bool_strings
|
7
|
+
attr_accessor :comment # , :validation, :validation_hint
|
8
|
+
|
9
|
+
def initialize(name)
|
10
|
+
raise 'File name required' unless name.length > 0
|
11
|
+
raise "Invalid characters found in file name (try #{Zaru.sanitize!(name)})" unless Zaru.sanitize!(name) == name
|
12
|
+
self.name = name if name
|
13
|
+
self.directory = '.'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/template/spec.rb
CHANGED
@@ -4,7 +4,7 @@ module Template
|
|
4
4
|
require 'date'
|
5
5
|
|
6
6
|
attr_accessor :identifier, :block_actions_under_git
|
7
|
-
attr_reader :post_actions
|
7
|
+
attr_reader :post_actions, :required_files
|
8
8
|
|
9
9
|
def self.identifier_is_ambiguous(identifier)
|
10
10
|
specs_matching_identifier(identifier).count == 1
|
@@ -50,6 +50,7 @@ module Template
|
|
50
50
|
|
51
51
|
def initialize
|
52
52
|
@tokens = Hash[]
|
53
|
+
@required_files = Array.new
|
53
54
|
|
54
55
|
self[:BLANK] = Template::Token.new('', true)
|
55
56
|
self[:DATE] = Template::Token.new(DateTime.now.strftime('%F'), true)
|
@@ -123,21 +124,49 @@ module Template
|
|
123
124
|
end
|
124
125
|
|
125
126
|
def set_token_values(tokens, verbose=false)
|
126
|
-
|
127
|
+
token_errors = Hash[]
|
127
128
|
puts() if verbose
|
128
129
|
tokens.each do |name, value|
|
129
130
|
token = self[name]
|
130
|
-
invalidate msg+"unknown token :#{name}" unless token
|
131
131
|
begin
|
132
|
-
|
133
|
-
|
132
|
+
if token
|
133
|
+
Formatador.display_line("#{name}: [bold]#{value}[/]") if verbose
|
134
|
+
token.value = value
|
135
|
+
else
|
136
|
+
token_errors[name] = "unknown token :#{name}"
|
137
|
+
end
|
134
138
|
rescue Exception => e
|
135
|
-
|
139
|
+
token_errors[name] = "token :#{name}. #{e.message}"
|
136
140
|
end
|
137
141
|
end
|
138
|
-
|
142
|
+
|
139
143
|
@tokens.each do |name, token|
|
140
|
-
|
144
|
+
token_errors[name] = "missing value for token :#{name}" if token.value == nil && token_errors[name] == nil
|
145
|
+
end
|
146
|
+
|
147
|
+
if token_errors.length > 0
|
148
|
+
msg = "Token configuration error:\n\n\t"
|
149
|
+
msg << token_errors.map { |name, error_message| error_message }.join("\n\t")
|
150
|
+
invalidate msg
|
151
|
+
end
|
152
|
+
|
153
|
+
puts() if verbose
|
154
|
+
end
|
155
|
+
|
156
|
+
def confirm_required_files()
|
157
|
+
missing_files = Array.new
|
158
|
+
self.required_files.each do |required_file|
|
159
|
+
file_path = File.join(required_file.directory, required_file.name)
|
160
|
+
missing_files << required_file unless File.exists? file_path
|
161
|
+
end
|
162
|
+
|
163
|
+
if missing_files.length > 0
|
164
|
+
message = "Required file#{missing_files.length > 1 ? 's' : ''} not found:\n\n"
|
165
|
+
missing_files.each do |missing_file|
|
166
|
+
file_path = File.join(missing_file.directory, missing_file.name)
|
167
|
+
message << "\t#{file_path} - #{missing_file.comment ? "#{missing_file.comment}" : ''}\n"
|
168
|
+
end
|
169
|
+
raise message
|
141
170
|
end
|
142
171
|
end
|
143
172
|
|
@@ -149,6 +178,13 @@ module Template
|
|
149
178
|
@tokens.each { |name, token| yield(name, token) }
|
150
179
|
end
|
151
180
|
|
181
|
+
def required_file name, &config
|
182
|
+
required_file = Template::RequiredFile.new name
|
183
|
+
raise 'Incomplete file configuration' unless block_given?
|
184
|
+
config.yield(required_file)
|
185
|
+
@required_files << required_file
|
186
|
+
end
|
187
|
+
|
152
188
|
def klippfile
|
153
189
|
kf = "create '#{self.class.expand_identifier(self.identifier)}' do |tokens|\n\n"
|
154
190
|
@tokens.each do |name, token|
|
data/lib/template/token.rb
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
spec 'FileRequirement' do |s|
|
2
|
+
s.block_actions_under_git = true
|
3
|
+
# s.pre_actions = ['echo "Hello klipp!"']
|
4
|
+
# s.post_actions = ['pod install']
|
5
|
+
|
6
|
+
s.required_file 'icon.png' do |f|
|
7
|
+
f.comment = '72 x 72 pixels icon, used for the iOS 7 springboard on iPad'
|
8
|
+
f.directory = 'images'
|
9
|
+
end
|
10
|
+
end
|
data/spec/klipp_spec.rb
CHANGED
@@ -65,7 +65,7 @@ describe Klipp do
|
|
65
65
|
File.stubs(:exists?).returns(false)
|
66
66
|
end
|
67
67
|
|
68
|
-
it '
|
68
|
+
it 'writes a new Klippfile' do
|
69
69
|
klippfile = read_fixture 'Klippfile-after-prepare'
|
70
70
|
File.expects(:write).with('Klippfile', klippfile)
|
71
71
|
Klipp.cli_prepare(%w[Example])
|
@@ -131,4 +131,22 @@ describe Klipp do
|
|
131
131
|
|
132
132
|
end
|
133
133
|
|
134
|
+
context 'with required file' do
|
135
|
+
|
136
|
+
before do
|
137
|
+
Klipp::Configuration.stubs(:root_dir).returns(File.join(__dir__, 'fixtures'))
|
138
|
+
Dir.stubs(:pwd).returns(Dir.mktmpdir)
|
139
|
+
|
140
|
+
maker = Klipp::Creator.new
|
141
|
+
maker.eval_string(read_fixture('Klippfile-file-requirement'), fixture_path('Klippfile-file-requirement'))
|
142
|
+
Klipp::Creator.stubs(:from_file).returns(maker)
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'fails without the required files' do
|
146
|
+
|
147
|
+
expect { Klipp.cli_create([]) }.to raise_error Klipp::ClusterError
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
134
152
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Template::RequiredFile do
|
4
|
+
|
5
|
+
it 'initializes with a file name' do
|
6
|
+
file = Template::RequiredFile.new 'file.txt'
|
7
|
+
file.should_not be_nil
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'requires a file name' do
|
11
|
+
expect { file = Template::RequiredFile.new }.to raise_error ArgumentError
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'requires the file name to not be empty' do
|
15
|
+
expect { file = Template::RequiredFile.new '' }.to raise_error RuntimeError
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'requires the file name to be sanitized' do
|
19
|
+
expect { Template::RequiredFile.new '.what&up'}.to raise_error RuntimeError
|
20
|
+
expect { Template::RequiredFile.new 'not/a/file'}.to raise_error RuntimeError
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'with file.txt' do
|
24
|
+
|
25
|
+
before do
|
26
|
+
@file = Template::RequiredFile.new 'file.txt'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'has a name' do
|
30
|
+
@file.name.should eq 'file.txt'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'has a comment' do
|
34
|
+
@file.comment = 'Comment'
|
35
|
+
@file.comment.should eq 'Comment'
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'takes a directory' do
|
39
|
+
@file.directory = 'images'
|
40
|
+
@file.directory.should eq 'images'
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'has a default directory' do
|
44
|
+
@file.directory.should eq '.'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/spec/template/spec_spec.rb
CHANGED
@@ -114,30 +114,47 @@ describe Template::Spec do
|
|
114
114
|
@template.post_actions = ['git init', 'git add .', 'git commit -m "Initial commit."', 'pod install']
|
115
115
|
@template.post_actions.should eq ['git init', 'git add .', 'git commit -m "Initial commit."', 'pod install']
|
116
116
|
end
|
117
|
+
|
117
118
|
it 'has a token hash' do
|
118
119
|
@template[:PROJECT_ID] = Template::Token.new
|
119
120
|
@template[:PROJECT_ID].should be_an_instance_of(Template::Token)
|
120
121
|
end
|
121
122
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
123
|
+
describe 'token support' do
|
124
|
+
it 'creates a token' do
|
125
|
+
yielded_token = :not_a_token
|
126
|
+
@template.token(:PROJECT_ID) { |t| yielded_token = t }
|
127
|
+
yielded_token.should be_an_instance_of Template::Token
|
128
|
+
end
|
127
129
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
130
|
+
it 'has a blank token' do
|
131
|
+
@template[:BLANK].hidden.should eq true
|
132
|
+
@template[:BLANK].value.should eq ''
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'has a date token' do
|
136
|
+
@template[:DATE].hidden.should eq true
|
137
|
+
@template[:DATE].value.should eq DateTime.now.strftime('%F')
|
138
|
+
end
|
132
139
|
|
133
|
-
|
134
|
-
|
135
|
-
|
140
|
+
it 'has a year token' do
|
141
|
+
@template[:YEAR].hidden.should eq true
|
142
|
+
@template[:YEAR].value.should eq '2014'
|
143
|
+
end
|
136
144
|
end
|
137
145
|
|
138
|
-
|
139
|
-
|
140
|
-
|
146
|
+
describe 'required file support' do
|
147
|
+
|
148
|
+
it 'creates a required file instance' do
|
149
|
+
yielded_file = :not_a_file
|
150
|
+
@template.required_file('file.txt') { |f| yielded_file = f }
|
151
|
+
yielded_file.should be_an_instance_of Template::RequiredFile
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'has no files at the beginning' do
|
155
|
+
@template.required_files.length.should eq 0
|
156
|
+
end
|
157
|
+
|
141
158
|
end
|
142
159
|
|
143
160
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: klipp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric-Paul Lecluse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,84 +28,98 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '10.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '10.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ptools
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.2'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: formatador
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '0.2'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '0.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: colorize
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '0.6'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
82
|
+
version: '0.6'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: grit
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '2.5'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '2.5'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: highline
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.6'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.6'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: zaru
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :runtime
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- -
|
122
|
+
- - ~>
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
description: Klipp, Xcode templates for the rest of us.
|
@@ -131,9 +145,11 @@ files:
|
|
131
145
|
- lib/klipp/parameter_list.rb
|
132
146
|
- lib/klipp/version.rb
|
133
147
|
- lib/template.rb
|
148
|
+
- lib/template/required_file.rb
|
134
149
|
- lib/template/spec.rb
|
135
150
|
- lib/template/token.rb
|
136
151
|
- spec/fixtures/ambiguous-repo/Ambiguous/Ambiguous.klippspec
|
152
|
+
- spec/fixtures/complex-projects/file-requirement/Klippfile-file-requirement
|
137
153
|
- spec/fixtures/projects/Klippfile
|
138
154
|
- spec/fixtures/projects/Klippfile-after-prepare
|
139
155
|
- spec/fixtures/projects/Klippfile-ambiguous
|
@@ -164,12 +180,14 @@ files:
|
|
164
180
|
- spec/fixtures/template-repository/Example/XXPROJECT_IDXX/main.m
|
165
181
|
- spec/fixtures/template-repository/Example/XXPROJECT_IDXX/nl.lproj/Localizable.strings
|
166
182
|
- spec/fixtures/template-repository/Example/XXPROJECT_IDXXTests/XXPROJECT_TITLEXXTests.m
|
183
|
+
- spec/fixtures/template-repository/FileRequirement/FileRequirement.klippspec
|
167
184
|
- spec/fixtures/template-repository/Interactive/Interactive.klippspec
|
168
185
|
- spec/fixtures/template-repository/Interactive/XXSUBJECT_UNDER_TESTXXTests.m
|
169
186
|
- spec/klipp/configuration_spec.rb
|
170
187
|
- spec/klipp/creator_spec.rb
|
171
188
|
- spec/klipp_spec.rb
|
172
189
|
- spec/spec_helper.rb
|
190
|
+
- spec/template/required_file_spec.rb
|
173
191
|
- spec/template/spec_spec.rb
|
174
192
|
- spec/template/token_spec.rb
|
175
193
|
- spec/template_spec.rb
|
@@ -193,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
211
|
version: '0'
|
194
212
|
requirements: []
|
195
213
|
rubyforge_project:
|
196
|
-
rubygems_version: 2.1
|
214
|
+
rubygems_version: 2.2.1
|
197
215
|
signing_key:
|
198
216
|
specification_version: 4
|
199
217
|
summary: Klipp is a command line gem for creating new (Xcode) projects from existing
|
@@ -202,6 +220,7 @@ summary: Klipp is a command line gem for creating new (Xcode) projects from exis
|
|
202
220
|
template project by your own specifications.
|
203
221
|
test_files:
|
204
222
|
- spec/fixtures/ambiguous-repo/Ambiguous/Ambiguous.klippspec
|
223
|
+
- spec/fixtures/complex-projects/file-requirement/Klippfile-file-requirement
|
205
224
|
- spec/fixtures/projects/Klippfile
|
206
225
|
- spec/fixtures/projects/Klippfile-after-prepare
|
207
226
|
- spec/fixtures/projects/Klippfile-ambiguous
|
@@ -232,12 +251,14 @@ test_files:
|
|
232
251
|
- spec/fixtures/template-repository/Example/XXPROJECT_IDXX/main.m
|
233
252
|
- spec/fixtures/template-repository/Example/XXPROJECT_IDXX/nl.lproj/Localizable.strings
|
234
253
|
- spec/fixtures/template-repository/Example/XXPROJECT_IDXXTests/XXPROJECT_TITLEXXTests.m
|
254
|
+
- spec/fixtures/template-repository/FileRequirement/FileRequirement.klippspec
|
235
255
|
- spec/fixtures/template-repository/Interactive/Interactive.klippspec
|
236
256
|
- spec/fixtures/template-repository/Interactive/XXSUBJECT_UNDER_TESTXXTests.m
|
237
257
|
- spec/klipp/configuration_spec.rb
|
238
258
|
- spec/klipp/creator_spec.rb
|
239
259
|
- spec/klipp_spec.rb
|
240
260
|
- spec/spec_helper.rb
|
261
|
+
- spec/template/required_file_spec.rb
|
241
262
|
- spec/template/spec_spec.rb
|
242
263
|
- spec/template/token_spec.rb
|
243
264
|
- spec/template_spec.rb
|