spinach 0.8.10 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Dependency Status](https://gemnasium.com/codegram/spinach.png)](http://gemnasium.com/codegram/spinach)
|
5
5
|
[![Coverage Status](https://coveralls.io/repos/codegram/spinach/badge.png?branch=master)](https://coveralls.io/r/codegram/spinach)
|
6
6
|
|
7
|
-
**Join a live discussion on Gitter**: [![Gitter chat](https://badges.gitter.im/codegram/spinach.png)](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
|
-
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/codegram/spinach/trend.png)](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
|