spinach 0.8.10 → 0.9.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/.ruby-version +1 -1
- data/.travis.yml +4 -5
- data/Gemfile +0 -13
- data/README.markdown +13 -17
- data/lib/spinach/capybara.rb +0 -24
- data/lib/spinach/cli.rb +5 -4
- data/lib/spinach/feature.rb +3 -3
- data/lib/spinach/frameworks/minitest.rb +10 -1
- data/lib/spinach/generators.rb +3 -0
- data/lib/spinach/generators/feature_generator.rb +11 -2
- data/lib/spinach/runner.rb +19 -9
- data/lib/spinach/version.rb +1 -1
- data/test/spinach/cli_test.rb +23 -3
- data/test/spinach/frameworks/minitest_test.rb +8 -0
- data/test/spinach/runner_test.rb +44 -1
- metadata +34 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c9af04ac6ce809e1d3f867afe57d007b58ddc20
|
4
|
+
data.tar.gz: a663f71bcb7c7e2cd1ba9345e28f82be82019e58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e0bda8c1296cce5b934ababdb573ef6a46577aef3a4b821d56f9bcf9b3b2e2fc647d24f23056d838531c44dd489bcc51b0eb02c75d0e9885ca4f3cad09260de
|
7
|
+
data.tar.gz: e135c2368013b2bfab39c613ba5a6d075c5eee3ee803bddce30e12b857fd6d2486ddbf184f7e2f561ebba83932e316a8758d1ae5319d5e1b49c48a6a59253cb3
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1
|
1
|
+
2.3.1
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -5,19 +5,6 @@ gemspec
|
|
5
5
|
|
6
6
|
gem 'coveralls', require: false
|
7
7
|
|
8
|
-
group :test do
|
9
|
-
gem 'guard'
|
10
|
-
gem 'guard-minitest'
|
11
|
-
gem 'guard-spinach'
|
12
|
-
end
|
13
|
-
|
14
|
-
group :darwin do
|
15
|
-
gem 'rb-fsevent'
|
16
|
-
gem 'growl'
|
17
|
-
end
|
18
|
-
|
19
8
|
group :docs do
|
20
9
|
gem 'yard'
|
21
10
|
end
|
22
|
-
|
23
|
-
gem 'rubysl', :platforms => :rbx
|
data/README.markdown
CHANGED
@@ -4,8 +4,6 @@
|
|
4
4
|
[](http://gemnasium.com/codegram/spinach)
|
5
5
|
[](https://coveralls.io/r/codegram/spinach)
|
6
6
|
|
7
|
-
**Join a live discussion on Gitter**: [](https://gitter.im/codegram/spinach)
|
8
|
-
|
9
7
|
Spinach is a high-level BDD framework that leverages the expressive
|
10
8
|
[Gherkin language][gherkin] (used by [Cucumber][cucumber]) to help you define
|
11
9
|
executable specifications of your application or library's acceptance criteria.
|
@@ -18,11 +16,7 @@ Conceived as an alternative to Cucumber, here are some of its design goals:
|
|
18
16
|
* Step reusability: In case you want to reuse steps across features, you can
|
19
17
|
always wrap those in plain ol' Ruby modules.
|
20
18
|
|
21
|
-
Spinach is tested against **
|
22
|
-
and **Rubinius 2.2+**.
|
23
|
-
|
24
|
-
We are not planning to make it compatible with MRI 1.8.7 since, you know, this
|
25
|
-
would be irresponsible :)
|
19
|
+
Spinach is tested against **2.0, 2.1, 2.2 and 2.3** as well as **JRuby 9000**.
|
26
20
|
|
27
21
|
## Getting started
|
28
22
|
|
@@ -271,7 +265,7 @@ end
|
|
271
265
|
|
272
266
|
Full hook documentation is here:
|
273
267
|
|
274
|
-
[Spinach's hook documentation
|
268
|
+
[Spinach's hook documentation](https://github.com/codegram/spinach/blob/master/lib/spinach/hooks.rb)
|
275
269
|
|
276
270
|
## Local Before and After Hooks
|
277
271
|
|
@@ -302,9 +296,10 @@ You can specify them when calling the `spinach` binary:
|
|
302
296
|
|
303
297
|
When no reporter is specified, `stdout` will be used by default.
|
304
298
|
|
305
|
-
|
299
|
+
Other reporters:
|
306
300
|
|
307
|
-
* [spinach-console-reporter]
|
301
|
+
* For a console reporter with no colors, try [spinach-console-reporter][spinach-console-reporter] (to be used with Jenkins)
|
302
|
+
* For a rerun reporter, try [spinach-rerun-reporter][spinach-rerun-reporter] (writes failed scenarios in a file)
|
308
303
|
|
309
304
|
## Wanna use it with Rails 3?
|
310
305
|
|
@@ -326,7 +321,8 @@ Check out our [spinach-sinatra demo](https://github.com/codegram/spinach-sinatra
|
|
326
321
|
|
327
322
|
* [guard-spinach](http://github.com/codegram/guard-spinach)
|
328
323
|
* [spinach-rails](http://github.com/codegram/spinach-rails)
|
329
|
-
* [spinach-console-reporter]
|
324
|
+
* [spinach-console-reporter][spinach-console-reporter] (to be used with Jenkins)
|
325
|
+
* [spinach-rerun-reporter][spinach-rerun-reporter] (writes failed scenarios in a file)
|
330
326
|
* [spring-commands-spinach](https://github.com/jvanbaarsen/spring-commands-spinach) (to be used with spring)
|
331
327
|
|
332
328
|
### Demos
|
@@ -351,13 +347,13 @@ You can easily contribute to Spinach. Its codebase is simple and
|
|
351
347
|
in a commit by itself I can ignore when I pull.
|
352
348
|
* Send me a pull request. Bonus points for topic branches.
|
353
349
|
|
354
|
-
[gherkin]: http://github.com/codegram/gherkin-ruby
|
355
|
-
[cucumber]: http://github.com/cucumber/cucumber
|
356
|
-
[documentation]: http://rubydoc.info/github/codegram/spinach/master/frames
|
357
|
-
|
358
350
|
## License
|
359
351
|
|
360
|
-
MIT (Expat) License. Copyright 2011-
|
352
|
+
MIT (Expat) License. Copyright 2011-2016 [Codegram Technologies](http://codegram.com)
|
361
353
|
|
362
|
-
[](https://bitdeli.com/free "Bitdeli Badge")
|
363
354
|
|
355
|
+
[gherkin]: http://github.com/codegram/gherkin-ruby
|
356
|
+
[cucumber]: http://github.com/cucumber/cucumber
|
357
|
+
[documentation]: http://rubydoc.info/github/codegram/spinach/master/frames
|
358
|
+
[spinach-console-reporter]: https://github.com/ywen/spinach-console-reporter
|
359
|
+
[spinach-rerun-reporter]: https://github.com/javierav/spinach-rerun-reporter
|
data/lib/spinach/capybara.rb
CHANGED
@@ -24,30 +24,6 @@ module Spinach
|
|
24
24
|
require 'capybara/rspec'
|
25
25
|
include ::Capybara::RSpecMatchers
|
26
26
|
end
|
27
|
-
|
28
|
-
alias_method :capybara_visit, :visit
|
29
|
-
|
30
|
-
def visit(*args)
|
31
|
-
stream = STDOUT
|
32
|
-
old_stream = stream.dup
|
33
|
-
stream.reopen(null_device)
|
34
|
-
stream.sync = true
|
35
|
-
capybara_visit *args
|
36
|
-
ensure
|
37
|
-
stream.reopen(old_stream)
|
38
|
-
end
|
39
|
-
|
40
|
-
def null_device
|
41
|
-
return @null_device if defined?(@null_device)
|
42
|
-
|
43
|
-
if RbConfig::CONFIG["host_os"] =~ /mingw|mswin/
|
44
|
-
@null_device = "NUL"
|
45
|
-
else
|
46
|
-
@null_device = "/dev/null"
|
47
|
-
end
|
48
|
-
|
49
|
-
@null_device
|
50
|
-
end
|
51
27
|
end
|
52
28
|
end
|
53
29
|
end
|
data/lib/spinach/cli.rb
CHANGED
@@ -22,9 +22,11 @@ module Spinach
|
|
22
22
|
def run
|
23
23
|
options
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
if Spinach.config.generate
|
26
|
+
Spinach::Generators.run(feature_files)
|
27
|
+
else
|
28
|
+
Spinach::Runner.new(feature_files).run
|
29
|
+
end
|
28
30
|
end
|
29
31
|
|
30
32
|
# @return [Hash]
|
@@ -109,7 +111,6 @@ module Spinach
|
|
109
111
|
opts.on('-g', '--generate',
|
110
112
|
'Auto-generate the feature steps files') do
|
111
113
|
config[:generate] = true
|
112
|
-
Spinach::Generators.run(feature_files)
|
113
114
|
end
|
114
115
|
|
115
116
|
opts.on_tail('--version', 'Show version') do
|
data/lib/spinach/feature.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Spinach
|
2
2
|
class Feature
|
3
|
-
attr_accessor :filename, :
|
3
|
+
attr_accessor :filename, :lines
|
4
4
|
attr_accessor :name, :scenarios, :tags
|
5
5
|
attr_accessor :background
|
6
6
|
attr_accessor :description
|
@@ -14,8 +14,8 @@ module Spinach
|
|
14
14
|
@background.nil? ? [] : @background.steps
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
@
|
17
|
+
def lines=(value)
|
18
|
+
@lines = value.map(&:to_i) if value
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -1,4 +1,13 @@
|
|
1
1
|
require 'minitest/spec'
|
2
2
|
MiniTest::Spec.new nil if defined?(MiniTest::Spec)
|
3
3
|
Spinach.config[:failure_exceptions] << MiniTest::Assertion
|
4
|
-
|
4
|
+
|
5
|
+
class Spinach::FeatureSteps
|
6
|
+
include MiniTest::Assertions
|
7
|
+
attr_accessor :assertions
|
8
|
+
|
9
|
+
def initialize(*args)
|
10
|
+
super *args
|
11
|
+
self.assertions = 0
|
12
|
+
end
|
13
|
+
end
|
data/lib/spinach/generators.rb
CHANGED
@@ -7,15 +7,18 @@ module Spinach
|
|
7
7
|
# @files [Array]
|
8
8
|
# filenames to evaluate for step generation
|
9
9
|
def self.run(files)
|
10
|
+
successful = true
|
10
11
|
files.each do |file|
|
11
12
|
feature = Parser.open_file(file).parse
|
12
13
|
|
13
14
|
begin
|
14
15
|
FeatureGenerator.new(feature).store
|
15
16
|
rescue FeatureGeneratorException => e
|
17
|
+
successful = false
|
16
18
|
$stderr.puts e
|
17
19
|
end
|
18
20
|
end
|
21
|
+
successful
|
19
22
|
end
|
20
23
|
end
|
21
24
|
end
|
@@ -69,8 +69,8 @@ module Spinach
|
|
69
69
|
# Stores the example feature steps definition into an expected path
|
70
70
|
#
|
71
71
|
def store
|
72
|
-
if
|
73
|
-
raise FeatureGeneratorException.new("File #{
|
72
|
+
if file_exists?(filename)
|
73
|
+
raise FeatureGeneratorException.new("File #{filename} already exists at #{file_path(filename)}.")
|
74
74
|
else
|
75
75
|
FileUtils.mkdir_p path
|
76
76
|
File.open(filename_with_path, 'w') do |file|
|
@@ -80,6 +80,15 @@ module Spinach
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
+
private
|
84
|
+
|
85
|
+
def file_exists?(filename)
|
86
|
+
!!file_path(filename)
|
87
|
+
end
|
88
|
+
|
89
|
+
def file_path(filename)
|
90
|
+
Dir.glob("#{path}/**/#{filename}").first
|
91
|
+
end
|
83
92
|
end
|
84
93
|
|
85
94
|
class FeatureGeneratorException < Exception; end;
|
data/lib/spinach/runner.rb
CHANGED
@@ -69,15 +69,25 @@ module Spinach
|
|
69
69
|
|
70
70
|
successful = true
|
71
71
|
|
72
|
-
filenames.map do |filename|
|
73
|
-
filename.split(
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
72
|
+
filenames.map! do |filename|
|
73
|
+
file, *lines = filename.split(":")
|
74
|
+
[file, lines]
|
75
|
+
end
|
76
|
+
|
77
|
+
catch :fail do
|
78
|
+
filenames.each do |filename, lines|
|
79
|
+
lines = [nil] if lines.empty?
|
80
|
+
|
81
|
+
feature = Parser.open_file(filename).parse
|
82
|
+
feature.filename = filename
|
83
|
+
feature.lines = lines
|
84
|
+
|
85
|
+
lines.each do |line|
|
86
|
+
success = FeatureRunner.new(feature, line).run
|
87
|
+
successful = false unless success
|
88
|
+
throw :fail if fail_fast? && !successful
|
89
|
+
end
|
90
|
+
end
|
81
91
|
end
|
82
92
|
|
83
93
|
Spinach.hooks.run_after_run(successful)
|
data/lib/spinach/version.rb
CHANGED
data/test/spinach/cli_test.rb
CHANGED
@@ -148,17 +148,28 @@ tags:
|
|
148
148
|
end
|
149
149
|
|
150
150
|
describe 'generate' do
|
151
|
-
%w{-g --generate}.each do |
|
152
|
-
it 'inits the generator if #{
|
151
|
+
%w{-g --generate}.each do |generate_opt|
|
152
|
+
it 'inits the generator if #{generate_opt}' do
|
153
153
|
config = Spinach::Config.new
|
154
154
|
Spinach.stubs(:config).returns(config)
|
155
155
|
|
156
156
|
Spinach::Generators.expects(:run)
|
157
157
|
|
158
|
-
Spinach::Cli.new([
|
158
|
+
Spinach::Cli.new([generate_opt]).run
|
159
159
|
|
160
160
|
config.generate.must_equal true
|
161
161
|
end
|
162
|
+
|
163
|
+
%w{-f --features_path}.each do |feature_path_opt|
|
164
|
+
it "honors the #{feature_path_opt} option" do
|
165
|
+
config = Spinach::Config.new
|
166
|
+
Spinach.stubs(:config).returns(config)
|
167
|
+
cli = Spinach::Cli.new([feature_path_opt,"custom_path", generate_opt])
|
168
|
+
cli.options
|
169
|
+
config.features_path.must_equal 'custom_path'
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
162
173
|
end
|
163
174
|
end
|
164
175
|
|
@@ -246,6 +257,15 @@ tags:
|
|
246
257
|
end
|
247
258
|
end
|
248
259
|
|
260
|
+
describe "when a particular feature list is passed with multiple lines" do
|
261
|
+
it "returns the feature with the line numbers" do
|
262
|
+
cli = Spinach::Cli.new(['features/some_feature.feature:10:20'])
|
263
|
+
File.stubs(:exists?).returns(true)
|
264
|
+
|
265
|
+
cli.feature_files.must_equal ["features/some_feature.feature:10:20"]
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
249
269
|
describe 'when no feature is passed' do
|
250
270
|
it 'returns all the features' do
|
251
271
|
cli = Spinach::Cli.new([])
|
@@ -12,4 +12,12 @@ describe "minitest framework" do
|
|
12
12
|
it "extends the FeatureSteps class with MiniTest DSL" do
|
13
13
|
Spinach::FeatureSteps.ancestors.must_include MiniTest::Assertions
|
14
14
|
end
|
15
|
+
|
16
|
+
it "makes FeatureSteps respond to 'assertions'" do
|
17
|
+
Spinach::FeatureSteps.new.must_respond_to :assertions
|
18
|
+
end
|
19
|
+
|
20
|
+
it "initializes FeatureSteps' assertions with zero" do
|
21
|
+
Spinach::FeatureSteps.new.assertions.must_equal 0
|
22
|
+
end
|
15
23
|
end
|
data/test/spinach/runner_test.rb
CHANGED
@@ -119,7 +119,50 @@ describe Spinach::Runner do
|
|
119
119
|
|
120
120
|
runner.run.must_equal true
|
121
121
|
feature.filename.must_equal filename
|
122
|
-
feature.
|
122
|
+
feature.lines.must_equal [line]
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe "when lines set" do
|
127
|
+
let(:filename) { "features/cool_feature.feature" }
|
128
|
+
let(:line) { "12:24" }
|
129
|
+
let(:filenames) { ["#{filename}:#{line}"] }
|
130
|
+
let(:runner) { Spinach::Runner.new(filenames) }
|
131
|
+
|
132
|
+
before(:each) do
|
133
|
+
@feature_runner = stub
|
134
|
+
Spinach::Parser.stubs(:open_file).with(filename).returns parser = stub
|
135
|
+
parser.stubs(:parse).returns @feature = Spinach::Feature.new
|
136
|
+
Spinach::Runner::FeatureRunner.stubs(:new).
|
137
|
+
with(@feature, anything).
|
138
|
+
returns(@feature_runner)
|
139
|
+
runner.stubs(required_files: [])
|
140
|
+
end
|
141
|
+
|
142
|
+
it "sets filename and lines on the feature" do
|
143
|
+
@feature_runner.stubs(:run).returns(true)
|
144
|
+
runner.run.must_equal true
|
145
|
+
@feature.filename.must_equal filename
|
146
|
+
@feature.lines.must_equal line.split(":").map(&:to_i)
|
147
|
+
end
|
148
|
+
|
149
|
+
it "returns false if it fails" do
|
150
|
+
@feature_runner.stubs(:run).returns(false)
|
151
|
+
runner.run.must_equal false
|
152
|
+
end
|
153
|
+
|
154
|
+
it "breaks with a failure when fail fast set" do
|
155
|
+
Spinach.config.stubs(:fail_fast).returns true
|
156
|
+
@feature_runner.stubs(:run).returns(false)
|
157
|
+
@feature_runner.expects(:run).never
|
158
|
+
runner.run.must_equal false
|
159
|
+
end
|
160
|
+
|
161
|
+
it "does not break when success when fail fast set" do
|
162
|
+
Spinach.config.stubs(:fail_fast).returns true
|
163
|
+
@feature_runner.stubs(:run).returns(true)
|
164
|
+
@feature_runner.expects(:run).returns true
|
165
|
+
runner.run.must_equal true
|
123
166
|
end
|
124
167
|
end
|
125
168
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spinach
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey
|
@@ -11,174 +11,174 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: gherkin-ruby
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 0.3.2
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 0.3.2
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: colorize
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
|
-
- -
|
34
|
+
- - '>='
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '0'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - '>='
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '0'
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: json
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
|
-
- -
|
48
|
+
- - '>='
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: '0'
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
|
-
- -
|
55
|
+
- - '>='
|
56
56
|
- !ruby/object:Gem::Version
|
57
57
|
version: '0'
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rake
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- -
|
62
|
+
- - '>='
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: '0'
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- -
|
69
|
+
- - '>='
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '0'
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: mocha
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
|
-
- -
|
76
|
+
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '1.0'
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ~>
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: '1.0'
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: sinatra
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - '>='
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
type: :development
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- -
|
97
|
+
- - '>='
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '0'
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: capybara
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- -
|
104
|
+
- - '>='
|
105
105
|
- !ruby/object:Gem::Version
|
106
106
|
version: '0'
|
107
107
|
type: :development
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- -
|
111
|
+
- - '>='
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: '0'
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: pry
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
|
-
- -
|
118
|
+
- - '>='
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
|
-
- -
|
125
|
+
- - '>='
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
128
|
- !ruby/object:Gem::Dependency
|
129
129
|
name: simplecov
|
130
130
|
requirement: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
132
|
-
- -
|
132
|
+
- - '>='
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
version: '0'
|
135
135
|
type: :development
|
136
136
|
prerelease: false
|
137
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
|
-
- -
|
139
|
+
- - '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
143
|
name: rspec
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
requirements:
|
146
|
-
- -
|
146
|
+
- - '>='
|
147
147
|
- !ruby/object:Gem::Version
|
148
148
|
version: '0'
|
149
149
|
type: :development
|
150
150
|
prerelease: false
|
151
151
|
version_requirements: !ruby/object:Gem::Requirement
|
152
152
|
requirements:
|
153
|
-
- -
|
153
|
+
- - '>='
|
154
154
|
- !ruby/object:Gem::Version
|
155
155
|
version: '0'
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
157
|
name: minitest
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
|
-
- -
|
160
|
+
- - <
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '5.0'
|
163
163
|
type: :development
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
166
166
|
requirements:
|
167
|
-
- -
|
167
|
+
- - <
|
168
168
|
- !ruby/object:Gem::Version
|
169
169
|
version: '5.0'
|
170
170
|
- !ruby/object:Gem::Dependency
|
171
171
|
name: fakefs
|
172
172
|
requirement: !ruby/object:Gem::Requirement
|
173
173
|
requirements:
|
174
|
-
- -
|
174
|
+
- - '>='
|
175
175
|
- !ruby/object:Gem::Version
|
176
176
|
version: 0.5.2
|
177
177
|
type: :development
|
178
178
|
prerelease: false
|
179
179
|
version_requirements: !ruby/object:Gem::Requirement
|
180
180
|
requirements:
|
181
|
-
- -
|
181
|
+
- - '>='
|
182
182
|
- !ruby/object:Gem::Version
|
183
183
|
version: 0.5.2
|
184
184
|
description: Spinach is a BDD framework on top of gherkin
|
@@ -193,11 +193,11 @@ executables:
|
|
193
193
|
extensions: []
|
194
194
|
extra_rdoc_files: []
|
195
195
|
files:
|
196
|
-
-
|
197
|
-
-
|
198
|
-
-
|
199
|
-
-
|
200
|
-
-
|
196
|
+
- .document
|
197
|
+
- .gitignore
|
198
|
+
- .ruby-gemset
|
199
|
+
- .ruby-version
|
200
|
+
- .travis.yml
|
201
201
|
- CHANGELOG.md
|
202
202
|
- Gemfile
|
203
203
|
- Guardfile
|
@@ -312,17 +312,17 @@ require_paths:
|
|
312
312
|
- lib
|
313
313
|
required_ruby_version: !ruby/object:Gem::Requirement
|
314
314
|
requirements:
|
315
|
-
- -
|
315
|
+
- - '>='
|
316
316
|
- !ruby/object:Gem::Version
|
317
317
|
version: '0'
|
318
318
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
319
319
|
requirements:
|
320
|
-
- -
|
320
|
+
- - '>='
|
321
321
|
- !ruby/object:Gem::Version
|
322
322
|
version: '0'
|
323
323
|
requirements: []
|
324
324
|
rubyforge_project:
|
325
|
-
rubygems_version: 2.
|
325
|
+
rubygems_version: 2.0.14.1
|
326
326
|
signing_key:
|
327
327
|
specification_version: 4
|
328
328
|
summary: Spinach is a BDD framework on top of gherkin
|