spinach 0.4.1 → 0.4.2
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.
- data/README.markdown +1 -0
- data/features/support/filesystem.rb +23 -6
- data/features/support/spinach_runner.rb +11 -2
- data/lib/spinach/capybara.rb +14 -1
- data/lib/spinach/cli.rb +22 -9
- data/lib/spinach/dsl.rb +20 -5
- data/lib/spinach/version.rb +1 -1
- data/spinach.gemspec +0 -2
- data/test/spinach/cli_test.rb +24 -0
- data/test/spinach/dsl_test.rb +5 -5
- data/test/spinach/generators/feature_generator_test.rb +17 -17
- data/test/spinach/generators_test.rb +14 -11
- data/test/support/filesystem.rb +13 -0
- data/test/test_helper.rb +2 -1
- metadata +72 -37
data/README.markdown
CHANGED
@@ -190,6 +190,7 @@ Check out our [spinach-sinatra demo](https://github.com/codegram/spinach-sinatra
|
|
190
190
|
|
191
191
|
* [spinach rails demo](https://github.com/codegram/spinach-rails-demo)
|
192
192
|
* [spinach sinatra demo](https://github.com/codegram/spinach-sinatra-demo)
|
193
|
+
* [simple todo Rails app](https://github.com/codegram/tasca-spinach-demo)
|
193
194
|
|
194
195
|
## Contributing
|
195
196
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'fileutils'
|
2
|
-
require 'open4'
|
3
2
|
|
4
3
|
# The Filesystem module runs commands, captures their output and exit status
|
5
4
|
# and lets the host know about it.
|
@@ -46,11 +45,25 @@ module Filesystem
|
|
46
45
|
# @api public
|
47
46
|
def run(command)
|
48
47
|
in_current_dir do
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
48
|
+
# stdout, stderr pipes
|
49
|
+
rout, wout = IO.pipe
|
50
|
+
rerr, werr = IO.pipe
|
51
|
+
|
52
|
+
pid = Process.spawn(command, :out => wout, :err => werr)
|
53
|
+
_, status = Process.wait2(pid)
|
54
|
+
|
55
|
+
# close write ends so we could read them
|
56
|
+
wout.close
|
57
|
+
werr.close
|
58
|
+
|
59
|
+
@stdout = rout.readlines.join("\n")
|
60
|
+
@stderr = rerr.readlines.join("\n")
|
61
|
+
|
62
|
+
# dispose the read ends of the pipes
|
63
|
+
rout.close
|
64
|
+
rerr.close
|
65
|
+
|
66
|
+
@last_exit_status = status.exitstatus
|
54
67
|
end
|
55
68
|
end
|
56
69
|
|
@@ -60,6 +73,10 @@ module Filesystem
|
|
60
73
|
FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
|
61
74
|
end
|
62
75
|
|
76
|
+
def rmdir(dirname)
|
77
|
+
FileUtils.rm_rf(dirname) unless File.directory?(dirname)
|
78
|
+
end
|
79
|
+
|
63
80
|
def current_dir
|
64
81
|
File.join(*dirs)
|
65
82
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require "rbconfig"
|
1
2
|
require_relative 'filesystem'
|
2
3
|
|
3
4
|
module Integration
|
@@ -8,7 +9,7 @@ module Integration
|
|
8
9
|
Spinach.hooks.before_scenario do
|
9
10
|
if respond_to?(:in_current_dir)
|
10
11
|
in_current_dir do
|
11
|
-
|
12
|
+
rmdir "rails_app"
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
@@ -18,7 +19,15 @@ module Integration
|
|
18
19
|
options[:framework] ||= :minitest
|
19
20
|
use_minitest if options[:framework] == :minitest
|
20
21
|
use_rspec if options[:framework] == :rspec
|
21
|
-
run "../../bin/spinach #{command} #{options[:append]}"
|
22
|
+
run "#{ruby} ../../bin/spinach #{command} #{options[:append]}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def ruby
|
26
|
+
return @ruby if defined?(@ruby)
|
27
|
+
|
28
|
+
config = RbConfig::CONFIG
|
29
|
+
@ruby = File.join(config["bindir"],
|
30
|
+
"#{config["ruby_install_name"]}#{config["EXEEXT"]}")
|
22
31
|
end
|
23
32
|
|
24
33
|
def use_minitest
|
data/lib/spinach/capybara.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'capybara'
|
2
2
|
require 'capybara/dsl'
|
3
|
+
require 'rbconfig'
|
3
4
|
require_relative 'feature_steps'
|
4
5
|
|
5
6
|
module Spinach
|
@@ -33,12 +34,24 @@ module Spinach
|
|
33
34
|
def visit(*args)
|
34
35
|
stream = STDOUT
|
35
36
|
old_stream = stream.dup
|
36
|
-
stream.reopen(
|
37
|
+
stream.reopen(null_device)
|
37
38
|
stream.sync = true
|
38
39
|
super
|
39
40
|
ensure
|
40
41
|
stream.reopen(old_stream)
|
41
42
|
end
|
43
|
+
|
44
|
+
def null_device
|
45
|
+
return @null_device if defined?(@null_device)
|
46
|
+
|
47
|
+
if RbConfig::CONFIG["host_os"] =~ /mingw|mswin/
|
48
|
+
@null_device = "NUL"
|
49
|
+
else
|
50
|
+
@null_device = "/dev/null"
|
51
|
+
end
|
52
|
+
|
53
|
+
@null_device
|
54
|
+
end
|
42
55
|
end
|
43
56
|
end
|
44
57
|
end
|
data/lib/spinach/cli.rb
CHANGED
@@ -20,21 +20,14 @@ module Spinach
|
|
20
20
|
#
|
21
21
|
# @api public
|
22
22
|
def run
|
23
|
-
|
24
|
-
features = if @args.any?
|
25
|
-
@args
|
26
|
-
else
|
27
|
-
Dir.glob(File.join Spinach.config[:features_path], '**', '*.feature')
|
28
|
-
end
|
29
|
-
Spinach::Runner.new(features).run
|
23
|
+
Spinach::Runner.new(feature_files).run
|
30
24
|
end
|
31
25
|
|
32
26
|
# Inits the reporter with a default one.
|
33
27
|
#
|
34
28
|
# @api public
|
35
29
|
def init_reporter
|
36
|
-
reporter =
|
37
|
-
Spinach::Reporter::Stdout.new(options[:reporter])
|
30
|
+
reporter = Spinach::Reporter::Stdout.new(options[:reporter])
|
38
31
|
reporter.bind
|
39
32
|
end
|
40
33
|
|
@@ -118,5 +111,25 @@ module Spinach
|
|
118
111
|
|
119
112
|
{reporter: reporter_options}
|
120
113
|
end
|
114
|
+
|
115
|
+
# Uses given args to list the feature files to run. It will find a single
|
116
|
+
# feature, features in a folder and subfolders or every feature file in the
|
117
|
+
# feature path.
|
118
|
+
#
|
119
|
+
# @return [Array]
|
120
|
+
# An array with the feature file names.
|
121
|
+
#
|
122
|
+
# @api private
|
123
|
+
def feature_files
|
124
|
+
path = @args.first.to_s
|
125
|
+
|
126
|
+
if File.file?(path)
|
127
|
+
@args
|
128
|
+
elsif File.directory?(path)
|
129
|
+
Dir.glob(File.join(path, '**', '*.feature'))
|
130
|
+
else
|
131
|
+
Dir.glob(File.join(Spinach.config[:features_path], '**', '*.feature'))
|
132
|
+
end
|
133
|
+
end
|
121
134
|
end
|
122
135
|
end
|
data/lib/spinach/dsl.rb
CHANGED
@@ -28,21 +28,36 @@ module Spinach
|
|
28
28
|
# Action to perform in that step.
|
29
29
|
#
|
30
30
|
# @example
|
31
|
+
# These 3 examples are equivalent:
|
32
|
+
#
|
31
33
|
# class MyFeature < Spinach::FeatureSteps
|
32
34
|
# When "I go to the toilet" do
|
33
35
|
# @sittin_on_the_toilet.must_equal true
|
34
36
|
# end
|
35
37
|
# end
|
36
38
|
#
|
39
|
+
# class MyFeature < Spinach::FeatureSteps
|
40
|
+
# step "I go to the toilet" do
|
41
|
+
# @sittin_on_the_toilet.must_equal true
|
42
|
+
# end
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
# class MyFeature < Spinach::FeatureSteps
|
46
|
+
# def i_go_to_the_toilet
|
47
|
+
# @sittin_on_the_toilet.must_equal true
|
48
|
+
# end
|
49
|
+
# end
|
50
|
+
#
|
37
51
|
# @api public
|
38
|
-
def
|
52
|
+
def step(step, &block)
|
39
53
|
define_method(Spinach::Support.underscore(step), &block)
|
40
54
|
end
|
41
55
|
|
42
|
-
alias_method :
|
43
|
-
alias_method :
|
44
|
-
alias_method :
|
45
|
-
alias_method :
|
56
|
+
alias_method :Given, :step
|
57
|
+
alias_method :When, :step
|
58
|
+
alias_method :Then, :step
|
59
|
+
alias_method :And, :step
|
60
|
+
alias_method :But, :step
|
46
61
|
|
47
62
|
# Sets the feature name.
|
48
63
|
#
|
data/lib/spinach/version.rb
CHANGED
data/spinach.gemspec
CHANGED
@@ -15,11 +15,9 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.add_development_dependency 'mocha'
|
16
16
|
gem.add_development_dependency 'sinatra'
|
17
17
|
gem.add_development_dependency 'capybara'
|
18
|
-
gem.add_development_dependency 'open4'
|
19
18
|
gem.add_development_dependency 'pry'
|
20
19
|
gem.add_development_dependency 'simplecov'
|
21
20
|
gem.add_development_dependency 'rspec'
|
22
|
-
gem.add_development_dependency 'fakefs'
|
23
21
|
gem.add_development_dependency 'minitest', '~> 2.0'
|
24
22
|
gem.add_development_dependency 'turn'
|
25
23
|
|
data/test/spinach/cli_test.rb
CHANGED
@@ -137,6 +137,8 @@ describe Spinach::Cli do
|
|
137
137
|
describe 'when a particular feature list is passed' do
|
138
138
|
it 'runs the feature' do
|
139
139
|
cli = Spinach::Cli.new(['features/some_feature.feature'])
|
140
|
+
File.expects(:file?).with('features/some_feature.feature').returns(true)
|
141
|
+
|
140
142
|
Spinach::Runner.expects(:new).with(['features/some_feature.feature']).
|
141
143
|
returns(stub(:run))
|
142
144
|
cli.run
|
@@ -153,5 +155,27 @@ describe Spinach::Cli do
|
|
153
155
|
cli.run
|
154
156
|
end
|
155
157
|
end
|
158
|
+
|
159
|
+
describe 'when a folder is given' do
|
160
|
+
it 'runs all feature files in the folder and subfolders' do
|
161
|
+
cli = Spinach::Cli.new(['path/to/features'])
|
162
|
+
|
163
|
+
File.expects(:directory?).with('path/to/features').returns(true)
|
164
|
+
Dir.expects(:glob).with('path/to/features/**/*.feature').
|
165
|
+
returns(['path/to/features/feature1.feature',
|
166
|
+
'path/to/features/feature2.feature',
|
167
|
+
'path/to/features/feature3.feature',
|
168
|
+
'path/to/features/domain/feature4.feature'])
|
169
|
+
|
170
|
+
Spinach::Runner.expects(:new).with([
|
171
|
+
'path/to/features/feature1.feature',
|
172
|
+
'path/to/features/feature2.feature',
|
173
|
+
'path/to/features/feature3.feature',
|
174
|
+
'path/to/features/domain/feature4.feature']).
|
175
|
+
returns(stub(:run))
|
176
|
+
|
177
|
+
cli.run
|
178
|
+
end
|
179
|
+
end
|
156
180
|
end
|
157
181
|
end
|
data/test/spinach/dsl_test.rb
CHANGED
@@ -8,10 +8,10 @@ describe Spinach::DSL do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
describe 'class methods' do
|
11
|
-
describe '#
|
11
|
+
describe '#step' do
|
12
12
|
it 'defines a method with the step name' do
|
13
13
|
step_executed = false
|
14
|
-
@feature.
|
14
|
+
@feature.step('I say goodbye') do
|
15
15
|
step_executed = true
|
16
16
|
end
|
17
17
|
|
@@ -20,9 +20,9 @@ describe Spinach::DSL do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
describe '#When, #Then, #And, #But' do
|
24
|
-
it 'are #
|
25
|
-
%w{When Then And But}.each do |method|
|
23
|
+
describe '#Give, #When, #Then, #And, #But' do
|
24
|
+
it 'are #step aliases' do
|
25
|
+
%w{Given When Then And But}.each do |method|
|
26
26
|
@feature.must_respond_to method
|
27
27
|
end
|
28
28
|
end
|
@@ -63,28 +63,28 @@ Feature: Cheezburger can I has
|
|
63
63
|
|
64
64
|
describe "#store" do
|
65
65
|
it "stores the generated feature into a file" do
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
66
|
+
in_current_dir do
|
67
|
+
subject.store
|
68
|
+
File.directory?("features/steps/").must_equal true
|
69
|
+
File.exists?("features/steps/cheezburger_can_i_has.rb").must_equal true
|
70
|
+
File.read("features/steps/cheezburger_can_i_has.rb").strip.must_equal(
|
71
|
+
subject.generate.strip
|
72
|
+
)
|
73
|
+
FileUtils.rm_rf("features/steps")
|
74
|
+
end
|
75
75
|
end
|
76
76
|
|
77
77
|
it "raises an error if the file already exists and does nothing" do
|
78
78
|
file = "features/steps/cheezburger_can_i_has.rb"
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
79
|
+
in_current_dir do
|
80
|
+
FileUtils.mkdir_p "features/steps"
|
81
|
+
File.open(file, 'w') do |f|
|
82
|
+
f.write("Fake content")
|
83
|
+
end
|
84
|
+
Proc.new{subject.store}.must_raise(
|
85
|
+
Spinach::Generators::FeatureGeneratorException)
|
86
|
+
FileUtils.rm_rf("features/steps")
|
83
87
|
end
|
84
|
-
Proc.new{subject.store}.must_raise(
|
85
|
-
Spinach::Generators::FeatureGeneratorException)
|
86
|
-
FileUtils.rm_rf("features/steps")
|
87
|
-
FakeFS.deactivate!
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -32,19 +32,22 @@ Feature: Cheezburger can I has
|
|
32
32
|
describe "#generate_feature" do
|
33
33
|
it "generates a file" do
|
34
34
|
feature_data = data
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
35
|
+
in_current_dir do
|
36
|
+
subject.generate_feature(feature_data)
|
37
|
+
File.exists?("features/steps/cheezburger_can_i_has.rb").must_equal true
|
38
|
+
FileUtils.rm_rf("features/steps")
|
39
|
+
end
|
40
40
|
end
|
41
|
+
|
41
42
|
it "outputs a message if feature cannot be generated" do
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
in_current_dir do
|
44
|
+
subject::FeatureGenerator.expects(:new).raises(
|
45
|
+
Spinach::Generators::FeatureGeneratorException.new("File already exists"))
|
46
|
+
capture_stdout do
|
47
|
+
subject.generate_feature(data)
|
48
|
+
end.must_include "File already exists"
|
49
|
+
File.exists?("features/steps/cheezburger_can_i_has.rb").must_equal false
|
50
|
+
end
|
48
51
|
end
|
49
52
|
end
|
50
53
|
end
|
data/test/test_helper.rb
CHANGED
@@ -15,11 +15,12 @@ require 'mocha'
|
|
15
15
|
require 'ostruct'
|
16
16
|
require 'stringio'
|
17
17
|
require 'pry'
|
18
|
-
require 'fakefs/safe'
|
19
18
|
require 'turn'
|
20
19
|
|
21
20
|
require 'spinach'
|
22
21
|
|
22
|
+
require_relative "support/filesystem"
|
23
|
+
|
23
24
|
module Kernel
|
24
25
|
def capture_stdout
|
25
26
|
out = StringIO.new
|
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.
|
4
|
+
version: 0.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,11 +12,11 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-04-
|
15
|
+
date: 2012-04-26 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: gherkin-ruby
|
19
|
-
requirement:
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ~>
|
@@ -24,10 +24,15 @@ dependencies:
|
|
24
24
|
version: 0.1.0
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.1.0
|
28
33
|
- !ruby/object:Gem::Dependency
|
29
34
|
name: colorize
|
30
|
-
requirement:
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
31
36
|
none: false
|
32
37
|
requirements:
|
33
38
|
- - ! '>='
|
@@ -35,10 +40,15 @@ dependencies:
|
|
35
40
|
version: '0'
|
36
41
|
type: :runtime
|
37
42
|
prerelease: false
|
38
|
-
version_requirements:
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
39
49
|
- !ruby/object:Gem::Dependency
|
40
50
|
name: rake
|
41
|
-
requirement:
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
42
52
|
none: false
|
43
53
|
requirements:
|
44
54
|
- - ! '>='
|
@@ -46,10 +56,15 @@ dependencies:
|
|
46
56
|
version: '0'
|
47
57
|
type: :development
|
48
58
|
prerelease: false
|
49
|
-
version_requirements:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
50
65
|
- !ruby/object:Gem::Dependency
|
51
66
|
name: mocha
|
52
|
-
requirement:
|
67
|
+
requirement: !ruby/object:Gem::Requirement
|
53
68
|
none: false
|
54
69
|
requirements:
|
55
70
|
- - ! '>='
|
@@ -57,10 +72,15 @@ dependencies:
|
|
57
72
|
version: '0'
|
58
73
|
type: :development
|
59
74
|
prerelease: false
|
60
|
-
version_requirements:
|
75
|
+
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
61
81
|
- !ruby/object:Gem::Dependency
|
62
82
|
name: sinatra
|
63
|
-
requirement:
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
64
84
|
none: false
|
65
85
|
requirements:
|
66
86
|
- - ! '>='
|
@@ -68,10 +88,15 @@ dependencies:
|
|
68
88
|
version: '0'
|
69
89
|
type: :development
|
70
90
|
prerelease: false
|
71
|
-
version_requirements:
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
72
97
|
- !ruby/object:Gem::Dependency
|
73
98
|
name: capybara
|
74
|
-
requirement:
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
75
100
|
none: false
|
76
101
|
requirements:
|
77
102
|
- - ! '>='
|
@@ -79,21 +104,15 @@ dependencies:
|
|
79
104
|
version: '0'
|
80
105
|
type: :development
|
81
106
|
prerelease: false
|
82
|
-
version_requirements:
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: open4
|
85
|
-
requirement: &70243741523220 !ruby/object:Gem::Requirement
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
108
|
none: false
|
87
109
|
requirements:
|
88
110
|
- - ! '>='
|
89
111
|
- !ruby/object:Gem::Version
|
90
112
|
version: '0'
|
91
|
-
type: :development
|
92
|
-
prerelease: false
|
93
|
-
version_requirements: *70243741523220
|
94
113
|
- !ruby/object:Gem::Dependency
|
95
114
|
name: pry
|
96
|
-
requirement:
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
97
116
|
none: false
|
98
117
|
requirements:
|
99
118
|
- - ! '>='
|
@@ -101,10 +120,15 @@ dependencies:
|
|
101
120
|
version: '0'
|
102
121
|
type: :development
|
103
122
|
prerelease: false
|
104
|
-
version_requirements:
|
123
|
+
version_requirements: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
125
|
+
requirements:
|
126
|
+
- - ! '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
105
129
|
- !ruby/object:Gem::Dependency
|
106
130
|
name: simplecov
|
107
|
-
requirement:
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
108
132
|
none: false
|
109
133
|
requirements:
|
110
134
|
- - ! '>='
|
@@ -112,10 +136,15 @@ dependencies:
|
|
112
136
|
version: '0'
|
113
137
|
type: :development
|
114
138
|
prerelease: false
|
115
|
-
version_requirements:
|
139
|
+
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ! '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
116
145
|
- !ruby/object:Gem::Dependency
|
117
146
|
name: rspec
|
118
|
-
requirement:
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
119
148
|
none: false
|
120
149
|
requirements:
|
121
150
|
- - ! '>='
|
@@ -123,21 +152,15 @@ dependencies:
|
|
123
152
|
version: '0'
|
124
153
|
type: :development
|
125
154
|
prerelease: false
|
126
|
-
version_requirements:
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
|
-
name: fakefs
|
129
|
-
requirement: &70243741521540 !ruby/object:Gem::Requirement
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
130
156
|
none: false
|
131
157
|
requirements:
|
132
158
|
- - ! '>='
|
133
159
|
- !ruby/object:Gem::Version
|
134
160
|
version: '0'
|
135
|
-
type: :development
|
136
|
-
prerelease: false
|
137
|
-
version_requirements: *70243741521540
|
138
161
|
- !ruby/object:Gem::Dependency
|
139
162
|
name: minitest
|
140
|
-
requirement:
|
163
|
+
requirement: !ruby/object:Gem::Requirement
|
141
164
|
none: false
|
142
165
|
requirements:
|
143
166
|
- - ~>
|
@@ -145,10 +168,15 @@ dependencies:
|
|
145
168
|
version: '2.0'
|
146
169
|
type: :development
|
147
170
|
prerelease: false
|
148
|
-
version_requirements:
|
171
|
+
version_requirements: !ruby/object:Gem::Requirement
|
172
|
+
none: false
|
173
|
+
requirements:
|
174
|
+
- - ~>
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '2.0'
|
149
177
|
- !ruby/object:Gem::Dependency
|
150
178
|
name: turn
|
151
|
-
requirement:
|
179
|
+
requirement: !ruby/object:Gem::Requirement
|
152
180
|
none: false
|
153
181
|
requirements:
|
154
182
|
- - ! '>='
|
@@ -156,7 +184,12 @@ dependencies:
|
|
156
184
|
version: '0'
|
157
185
|
type: :development
|
158
186
|
prerelease: false
|
159
|
-
version_requirements:
|
187
|
+
version_requirements: !ruby/object:Gem::Requirement
|
188
|
+
none: false
|
189
|
+
requirements:
|
190
|
+
- - ! '>='
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
160
193
|
description: Spinach is a BDD framework on top of gherkin
|
161
194
|
email:
|
162
195
|
- info@codegram.com
|
@@ -257,6 +290,7 @@ files:
|
|
257
290
|
- test/spinach/support_test.rb
|
258
291
|
- test/spinach/tags_matcher_test.rb
|
259
292
|
- test/spinach_test.rb
|
293
|
+
- test/support/filesystem.rb
|
260
294
|
- test/test_helper.rb
|
261
295
|
homepage: http://github.com/codegram/spinach
|
262
296
|
licenses: []
|
@@ -278,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
278
312
|
version: '0'
|
279
313
|
requirements: []
|
280
314
|
rubyforge_project:
|
281
|
-
rubygems_version: 1.8.
|
315
|
+
rubygems_version: 1.8.21
|
282
316
|
signing_key:
|
283
317
|
specification_version: 3
|
284
318
|
summary: Spinach is a BDD framework on top of gherkin
|
@@ -331,5 +365,6 @@ test_files:
|
|
331
365
|
- test/spinach/support_test.rb
|
332
366
|
- test/spinach/tags_matcher_test.rb
|
333
367
|
- test/spinach_test.rb
|
368
|
+
- test/support/filesystem.rb
|
334
369
|
- test/test_helper.rb
|
335
370
|
has_rdoc:
|