cukedep 0.1.05 → 0.1.06
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +4 -1
- data/lib/cukedep/application.rb +8 -4
- data/lib/cukedep/cli/cmd-line.rb +5 -3
- data/lib/cukedep/config.rb +5 -5
- data/lib/cukedep/constants.rb +1 -1
- data/lib/cukedep/cuke-runner.rb +16 -15
- data/lib/cukedep/customization.rb +2 -2
- data/spec/cukedep/sample_features/cukedep.rake +6 -2
- data/spec/cukedep/sample_features/dependencies.dot +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YTRiZDA4ZDFhOWVkMjQ4ZGZiZTEyMzZmMzZmNjNiZjkyOWU3NDBjYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
N2UzNWJlOWMwYWIwNjY4ZjA1YTcxMGNjODc0NTUzMDk1MmQwYWY0Mg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzI5N2VjZTVmMTg2ZWM3YTM2M2JjMmYwZDE0ODhjYzJiNTM3ZmI2NTEwYjU1
|
10
|
+
OTUzMDEwNTQ2NTAxMjQ0MjA0MmExNTg3Y2UwOTc1ZTY0MzM3ZWU2ZWM5ZGU1
|
11
|
+
OTc4ZGU2N2VlNGQ0NDUwOTQ1ZTMxY2E0ZDIxMzExYWNhZmU2NGM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MWMyMmU4MjczMWM4YmUwMDJlMTlhZWI1MTg0ZDY0NjkyNDNhOTJmYjFmNjdk
|
14
|
+
ZDIyNDgxZjAzNTZmYmQyM2I3OTc5YTU0ZTBkNjgxN2RhMzFhYzU2ZTQ3NGQz
|
15
|
+
NTYyYjg4Y2VmMjU4M2I0ZWFhODQ1NGMyMTk1MzIzNmI2NWFlODk=
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
### 0.1.
|
1
|
+
### 0.1.06 / 2014-02-20
|
2
|
+
* [CHANGE] Round of code style improvement complete.
|
3
|
+
|
4
|
+
### 0.1.05 / 2014-02-19
|
2
5
|
* [CHANGE] File `.rubocop.yml`. Updated, cop EmptyLinesAroundBody disabled.
|
3
6
|
* [CHANGE] Style of several /lib files improved: `feature-model`, `feature-rep`, `file-action`, `gherkin-facade`, `hook-dsl`, `sandbox`.
|
4
7
|
|
data/lib/cukedep/application.rb
CHANGED
@@ -12,7 +12,8 @@ module Cukedep # Module used as a namespace
|
|
12
12
|
# Runner for the Cukedep application.
|
13
13
|
class Application
|
14
14
|
attr_reader(:proj_dir)
|
15
|
-
|
15
|
+
|
16
|
+
public
|
16
17
|
|
17
18
|
# Entry point for the application object.
|
18
19
|
def run!(theCmdLineArgs)
|
@@ -44,7 +45,8 @@ public
|
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
47
|
-
protected
|
48
|
+
protected
|
49
|
+
|
48
50
|
# Retrieve the user-entered command-line options
|
49
51
|
def options_from(theCmdLineArgs)
|
50
52
|
cli = CLI::CmdLine.new
|
@@ -97,8 +99,10 @@ protected
|
|
97
99
|
|
98
100
|
# Generate CSV files detailing the feature to identifier mapping
|
99
101
|
# and vise versa
|
100
|
-
# TODO: replace
|
101
|
-
|
102
|
+
# TODO: replace hard-coded names by value from config
|
103
|
+
feature2id_report = aConfig.feature2id.name
|
104
|
+
id2feature_report = aConfig.id2feature.name
|
105
|
+
aModel.mapping_reports(feature2id_report, id2feature_report, true)
|
102
106
|
aModel.draw_dependency_graph(aConfig.graph_file.name, true)
|
103
107
|
aModel.generate_rake_tasks(aConfig.rake_file, proj_dir)
|
104
108
|
end
|
data/lib/cukedep/cli/cmd-line.rb
CHANGED
@@ -26,7 +26,7 @@ class CmdLine
|
|
26
26
|
|
27
27
|
# Constructor.
|
28
28
|
def initialize()
|
29
|
-
@options = {
|
29
|
+
@options = {}
|
30
30
|
|
31
31
|
@parser = OptionParser.new do |opts|
|
32
32
|
opts.banner = <<-EOS
|
@@ -68,7 +68,8 @@ EOS
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
public
|
71
|
+
public
|
72
|
+
|
72
73
|
# Perform the command-line parsing
|
73
74
|
def parse!(theCmdLineArgs)
|
74
75
|
begin
|
@@ -88,7 +89,8 @@ public
|
|
88
89
|
return options
|
89
90
|
end
|
90
91
|
|
91
|
-
private
|
92
|
+
private
|
93
|
+
|
92
94
|
def validated_project(theProjectPath)
|
93
95
|
unless Dir.exist?(theProjectPath)
|
94
96
|
fail StandardError, "Cannot find the directory '#{theProjectPath}'."
|
data/lib/cukedep/config.rb
CHANGED
@@ -44,18 +44,18 @@ class Config
|
|
44
44
|
|
45
45
|
return instance
|
46
46
|
end
|
47
|
-
|
48
|
-
|
47
|
+
|
48
|
+
|
49
49
|
# Read the YAML file with specified name from the current working directory.
|
50
50
|
# If that file does not exist, then return an instance with default values.
|
51
51
|
def self.load_cfg(filename)
|
52
52
|
# TODO: validation
|
53
|
-
instance = File.exist?(filename) ? YAML.load_file(filename) :
|
54
|
-
|
53
|
+
instance = File.exist?(filename) ? YAML.load_file(filename) : default
|
54
|
+
|
55
55
|
return instance
|
56
56
|
end
|
57
57
|
|
58
|
-
|
58
|
+
|
59
59
|
# Save the Config object to a YAML file.
|
60
60
|
def write(filename)
|
61
61
|
File.open(filename, 'w') { |f| YAML.dump(self, f) }
|
data/lib/cukedep/constants.rb
CHANGED
data/lib/cukedep/cuke-runner.rb
CHANGED
@@ -36,7 +36,7 @@ module Cukedep # This module is used as a namespace
|
|
36
36
|
class CukeRunner
|
37
37
|
# The current state of the runner.
|
38
38
|
attr_reader(:state)
|
39
|
-
|
39
|
+
|
40
40
|
# The absolute path of the root's project directory
|
41
41
|
attr_reader(:proj_dir)
|
42
42
|
attr_reader(:base_dir)
|
@@ -51,14 +51,14 @@ class CukeRunner
|
|
51
51
|
@proj_dir = validated_proj_dir(projectDir)
|
52
52
|
@config = aConfig
|
53
53
|
@handlers = Customization.new.build_handlers(baseDir)
|
54
|
-
|
54
|
+
|
55
55
|
@state = :Initialized
|
56
56
|
end
|
57
57
|
|
58
58
|
# Launch Cucumber in the project directory.
|
59
59
|
def invoke()
|
60
60
|
options = [] # TODO: retrieve Cucumber options
|
61
|
-
orig_dir = Dir.getwd
|
61
|
+
orig_dir = Dir.getwd
|
62
62
|
Dir.chdir(proj_dir)
|
63
63
|
|
64
64
|
begin
|
@@ -66,7 +66,7 @@ class CukeRunner
|
|
66
66
|
t.cucumber_opts = options
|
67
67
|
end
|
68
68
|
|
69
|
-
cuke_task.runner.run
|
69
|
+
cuke_task.runner.run
|
70
70
|
rescue SystemExit => exc # Cucumber reports a failure.
|
71
71
|
raise StandardError, "Cucumber exited with status #{exc.status}"
|
72
72
|
ensure
|
@@ -86,7 +86,7 @@ class CukeRunner
|
|
86
86
|
|
87
87
|
# Execute before all hook code
|
88
88
|
run_code_block
|
89
|
-
|
89
|
+
|
90
90
|
# Execute file actions
|
91
91
|
builtin_actions = ActionTriplet.builtin(:before_all)
|
92
92
|
custom_actions = ActionTriplet.new(config.before_all_f_actions)
|
@@ -108,7 +108,7 @@ class CukeRunner
|
|
108
108
|
builtin_actions = ActionTriplet.builtin(:after_all)
|
109
109
|
custom_actions = ActionTriplet.new(config.after_all_f_actions)
|
110
110
|
run_triplets([builtin_actions, custom_actions])
|
111
|
-
|
111
|
+
|
112
112
|
# Execute before all hook code
|
113
113
|
run_code_block
|
114
114
|
@state = :Complete
|
@@ -124,20 +124,21 @@ class CukeRunner
|
|
124
124
|
|
125
125
|
|
126
126
|
private
|
127
|
+
|
127
128
|
def validated_proj_dir(projectDir)
|
128
129
|
path = Pathname.new(projectDir)
|
129
130
|
path = path.expand_path if path.relative?
|
130
131
|
unless path.exist?
|
131
|
-
|
132
|
+
fail StandardError, "No such project path: '#{path}'"
|
132
133
|
end
|
133
|
-
|
134
|
+
|
134
135
|
return path.to_s
|
135
136
|
end
|
136
|
-
|
137
|
+
|
137
138
|
def expected_state(aState)
|
138
139
|
unless state == aState
|
139
140
|
msg = "expected state was '#{aState}' instead of '#{state}'."
|
140
|
-
|
141
|
+
fail StandardError, msg
|
141
142
|
end
|
142
143
|
end
|
143
144
|
|
@@ -179,18 +180,18 @@ class CukeRunner
|
|
179
180
|
# Do all copy actions...
|
180
181
|
all_triplets.each { |t| t.copy_action.run!(base_dir, proj_dir) }
|
181
182
|
end
|
182
|
-
|
183
|
+
|
183
184
|
|
184
185
|
def run_code_block(*args)
|
185
186
|
# Retrieve the name of the parent method.
|
186
|
-
parent_mth = (caller[0].sub(/^(.+):in (.+)$/,
|
187
|
+
parent_mth = (caller[0].sub(/^(.+):in (.+)$/, '\2'))[1..-2]
|
187
188
|
kind, scope = parent_mth.split('_')
|
188
189
|
hook_kind = (kind + '_hooks')
|
189
|
-
|
190
|
+
|
190
191
|
kode = handlers[hook_kind.to_sym][scope.to_sym]
|
191
192
|
unless kode.nil?
|
192
193
|
safe_args = args.map { |one_arg| one_arg.dup.freeze }
|
193
|
-
kode.call(*safe_args)
|
194
|
+
kode.call(*safe_args)
|
194
195
|
end
|
195
196
|
end
|
196
197
|
|
@@ -199,4 +200,4 @@ end # class
|
|
199
200
|
|
200
201
|
end # module
|
201
202
|
|
202
|
-
# End of file
|
203
|
+
# End of file
|
@@ -19,7 +19,7 @@ module Cukedep # This module is used as a namespace
|
|
19
19
|
obj.extend(HookDSL)
|
20
20
|
hook_source = File.read(filepath)
|
21
21
|
obj.instance_eval(hook_source)
|
22
|
-
handlers = {
|
22
|
+
handlers = {
|
23
23
|
before_hooks: obj.before_hooks,
|
24
24
|
after_hooks: obj.after_hooks
|
25
25
|
}
|
@@ -32,4 +32,4 @@ module Cukedep # This module is used as a namespace
|
|
32
32
|
|
33
33
|
end # module
|
34
34
|
|
35
|
-
# End of file
|
35
|
+
# End of file
|
@@ -1,8 +1,12 @@
|
|
1
1
|
# File: cukedep.rake
|
2
|
-
# Generated by Cukedep 0.1.
|
2
|
+
# Generated by Cukedep 0.1.05 on 20/02/2014 20:38:27
|
3
3
|
|
4
4
|
require 'rake'
|
5
|
-
|
5
|
+
|
6
|
+
|
7
|
+
# Use development codebase
|
8
|
+
require_relative '../../../lib/cukedep/file-action'
|
9
|
+
|
6
10
|
|
7
11
|
# Run Cucumber via specialized Rake task
|
8
12
|
require 'cucumber/rake/task'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
// 'C:/Ruby193/lib/ruby/site_ruby/Cukedep/spec/cukedep/sample_features'
|
3
3
|
// This file uses the DOT syntax, a free utility from the Graphviz toolset.
|
4
4
|
// Graphviz is available at: www.graphviz.org
|
5
|
-
// File generated on
|
5
|
+
// File generated on Thu Feb 20 20:38:27 2014.
|
6
6
|
|
7
7
|
digraph g {
|
8
8
|
size = "7, 11"; // Dimensions in inches...
|