cukedep 0.0.1 → 0.0.3
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 +8 -8
- data/CHANGELOG.md +9 -1
- data/README.md +11 -7
- data/bin/cukedep +2 -1
- data/lib/cukedep.rb +1 -1
- data/lib/cukedep/application.rb +21 -17
- data/lib/cukedep/cli/cmd-line.rb +13 -10
- data/lib/cukedep/config.rb +9 -4
- data/lib/cukedep/constants.rb +1 -1
- data/lib/cukedep/feature-model.rb +31 -19
- data/spec/cukedep/cli/cmd-line_spec.rb +1 -1
- data/templates/rake.erb +1 -3
- metadata +2 -4
- data/lib/cukedep/cli/application.rb +0 -0
- data/lib/macros4cuke.rb +0 -8
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTAzMGZlZWQ2YWQxNzgyYjRiOWFkNWU0MmUxN2E2NjYzNjcwZjRkYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDFmNGNmODNmMjMwZDEyMDFiMDUyYTNmYjIxYTg5NTE1ZmY3YjhlNQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OWI2NmJjYjg5YmUxNjBhMTZmYmIwZDU3OWUyYjIzNjllYjA4NGRlYzk2NGNm
|
10
|
+
NDJmYjI1YWI3ZmQ1MTZkODI3ZWI0ZjI4NjFjNzVkMmNlZjU0MTI5Y2I3ZDMz
|
11
|
+
NTBjYmExYjMyZjY5Yjc3OWI0ZWJhOGM4MTEyNmJkOWJhNzZiZTg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjcyZGI5YjFhNGMzNDlhMjI3ZGY1ZDUyOGQwZmQ4MzgwNWUxMGFkZTA2YmI4
|
14
|
+
Y2VlYjgwYWFmN2EzNWM0ZWQ5YzBiODBmZGEwYzRhMDM4YTk0MWI0OTA5NTQz
|
15
|
+
ZmJjMWQ0YjA3MmU2YzhmZDk5OTA2YzUyY2U5MDM0ZTczY2JhMmI=
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
-
### 0.0.
|
1
|
+
### 0.0.3 / 2013-10-24
|
2
|
+
* [FIX] File `rake.erb`. Removal of pp method call.
|
3
|
+
|
4
|
+
### 0.0.2 / 2013-10-24
|
5
|
+
* [CHANGE] Code cleanup done to fix most code style issues reported by Rubocop.
|
6
|
+
|
7
|
+
* [FEATURE] Initial public working version
|
8
|
+
|
9
|
+
### 0.0.1 / 2013-10-23
|
2
10
|
|
3
11
|
* [FEATURE] Initial public working version
|
data/README.md
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
Cukedep
|
2
2
|
===========
|
3
3
|
[](https://travis-ci.org/famished-tiger/cukedep)
|
4
|
+
[](http://badge.fury.io/rb/cukedep)
|
4
5
|
|
5
6
|
_Handle dependencies between feature file._
|
6
7
|
[Homepage](https://github.com/famished-tiger/cukedep)
|
7
8
|
|
8
|
-
__Cukedep__ is a command-line utility that helps to run feature files in the proper sequence.
|
9
|
+
__Cukedep__ is a command-line utility that helps to run a set feature files in the proper sequence.
|
9
10
|
|
10
11
|
### Highlights ###
|
11
12
|
* Simple syntax to specify dependencies
|
@@ -23,7 +24,7 @@ $[sudo] gem install cukedep
|
|
23
24
|
To check the installation, open a shell/command window
|
24
25
|
and type the command-line:
|
25
26
|
```bash
|
26
|
-
|
27
|
+
cukedep --version
|
27
28
|
```
|
28
29
|
|
29
30
|
You should see the version of cukedep gem.
|
@@ -34,21 +35,21 @@ To get a first taste of how cukedep works, install it first.
|
|
34
35
|
Then go to the root dir of the cukedep gem, then open a shell/command window
|
35
36
|
and type the command-line:
|
36
37
|
```bash
|
37
|
-
|
38
|
+
rake
|
38
39
|
```
|
39
40
|
|
40
41
|
You will see tests running and Cucumber executing a number of feature files.
|
41
42
|
|
42
|
-
To learn more what's happening, go to the ```
|
43
|
+
To learn more what's happening, go to the ```rspec/sample_features``` dir
|
43
44
|
You will notice a number of feature files for a sample application.
|
44
45
|
Stay in that folder and type the following command-line:
|
45
46
|
```bash
|
46
|
-
|
47
|
+
cukedep --project ../../../sample --dry-run
|
47
48
|
```
|
48
49
|
|
49
50
|
You instructed cukedep to do the following:
|
50
51
|
* Read (parse) all the feature files in the current dir.
|
51
|
-
* Resolve the dependencies between the feature files (based on
|
52
|
+
* Resolve the dependencies between the feature files (based on Gherkin @tags with a special format).
|
52
53
|
* Generate a number of dependency reports and drawing.
|
53
54
|
* Generate a rake file that will execute the feature files in the proper sequence for
|
54
55
|
the project located at the relative path ```../../../sample```
|
@@ -56,9 +57,12 @@ the project located at the relative path ```../../../sample```
|
|
56
57
|
To generate all the above files and run the feature files with Cucumber,
|
57
58
|
then retry the command line without the --dry-run option:
|
58
59
|
```bash
|
59
|
-
|
60
|
+
cukedep --project ../../../sample --dry-run
|
60
61
|
```
|
61
62
|
|
63
|
+
### How can I define ###
|
64
|
+
|
65
|
+
|
62
66
|
Copyright
|
63
67
|
---------
|
64
68
|
Copyright (c) 2013, Dimitri Geshef. Cukedep is released under the MIT License see [LICENSE.txt](https://github.com/famished-tiger/Cukedep/blob/master/LICENSE.txt) for details.
|
data/bin/cukedep
CHANGED
@@ -4,11 +4,12 @@
|
|
4
4
|
|
5
5
|
mydir = File.dirname(__FILE__)
|
6
6
|
lib_dir = mydir + '/../lib'
|
7
|
-
$LOAD_PATH.unshift lib_dir unless
|
7
|
+
$LOAD_PATH.unshift lib_dir unless $LOAD_PATH.include?(lib_dir)
|
8
8
|
|
9
9
|
require 'cukedep' # Load the Cukedep::Application class
|
10
10
|
|
11
11
|
# The application's entry point
|
12
12
|
app = Cukedep::Application.new
|
13
13
|
app.start!(ARGV)
|
14
|
+
|
14
15
|
# End of file
|
data/lib/cukedep.rb
CHANGED
data/lib/cukedep/application.rb
CHANGED
@@ -10,62 +10,65 @@ require_relative 'feature-model'
|
|
10
10
|
|
11
11
|
module Cukedep # Module used as a namespace
|
12
12
|
|
13
|
-
# Runner for the Cukedep application
|
13
|
+
# Runner for the Cukedep application.
|
14
14
|
class Application
|
15
15
|
attr_reader(:proj_dir)
|
16
16
|
public
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
# Entry point for the application object.
|
19
|
+
def start!(theCmdLineArgs)
|
20
20
|
options = options_from(theCmdLineArgs)
|
21
|
-
create_default_cfg
|
22
|
-
config = load_cfg
|
21
|
+
create_default_cfg if options[:setup]
|
22
|
+
config = load_cfg
|
23
23
|
|
24
24
|
# Complain if no project dir is specified
|
25
25
|
if config.proj_dir.nil? || config.proj_dir.empty?
|
26
26
|
if options[:project]
|
27
27
|
@proj_dir = options[:project]
|
28
28
|
else
|
29
|
-
|
29
|
+
msg_p1 = "No project dir specified via 'Cukedep::YMLFilename'"
|
30
|
+
msg_p2 = ' nor via --project option.'
|
31
|
+
fail(StandardError, msg_p1 + msg_p2)
|
30
32
|
end
|
31
33
|
else
|
32
34
|
@proj_dir = config.proj_dir
|
33
35
|
end
|
34
36
|
|
35
|
-
feature_files = parse_features
|
37
|
+
feature_files = parse_features
|
36
38
|
|
37
39
|
model = FeatureModel.new(feature_files)
|
38
40
|
generate_files(model)
|
39
|
-
unless options[:
|
40
|
-
rake_cmd =
|
41
|
+
unless options[:dryrun]
|
42
|
+
rake_cmd = 'rake -f cukedep.rake'
|
41
43
|
system(rake_cmd)
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
47
|
protected
|
46
|
-
|
48
|
+
# Retrieve the user-entered command-line options
|
47
49
|
def options_from(theCmdLineArgs)
|
48
50
|
cli = CLI::CmdLine.new
|
49
|
-
|
51
|
+
cli.parse!(theCmdLineArgs.dup)
|
50
52
|
end
|
51
53
|
|
54
|
+
|
52
55
|
# Create a local copy of the .cukedep.yml file, then
|
53
56
|
# stop the application.
|
54
57
|
def create_default_cfg()
|
55
58
|
if File.exist?(Cukedep::YMLFilename)
|
56
59
|
puts "OK to overwrite file #{Cukedep::YMLFilename}."
|
57
60
|
puts '(Y/N)?'
|
58
|
-
answer = $stdin.gets
|
61
|
+
answer = $stdin.gets
|
59
62
|
exit if answer =~ /^\s*[Nn]\s*$/
|
60
63
|
end
|
61
|
-
File
|
64
|
+
File.open(Cukedep::YMLFilename, 'w') { |f| YAML.dump(Config.default, f) }
|
62
65
|
exit
|
63
66
|
end
|
64
67
|
|
65
68
|
# Read the .cukedep.yml file in the current working directory
|
66
69
|
def load_cfg()
|
67
70
|
if File.exist?(Cukedep::YMLFilename)
|
68
|
-
YAML
|
71
|
+
YAML.load_file(Cukedep::YMLFilename)
|
69
72
|
else
|
70
73
|
Config.default
|
71
74
|
end
|
@@ -86,7 +89,7 @@ protected
|
|
86
89
|
# Parse them
|
87
90
|
filenames.each do |fname|
|
88
91
|
puts " #{fname}"
|
89
|
-
File
|
92
|
+
File.open(fname, 'r') { |f| parser.parse(f.read, fname, 0) }
|
90
93
|
end
|
91
94
|
|
92
95
|
return listener.feature_files
|
@@ -95,12 +98,13 @@ protected
|
|
95
98
|
|
96
99
|
def generate_files(aModel)
|
97
100
|
# Sort the feature files by dependency order.
|
98
|
-
aModel.sort_features_by_dep
|
101
|
+
aModel.sort_features_by_dep
|
99
102
|
|
100
103
|
puts "\nGenerating:"
|
101
104
|
|
102
105
|
# Generate CSV files detailing the feature to identifier mapping
|
103
106
|
# and vise versa
|
107
|
+
# TODO: replace hardcoded names by value from config
|
104
108
|
aModel.mapping_reports('feature2id.csv', 'id2feature.csv', true)
|
105
109
|
aModel.draw_dependency_graph('dependencies.dot', true)
|
106
110
|
aModel.generate_rake_tasks('cukedep.rake', proj_dir)
|
@@ -109,4 +113,4 @@ end # class
|
|
109
113
|
|
110
114
|
end # module
|
111
115
|
|
112
|
-
# End of file
|
116
|
+
# End of file
|
data/lib/cukedep/cli/cmd-line.rb
CHANGED
@@ -35,9 +35,10 @@ The command-line options are:
|
|
35
35
|
EOS
|
36
36
|
|
37
37
|
# No argument. Check
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
dry_txt1 = 'Check the feature file dependencies'
|
39
|
+
dry_txt2 = ' without running the feature files.'
|
40
|
+
opts.on(nil, '--dry-run', dry_txt1 + dry_txt2) do
|
41
|
+
options[:dryrun] = true
|
41
42
|
end
|
42
43
|
|
43
44
|
# No argument. Create .cukedep.yml file
|
@@ -47,8 +48,9 @@ EOS
|
|
47
48
|
end
|
48
49
|
|
49
50
|
# Mandatory argument
|
50
|
-
|
51
|
-
|
51
|
+
msg_p1 = 'Run the Cucumber project at given path '
|
52
|
+
msg_p2 = 'with features from current dir.'
|
53
|
+
opts.on('--project PROJ_PATH', msg_p1 + msg_p2) do |project_path|
|
52
54
|
options[:project] = validated_project(project_path)
|
53
55
|
end
|
54
56
|
|
@@ -77,7 +79,7 @@ public
|
|
77
79
|
err_msg << "No argument provided with command line option: #{arg}\n"
|
78
80
|
end
|
79
81
|
err_msg << 'To see the command-line syntax, do:\ncukedep --help'
|
80
|
-
|
82
|
+
raise(StandardError, err_msg)
|
81
83
|
end
|
82
84
|
|
83
85
|
# Some options stop the application
|
@@ -94,11 +96,12 @@ private
|
|
94
96
|
|
95
97
|
# If current dir is /features and project dir is parent of it
|
96
98
|
# then we have an error
|
97
|
-
current_path = Pathname.getwd
|
99
|
+
current_path = Pathname.getwd
|
98
100
|
if current_path.to_s =~ /features$/
|
99
101
|
if current_path.parent == Pathname.new(theProjectPath)
|
100
|
-
|
101
|
-
|
102
|
+
msg_prefix = "Don't place original feature file in 'features'"
|
103
|
+
msg_suffix = ' subdir of project dir.'
|
104
|
+
fail StandardError, msg_prefix + msg_suffix
|
102
105
|
end
|
103
106
|
end
|
104
107
|
|
@@ -112,4 +115,4 @@ end # module
|
|
112
115
|
|
113
116
|
end # module
|
114
117
|
|
115
|
-
# End of file
|
118
|
+
# End of file
|
data/lib/cukedep/config.rb
CHANGED
@@ -19,13 +19,18 @@ Config = Struct.new(
|
|
19
19
|
class Config
|
20
20
|
# Factory method. Build a config object with default settings.
|
21
21
|
def self.default()
|
22
|
-
Config.new(
|
23
|
-
|
24
|
-
'
|
22
|
+
Config.new(
|
23
|
+
nil,
|
24
|
+
FileMetaData.new('feature2id.csv'),
|
25
|
+
FileMetaData.new('feature2id.csv'),
|
26
|
+
FileMetaData.new('dependencies.dot'),
|
27
|
+
'cukedep.rake',
|
28
|
+
[]
|
29
|
+
)
|
25
30
|
end
|
26
31
|
|
27
32
|
end # class
|
28
33
|
|
29
34
|
end # module
|
30
35
|
|
31
|
-
# End of file
|
36
|
+
# End of file
|
data/lib/cukedep/constants.rb
CHANGED
@@ -16,7 +16,9 @@ class FeatureModel
|
|
16
16
|
|
17
17
|
FeatureDependencies = Struct.new(:dependee, :dependents)
|
18
18
|
|
19
|
-
|
19
|
+
# Helper class used internally by FeatureModel class.
|
20
|
+
# Purpose: to try to create a valid dependency graph and perform a
|
21
|
+
# topological sort of the nodes.
|
20
22
|
class DepGraph
|
21
23
|
include TSort # Mix-in module for topological sorting
|
22
24
|
|
@@ -61,7 +63,7 @@ end # class
|
|
61
63
|
# Retrieve the feature file matching the given feature identifiers
|
62
64
|
# theIds one or more Strings, each being one feature identifier
|
63
65
|
def select_by_ids(*theIds)
|
64
|
-
features_by_ids = id2features
|
66
|
+
features_by_ids = id2features
|
65
67
|
selection = theIds.each_with_object([]) do |an_id, sub_result|
|
66
68
|
found_feature = features_by_ids[an_id]
|
67
69
|
if found_feature.nil?
|
@@ -82,7 +84,7 @@ end # class
|
|
82
84
|
def dependency_links()
|
83
85
|
if @dependencies.nil?
|
84
86
|
# Build the mapping: feature identifier => feature
|
85
|
-
features_by_id = id2features
|
87
|
+
features_by_id = id2features
|
86
88
|
|
87
89
|
# Resolve the dependency tags
|
88
90
|
resolve_dependencies(features_by_id)
|
@@ -94,9 +96,9 @@ end # class
|
|
94
96
|
|
95
97
|
# Sort the feature files by dependency order.
|
96
98
|
def sort_features_by_dep()
|
97
|
-
dep_links = dependency_links
|
99
|
+
dep_links = dependency_links
|
98
100
|
graph = DepGraph.new(dep_links)
|
99
|
-
sorted_deps = graph.tsort
|
101
|
+
sorted_deps = graph.tsort
|
100
102
|
|
101
103
|
all_sorted = sorted_deps.map(&:dependee)
|
102
104
|
@sorted_features = all_sorted.reject { |f| f.feature.anonymous? }
|
@@ -142,7 +144,7 @@ end # class
|
|
142
144
|
|
143
145
|
def emit_heading(anIO)
|
144
146
|
dir = File.dirname(File.absolute_path(feature_files[0].filepath))
|
145
|
-
heading
|
147
|
+
heading = <<-EOS
|
146
148
|
// Graph of dependencies of feature files in directory:
|
147
149
|
// '#{dir}'
|
148
150
|
// This file uses the DOT syntax, a free utility from the Graphviz toolset.
|
@@ -166,7 +168,9 @@ EOS
|
|
166
168
|
subgraph island {
|
167
169
|
node [shape = box, style=filled, color=lightgray];
|
168
170
|
EOS
|
169
|
-
feature_files.each_with_index
|
171
|
+
feature_files.each_with_index do |ff, i|
|
172
|
+
draw_node(anIO, ff, i) if ff.feature.anonymous?
|
173
|
+
end
|
170
174
|
|
171
175
|
anIO.puts <<-EOS
|
172
176
|
label = "Isolated features";
|
@@ -175,26 +179,33 @@ EOS
|
|
175
179
|
subgraph dependencies {
|
176
180
|
node [shape = box, fillcolor = none];
|
177
181
|
EOS
|
178
|
-
feature_files.each_with_index
|
182
|
+
feature_files.each_with_index do |ff, i|
|
183
|
+
draw_node(anIO, ff, i) unless ff.feature.anonymous?
|
184
|
+
end
|
179
185
|
anIO.puts <<-EOS
|
180
186
|
label = "Dependencies";
|
181
187
|
}
|
182
188
|
|
183
189
|
// The edges represent dependencies
|
184
190
|
EOS
|
185
|
-
dependencies.each {|a_dep| draw_edge(anIO, a_dep) }
|
191
|
+
dependencies.each { |a_dep| draw_edge(anIO, a_dep) }
|
186
192
|
end
|
187
193
|
|
188
194
|
# Output the closing part of the graph drawing
|
189
195
|
def emit_trailing(anIO)
|
190
|
-
anIO.puts
|
196
|
+
anIO.puts '} // End of graph'
|
191
197
|
end
|
192
198
|
|
193
199
|
# Draw a refinement node in DOT format
|
194
200
|
def draw_node(anIO, aFeatureFile, anIndex)
|
195
201
|
basename = File.basename(aFeatureFile.filepath, '.feature')
|
196
|
-
|
197
|
-
|
202
|
+
its_feature = aFeatureFile.feature
|
203
|
+
if its_feature.anonymous?
|
204
|
+
id_suffix = ''
|
205
|
+
else
|
206
|
+
id_suffix = " -- #{its_feature.identifier}"
|
207
|
+
end
|
208
|
+
anIO.puts %Q| node_#{anIndex} [label = "#{basename}#{id_suffix}"];|
|
198
209
|
end
|
199
210
|
|
200
211
|
# Draw an edge between feature files having dependencies.
|
@@ -212,18 +223,18 @@ EOS
|
|
212
223
|
|
213
224
|
def generate_rake_tasks(rakefile, theProjDir)
|
214
225
|
puts " #{rakefile}"
|
215
|
-
|
216
|
-
template_source = File.read(
|
226
|
+
grandparent_path = Pathname.new(File.dirname(__FILE__)).parent.parent
|
227
|
+
template_source = File.read(grandparent_path + './templates/rake.erb')
|
217
228
|
|
218
229
|
# Create one template engine instance
|
219
230
|
engine = ERB.new(template_source)
|
220
231
|
|
221
|
-
source_dir = File.absolute_path(Dir.getwd
|
232
|
+
source_dir = File.absolute_path(Dir.getwd)
|
222
233
|
proj_dir = File.absolute_path(theProjDir)
|
223
|
-
anonymous = anonymous_features.map {|ff| ff.basename}
|
234
|
+
anonymous = anonymous_features.map { |ff| ff.basename }
|
224
235
|
feature_ids = feature_files.map { |ff| ff.feature.identifier }
|
225
236
|
feature_ids.compact!
|
226
|
-
deps = dependencies.reject {|dep| dep.dependee.feature.anonymous?}
|
237
|
+
deps = dependencies.reject { |dep| dep.dependee.feature.anonymous? }
|
227
238
|
|
228
239
|
# Generate the text representation with given context
|
229
240
|
file_source = engine.result(binding)
|
@@ -266,8 +277,9 @@ EOS
|
|
266
277
|
# Complain when dependency tag refers to an unknown feature
|
267
278
|
dependents = dep_tags.map do |a_tag|
|
268
279
|
unless aMapping.include?(a_tag)
|
269
|
-
|
270
|
-
|
280
|
+
msg_p1 = "Feature with identifier '#{its_id}'"
|
281
|
+
msg_p2 = " depends on unknown feature '#{a_tag}'"
|
282
|
+
fail(StandardError, msg_p1 = msg_p2)
|
271
283
|
end
|
272
284
|
aMapping[a_tag]
|
273
285
|
end
|
@@ -37,7 +37,7 @@ describe CLI::CmdLine do
|
|
37
37
|
|
38
38
|
it 'should accept the dry-run option' do
|
39
39
|
expect { subject.parse!(['--dry-run']) }.not_to raise_error
|
40
|
-
expect(subject.options).to eq({ :
|
40
|
+
expect(subject.options).to eq({ :dryrun => true })
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'should accept the setup option' do
|
data/templates/rake.erb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# File: <%=rakefile%>
|
2
|
-
# Generated by Cukedep <%=Cukedep::Version%>
|
2
|
+
# Generated by Cukedep <%=Cukedep::Version%> on <%=Time.now.strftime('%d/%m/%Y %H:%M:%S')%>
|
3
3
|
|
4
4
|
require 'rake'
|
5
|
-
require 'pp'
|
6
5
|
|
7
6
|
# Run Cucumber via specialized Rake task
|
8
7
|
require 'cucumber/rake/task'
|
@@ -80,7 +79,6 @@ def clean_project_dir(fname_patterns)
|
|
80
79
|
Dir.chdir(CUKE_PROJECT + '/features')
|
81
80
|
fname_patterns.each do |patt|
|
82
81
|
filenames = Dir.glob(patt)
|
83
|
-
pp filenames
|
84
82
|
filenames.each { |fn| FileUtils.remove_file(fn) }
|
85
83
|
end
|
86
84
|
ensure #Always restore previous working dir.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cukedep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dimitri Geshef
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
@@ -102,9 +102,7 @@ files:
|
|
102
102
|
- README.md
|
103
103
|
- bin/cukedep
|
104
104
|
- lib/cukedep.rb
|
105
|
-
- lib/macros4cuke.rb
|
106
105
|
- lib/cukedep/application.rb
|
107
|
-
- lib/cukedep/cli/application.rb
|
108
106
|
- lib/cukedep/cli/cmd-line.rb
|
109
107
|
- lib/cukedep/config.rb
|
110
108
|
- lib/cukedep/constants.rb
|
File without changes
|
data/lib/macros4cuke.rb
DELETED