lucid 0.3.3 → 0.4.0
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/HISTORY.md +13 -9
- data/README.md +2 -6
- data/lib/lucid.rb +22 -3
- data/lib/lucid/{term/ansicolor.rb → ansicolor.rb} +34 -41
- data/lib/lucid/ast.rb +2 -2
- data/lib/lucid/ast/outline_table.rb +2 -2
- data/lib/lucid/ast/{specs.rb → spec.rb} +10 -1
- data/lib/lucid/ast/step.rb +3 -3
- data/lib/lucid/ast/step_invocation.rb +16 -16
- data/lib/lucid/ast/table.rb +1 -1
- data/lib/lucid/ast/{tdl_walker.rb → walker.rb} +15 -16
- data/lib/lucid/cli/app.rb +23 -21
- data/lib/lucid/cli/{configuration.rb → context.rb} +66 -38
- data/lib/lucid/cli/options.rb +59 -40
- data/lib/lucid/{configuration.rb → context.rb} +2 -3
- data/lib/lucid/{runtime.rb → context_loader.rb} +58 -61
- data/lib/lucid/{runtime/facade.rb → facade.rb} +5 -6
- data/lib/lucid/formatter/ansicolor.rb +15 -14
- data/lib/lucid/formatter/debug.rb +1 -1
- data/lib/lucid/formatter/usage.rb +2 -2
- data/lib/lucid/interface.rb +121 -0
- data/lib/lucid/{runtime/interface_io.rb → interface_io.rb} +2 -2
- data/lib/lucid/interface_rb/rb_language.rb +6 -23
- data/lib/lucid/interface_rb/rb_step_definition.rb +1 -2
- data/lib/lucid/{core_ext/instance_exec.rb → lang_extend.rb} +112 -69
- data/lib/lucid/{runtime/orchestrator.rb → orchestrator.rb} +36 -24
- data/lib/lucid/platform.rb +1 -1
- data/lib/lucid/{runtime/results.rb → results.rb} +10 -10
- data/lib/lucid/{tdl_builder.rb → spec_builder.rb} +26 -22
- data/lib/lucid/spec_file.rb +33 -13
- data/lib/lucid/{runtime/specs_loader.rb → spec_loader.rb} +13 -22
- data/lib/lucid/{step_definition_light.rb → step_definition_usage.rb} +2 -4
- data/lib/lucid/step_definitions.rb +4 -4
- data/spec/lucid/app_spec.rb +6 -18
- data/spec/lucid/ast/background_spec.rb +4 -4
- data/spec/lucid/ast/feature_spec.rb +7 -7
- data/spec/lucid/ast/scenario_outline_spec.rb +9 -9
- data/spec/lucid/ast/specs_spec.rb +8 -8
- data/spec/lucid/ast/step_spec.rb +5 -5
- data/spec/lucid/ast/tdl_walker_spec.rb +5 -5
- data/spec/lucid/{configuration_spec.rb → context_spec.rb} +78 -78
- data/spec/lucid/facade_spec.rb +7 -7
- data/spec/lucid/orchestrator_spec.rb +7 -7
- data/spec/lucid/pending_spec.rb +3 -3
- data/spec/lucid/progress_spec.rb +3 -3
- data/spec/lucid/rb_step_definition_spec.rb +4 -4
- data/spec/lucid/results_spec.rb +2 -2
- data/spec/lucid/runtime_spec.rb +7 -7
- metadata +20 -32
- data/bin/lucid-gen +0 -4
- data/lib/lucid/core_ext/proc.rb +0 -36
- data/lib/lucid/core_ext/string.rb +0 -9
- data/lib/lucid/generator.rb +0 -21
- data/lib/lucid/generators/project.rb +0 -64
- data/lib/lucid/generators/project/Gemfile.tt +0 -6
- data/lib/lucid/generators/project/browser-fluent.rb +0 -37
- data/lib/lucid/generators/project/driver-fluent.rb +0 -1
- data/lib/lucid/generators/project/errors.rb +0 -26
- data/lib/lucid/generators/project/events-fluent.rb +0 -33
- data/lib/lucid/interface_methods.rb +0 -125
data/spec/lucid/facade_spec.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module Lucid
|
4
|
-
describe
|
5
|
-
|
4
|
+
describe ContextLoader::Facade do
|
5
|
+
|
6
6
|
let(:interface) {double('interface')}
|
7
|
-
subject {
|
8
|
-
let(:facade) {
|
9
|
-
|
7
|
+
subject { ContextLoader::Orchestrator.new(interface,{}) }
|
8
|
+
let(:facade) { ContextLoader::Facade.new(subject, interface) }
|
9
|
+
|
10
10
|
it 'should produce AST::Table by #table' do
|
11
11
|
facade.table( %{
|
12
12
|
| study | phase |
|
@@ -26,6 +26,6 @@ module Lucid
|
|
26
26
|
str.should be_kind_of(AST::DocString)
|
27
27
|
str.content_type.should eq('ruby')
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
end
|
31
|
-
end
|
31
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module Lucid
|
4
|
-
describe
|
4
|
+
describe ContextLoader::Orchestrator do
|
5
5
|
let(:options) { {} }
|
6
6
|
let(:interface) { double('interface') }
|
7
|
-
subject {
|
7
|
+
subject { ContextLoader::Orchestrator.new(interface, options) }
|
8
8
|
|
9
9
|
let(:dsl) do
|
10
10
|
@rb = subject.load_code_language('rb')
|
@@ -27,7 +27,7 @@ module Lucid
|
|
27
27
|
step_match.should equal(second_step_match)
|
28
28
|
end
|
29
29
|
|
30
|
-
|
30
|
+
|
31
31
|
describe 'resolving test definition matches' do
|
32
32
|
it 'should raise Undefined error when no test definitions match' do
|
33
33
|
lambda do
|
@@ -63,7 +63,7 @@ spec/lucid/orchestrator_spec.rb:\\d+:in `/Simple (.*)/'
|
|
63
63
|
}
|
64
64
|
dsl.Given(/Simple (.*)/) {|phrase|}
|
65
65
|
dsl.Given(/Simple (.*)/) {|phrase|}
|
66
|
-
|
66
|
+
|
67
67
|
lambda do
|
68
68
|
subject.step_match('Simple lucid test')
|
69
69
|
end.should raise_error(Ambiguous, /#{expected_error}/)
|
@@ -108,10 +108,10 @@ spec/lucid/orchestrator_spec.rb:\\d+:in `/Simple (.*)/'
|
|
108
108
|
subject.step_match('Simple lucid test')
|
109
109
|
end.should_not raise_error
|
110
110
|
end
|
111
|
-
|
111
|
+
|
112
112
|
end
|
113
|
-
|
113
|
+
|
114
114
|
end
|
115
115
|
|
116
116
|
end
|
117
|
-
end
|
117
|
+
end
|
data/spec/lucid/pending_spec.rb
CHANGED
@@ -4,7 +4,7 @@ require 'lucid/interface_rb/rb_language'
|
|
4
4
|
module Lucid
|
5
5
|
describe 'Pending' do
|
6
6
|
before(:each) do
|
7
|
-
l = InterfaceRb::RbLanguage.new(
|
7
|
+
l = InterfaceRb::RbLanguage.new(ContextLoader.new)
|
8
8
|
l.begin_rb_scenario(double('scenario').as_null_object)
|
9
9
|
@domain= l.current_domain
|
10
10
|
end
|
@@ -40,6 +40,6 @@ module Lucid
|
|
40
40
|
end
|
41
41
|
}.should raise_error(Lucid::Pending, /TODO/)
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
end
|
45
|
-
end
|
45
|
+
end
|
data/spec/lucid/progress_spec.rb
CHANGED
@@ -4,12 +4,12 @@ require 'lucid/formatter/progress'
|
|
4
4
|
module Lucid
|
5
5
|
module Formatter
|
6
6
|
describe Progress do
|
7
|
-
|
7
|
+
|
8
8
|
before(:each) do
|
9
9
|
Lucid::Term::ANSIColor.coloring = false
|
10
10
|
@out = StringIO.new
|
11
11
|
progress = Lucid::Formatter::Progress.new(double('Runtime'), @out, {})
|
12
|
-
@visitor = Lucid::AST::
|
12
|
+
@visitor = Lucid::AST::Walker.new(nil, [progress])
|
13
13
|
end
|
14
14
|
|
15
15
|
describe 'visiting a table cell value without a status' do
|
@@ -31,4 +31,4 @@ module Lucid
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end
|
@@ -4,7 +4,7 @@ module Lucid
|
|
4
4
|
module InterfaceRb
|
5
5
|
describe RbStepDefinition do
|
6
6
|
let(:interface) { double('interface') }
|
7
|
-
let(:orchestrator) { Lucid::
|
7
|
+
let(:orchestrator) { Lucid::ContextLoader::Orchestrator.new(interface) }
|
8
8
|
let(:rb) { orchestrator.load_code_language('rb') }
|
9
9
|
let(:dsl) do
|
10
10
|
rb
|
@@ -19,7 +19,7 @@ module Lucid
|
|
19
19
|
def run_step(text)
|
20
20
|
orchestrator.step_match(text).invoke(nil)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it 'should allow calling of other steps' do
|
24
24
|
dsl.Given /Outside/ do
|
25
25
|
step 'Inside'
|
@@ -121,7 +121,7 @@ module Lucid
|
|
121
121
|
|
122
122
|
lambda { run_step 'Lucid tests are good' }.should raise_error(RuntimeError, /can't modify frozen String/i)
|
123
123
|
end
|
124
|
-
|
124
|
+
|
125
125
|
end
|
126
126
|
end
|
127
|
-
end
|
127
|
+
end
|
data/spec/lucid/results_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module Lucid
|
4
|
-
describe
|
4
|
+
describe ContextLoader::Results do
|
5
5
|
let(:configuration) {double 'Configuration', :strict? => false}
|
6
6
|
let(:passed_scenario) {double 'Scenario', :status => :passed}
|
7
7
|
let(:failed_scenario) {double 'Scenario', :status => :failed}
|
@@ -76,6 +76,6 @@ module Lucid
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
end
|
81
81
|
end
|
data/spec/lucid/runtime_spec.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module Lucid
|
4
|
-
describe
|
4
|
+
describe ContextLoader do
|
5
5
|
|
6
6
|
let(:options) { {} }
|
7
|
-
subject {
|
7
|
+
subject { ContextLoader.new(options) }
|
8
8
|
|
9
9
|
describe '#specs_paths' do
|
10
10
|
let(:options) { {:paths => ['specs/area1/test.spec', 'specs/area1/area2/test.spec', 'others_specs'] } }
|
@@ -15,13 +15,13 @@ module Lucid
|
|
15
15
|
end
|
16
16
|
|
17
17
|
describe '#configure' do
|
18
|
-
let(:orchestrator) { double(
|
19
|
-
let(:results) { double(
|
18
|
+
let(:orchestrator) { double(ContextLoader::Orchestrator).as_null_object }
|
19
|
+
let(:results) { double(ContextLoader::Results).as_null_object }
|
20
20
|
let(:new_config) { double('New Configuration') }
|
21
21
|
|
22
22
|
before(:each) do
|
23
|
-
|
24
|
-
|
23
|
+
ContextLoader::Orchestrator.stub(:new => orchestrator)
|
24
|
+
ContextLoader::Results.stub(:new => results)
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'tells the orchestrator and results about the new configuration' do
|
@@ -35,4 +35,4 @@ module Lucid
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
|
-
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Nyman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,7 +108,6 @@ description: |2
|
|
108
108
|
email: jeffnyman@gmail.com
|
109
109
|
executables:
|
110
110
|
- lucid
|
111
|
-
- lucid-gen
|
112
111
|
extensions: []
|
113
112
|
extra_rdoc_files: []
|
114
113
|
files:
|
@@ -120,8 +119,8 @@ files:
|
|
120
119
|
- README.md
|
121
120
|
- Rakefile
|
122
121
|
- bin/lucid
|
123
|
-
- bin/lucid-gen
|
124
122
|
- lib/lucid.rb
|
123
|
+
- lib/lucid/ansicolor.rb
|
125
124
|
- lib/lucid/ast.rb
|
126
125
|
- lib/lucid/ast/background.rb
|
127
126
|
- lib/lucid/ast/comment.rb
|
@@ -136,7 +135,7 @@ files:
|
|
136
135
|
- lib/lucid/ast/outline_table.rb
|
137
136
|
- lib/lucid/ast/scenario.rb
|
138
137
|
- lib/lucid/ast/scenario_outline.rb
|
139
|
-
- lib/lucid/ast/
|
138
|
+
- lib/lucid/ast/spec.rb
|
140
139
|
- lib/lucid/ast/step.rb
|
141
140
|
- lib/lucid/ast/step_collection.rb
|
142
141
|
- lib/lucid/ast/step_invocation.rb
|
@@ -144,16 +143,15 @@ files:
|
|
144
143
|
- lib/lucid/ast/step_result.rb
|
145
144
|
- lib/lucid/ast/table.rb
|
146
145
|
- lib/lucid/ast/tags.rb
|
147
|
-
- lib/lucid/ast/
|
146
|
+
- lib/lucid/ast/walker.rb
|
148
147
|
- lib/lucid/cli/app.rb
|
149
|
-
- lib/lucid/cli/
|
148
|
+
- lib/lucid/cli/context.rb
|
150
149
|
- lib/lucid/cli/options.rb
|
151
150
|
- lib/lucid/cli/profile.rb
|
152
|
-
- lib/lucid/
|
153
|
-
- lib/lucid/
|
154
|
-
- lib/lucid/core_ext/proc.rb
|
155
|
-
- lib/lucid/core_ext/string.rb
|
151
|
+
- lib/lucid/context.rb
|
152
|
+
- lib/lucid/context_loader.rb
|
156
153
|
- lib/lucid/errors.rb
|
154
|
+
- lib/lucid/facade.rb
|
157
155
|
- lib/lucid/factory.rb
|
158
156
|
- lib/lucid/formatter/ansicolor.rb
|
159
157
|
- lib/lucid/formatter/condensed.rb
|
@@ -179,15 +177,8 @@ files:
|
|
179
177
|
- lib/lucid/formatter/testdefs.rb
|
180
178
|
- lib/lucid/formatter/unicode.rb
|
181
179
|
- lib/lucid/formatter/usage.rb
|
182
|
-
- lib/lucid/generator.rb
|
183
|
-
- lib/lucid/generators/project.rb
|
184
|
-
- lib/lucid/generators/project/Gemfile.tt
|
185
|
-
- lib/lucid/generators/project/browser-fluent.rb
|
186
|
-
- lib/lucid/generators/project/driver-fluent.rb
|
187
|
-
- lib/lucid/generators/project/errors.rb
|
188
|
-
- lib/lucid/generators/project/events-fluent.rb
|
189
180
|
- lib/lucid/interface.rb
|
190
|
-
- lib/lucid/
|
181
|
+
- lib/lucid/interface_io.rb
|
191
182
|
- lib/lucid/interface_rb/matcher.rb
|
192
183
|
- lib/lucid/interface_rb/rb_hook.rb
|
193
184
|
- lib/lucid/interface_rb/rb_language.rb
|
@@ -196,14 +187,11 @@ files:
|
|
196
187
|
- lib/lucid/interface_rb/rb_transform.rb
|
197
188
|
- lib/lucid/interface_rb/rb_world.rb
|
198
189
|
- lib/lucid/interface_rb/regexp_argument_matcher.rb
|
190
|
+
- lib/lucid/lang_extend.rb
|
199
191
|
- lib/lucid/load_path.rb
|
192
|
+
- lib/lucid/orchestrator.rb
|
200
193
|
- lib/lucid/platform.rb
|
201
|
-
- lib/lucid/
|
202
|
-
- lib/lucid/runtime/facade.rb
|
203
|
-
- lib/lucid/runtime/interface_io.rb
|
204
|
-
- lib/lucid/runtime/orchestrator.rb
|
205
|
-
- lib/lucid/runtime/results.rb
|
206
|
-
- lib/lucid/runtime/specs_loader.rb
|
194
|
+
- lib/lucid/results.rb
|
207
195
|
- lib/lucid/sequence.rb
|
208
196
|
- lib/lucid/sequence/sequence_errors.rb
|
209
197
|
- lib/lucid/sequence/sequence_group.rb
|
@@ -211,12 +199,12 @@ files:
|
|
211
199
|
- lib/lucid/sequence/sequence_steps.rb
|
212
200
|
- lib/lucid/sequence/sequence_support.rb
|
213
201
|
- lib/lucid/sequence/sequence_template.rb
|
202
|
+
- lib/lucid/spec_builder.rb
|
214
203
|
- lib/lucid/spec_file.rb
|
215
|
-
- lib/lucid/
|
204
|
+
- lib/lucid/spec_loader.rb
|
205
|
+
- lib/lucid/step_definition_usage.rb
|
216
206
|
- lib/lucid/step_definitions.rb
|
217
207
|
- lib/lucid/step_match.rb
|
218
|
-
- lib/lucid/tdl_builder.rb
|
219
|
-
- lib/lucid/term/ansicolor.rb
|
220
208
|
- lib/lucid/unit.rb
|
221
209
|
- lucid.gemspec
|
222
210
|
- spec/lucid/ansicolor_spec.rb
|
@@ -232,7 +220,7 @@ files:
|
|
232
220
|
- spec/lucid/ast/table_spec.rb
|
233
221
|
- spec/lucid/ast/tdl_factory.rb
|
234
222
|
- spec/lucid/ast/tdl_walker_spec.rb
|
235
|
-
- spec/lucid/
|
223
|
+
- spec/lucid/context_spec.rb
|
236
224
|
- spec/lucid/duration_spec.rb
|
237
225
|
- spec/lucid/facade_spec.rb
|
238
226
|
- spec/lucid/factory_spec.rb
|
@@ -260,7 +248,7 @@ licenses:
|
|
260
248
|
- MIT
|
261
249
|
metadata: {}
|
262
250
|
post_install_message: "\n(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)\n\n
|
263
|
-
\ Lucid 0.
|
251
|
+
\ Lucid 0.4.0 has been installed.\n\n Run the following command to get help:\n
|
264
252
|
\ lucid --help\n\n Information on Lucid can be found under the 'lucid'\n category
|
265
253
|
at:\n http://testerstories.com/category/lucid/\n\n(::) (::) (::) (::) (::) (::)
|
266
254
|
(::) (::) (::) (::) (::) (::)\n "
|
@@ -279,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
279
267
|
version: 1.6.1
|
280
268
|
requirements: []
|
281
269
|
rubyforge_project:
|
282
|
-
rubygems_version: 2.
|
270
|
+
rubygems_version: 2.1.11
|
283
271
|
signing_key:
|
284
272
|
specification_version: 4
|
285
273
|
summary: Test Description Language Specification and Execution Engine
|
@@ -297,7 +285,7 @@ test_files:
|
|
297
285
|
- spec/lucid/ast/table_spec.rb
|
298
286
|
- spec/lucid/ast/tdl_factory.rb
|
299
287
|
- spec/lucid/ast/tdl_walker_spec.rb
|
300
|
-
- spec/lucid/
|
288
|
+
- spec/lucid/context_spec.rb
|
301
289
|
- spec/lucid/duration_spec.rb
|
302
290
|
- spec/lucid/facade_spec.rb
|
303
291
|
- spec/lucid/factory_spec.rb
|
data/bin/lucid-gen
DELETED
data/lib/lucid/core_ext/proc.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# Proc extension to get more location info out of a proc
|
2
|
-
require 'lucid/platform'
|
3
|
-
class Proc #:nodoc:
|
4
|
-
PROC_PATTERN = /[\d\w]+@(.+):(\d+).*>/
|
5
|
-
PWD = Dir.pwd
|
6
|
-
|
7
|
-
def to_comment_line
|
8
|
-
"# #{file_colon_line}"
|
9
|
-
end
|
10
|
-
|
11
|
-
def backtrace_line(name)
|
12
|
-
"#{file_colon_line}:in `#{name}'"
|
13
|
-
end
|
14
|
-
|
15
|
-
if Proc.new{}.to_s =~ PROC_PATTERN
|
16
|
-
def file_colon_line
|
17
|
-
path, line = *to_s.match(PROC_PATTERN)[1..2]
|
18
|
-
path = File.expand_path(path)
|
19
|
-
pwd = File.expand_path(PWD)
|
20
|
-
pwd.force_encoding(path.encoding)
|
21
|
-
if path.index(pwd)
|
22
|
-
path = path[pwd.length+1..-1]
|
23
|
-
elsif path =~ /.*\/gems\/(.*\.rb)$/
|
24
|
-
path = $1
|
25
|
-
end
|
26
|
-
"#{path}:#{line}"
|
27
|
-
end
|
28
|
-
else
|
29
|
-
# This Ruby implementation doesn't implement Proc#to_s correctly
|
30
|
-
STDERR.puts '*** THIS RUBY IMPLEMENTATION DOES NOT REPORT FILE AND LINE FOR PROCS ***'
|
31
|
-
|
32
|
-
def file_colon_line
|
33
|
-
'UNKNOWN:-1'
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/lib/lucid/generator.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'thor'
|
2
|
-
require 'lucid/generators/project'
|
3
|
-
|
4
|
-
module Lucid
|
5
|
-
class Generator < Thor
|
6
|
-
desc 'project NAME', 'Create a new project.'
|
7
|
-
|
8
|
-
#method_option :browser, aliases: "-b", type: :boolean, desc: "Use for browser-based testing."
|
9
|
-
method_option :driver, aliases: '-d', type: :string, required: false, desc: "Framework driver to use. (Default value is 'fluent'.)"
|
10
|
-
|
11
|
-
def project(name)
|
12
|
-
puts "Name of project: #{name}"
|
13
|
-
|
14
|
-
driver = options[:driver].nil? ? 'fluent' : options[:driver]
|
15
|
-
#browser = options[:browser] == true ? 'true' : 'false'
|
16
|
-
|
17
|
-
#Lucid::Generators::Project.start([name, browser, driver])
|
18
|
-
Lucid::Generators::Project.start([name, driver])
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
require 'thor/group'
|
2
|
-
|
3
|
-
module Lucid
|
4
|
-
module Generators
|
5
|
-
class Project < Thor::Group
|
6
|
-
include Thor::Actions
|
7
|
-
|
8
|
-
argument :name, type: :string, desc: 'Name of the project.'
|
9
|
-
argument :driver, type: :string, desc: 'Framework driver to use.'
|
10
|
-
|
11
|
-
desc 'Generates a project structure.'
|
12
|
-
|
13
|
-
def self.source_root
|
14
|
-
File.dirname(__FILE__) + '/project'
|
15
|
-
end
|
16
|
-
|
17
|
-
def spit_back_values
|
18
|
-
puts "Create project '#{name}' using #{driver}."
|
19
|
-
end
|
20
|
-
|
21
|
-
def create_project_directory
|
22
|
-
empty_directory(name)
|
23
|
-
end
|
24
|
-
|
25
|
-
def create_project_structure
|
26
|
-
empty_directory("#{name}/specs")
|
27
|
-
empty_directory("#{name}/common")
|
28
|
-
empty_directory("#{name}/common/helpers")
|
29
|
-
empty_directory("#{name}/common/support")
|
30
|
-
empty_directory("#{name}/common/config")
|
31
|
-
empty_directory("#{name}/common/data")
|
32
|
-
empty_directory("#{name}/steps")
|
33
|
-
empty_directory("#{name}/pages")
|
34
|
-
end
|
35
|
-
|
36
|
-
def copy_errors
|
37
|
-
copy_file 'errors.rb', "#{name}/common/support/errors.rb"
|
38
|
-
end
|
39
|
-
|
40
|
-
def copy_browser
|
41
|
-
if driver.downcase == 'fluent'
|
42
|
-
copy_file 'browser-fluent.rb', "#{name}/common/support/browser.rb"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def copy_driver
|
47
|
-
if driver.downcase == 'fluent'
|
48
|
-
copy_file 'driver-fluent.rb', "#{name}/common/support/driver.rb"
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def copy_events
|
53
|
-
if driver.downcase == 'fluent'
|
54
|
-
copy_file 'events-fluent.rb', "#{name}/common/support/events.rb"
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def copy_gemfile
|
59
|
-
template 'Gemfile.tt', "#{name}/Gemfile"
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|