spinach 0.1.5.3 → 0.1.5.4
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/.rvmrc +1 -1
- data/README.markdown +25 -4
- data/features/rspec_compatibility.feature +5 -0
- data/features/steps/rspec_compatibility.rb +44 -1
- data/features/support/spinach_runner.rb +5 -0
- data/lib/spinach/capybara.rb +5 -0
- data/lib/spinach/hooks.rb +31 -14
- data/lib/spinach/runner.rb +20 -3
- data/lib/spinach/support.rb +1 -1
- data/lib/spinach/version.rb +1 -1
- data/spinach.gemspec +1 -1
- data/test/spinach/hooks_test.rb +37 -10
- data/test/spinach/runner_test.rb +14 -2
- data/test/spinach/support_test.rb +2 -2
- metadata +32 -31
data/.rvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
rvm --create use 1.9.
|
|
1
|
+
rvm --create use 1.9.3@spinach
|
data/README.markdown
CHANGED
|
@@ -24,7 +24,7 @@ Start by adding spinach to your Gemfile:
|
|
|
24
24
|
|
|
25
25
|
group :test do
|
|
26
26
|
gem 'spinach'
|
|
27
|
-
#
|
|
27
|
+
# gem 'rspec'
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
Spinach works out-of-the-box with your favorite test suite, but you can also
|
|
@@ -136,15 +136,15 @@ after any feature, scenario or step execution.
|
|
|
136
136
|
|
|
137
137
|
So, for example, you could:
|
|
138
138
|
|
|
139
|
-
Spinach.before_scenario do |data|
|
|
139
|
+
Spinach.hooks.before_scenario do |data|
|
|
140
140
|
clear_database
|
|
141
141
|
end
|
|
142
142
|
|
|
143
|
-
Spinach.on_successful_step do |step_data, location|
|
|
143
|
+
Spinach.hooks.on_successful_step do |step_data, location|
|
|
144
144
|
count_steps(step_data)
|
|
145
145
|
end
|
|
146
146
|
|
|
147
|
-
Spinach.after_run do |status|
|
|
147
|
+
Spinach.hooks.after_run do |status|
|
|
148
148
|
send_mail if status == 0
|
|
149
149
|
end
|
|
150
150
|
|
|
@@ -161,8 +161,29 @@ Use [spinach-rails](http://github.com/codegram/spinach-rails)
|
|
|
161
161
|
|
|
162
162
|
Check out our [spinach-sinatra demo](https://github.com/codegram/spinach-sinatra-demo)
|
|
163
163
|
|
|
164
|
+
## Resources
|
|
165
|
+
|
|
166
|
+
* [Landing page](http://codegram.github.com/spinach)
|
|
167
|
+
* [Slides](http://codegram.github.com/spinach-presentation)
|
|
168
|
+
* [Blog post](http://blog.codegram.com/2011/10/how-to-achieve-more-clean-encapsulated-modular-step-definitions-with-spinach)
|
|
169
|
+
* [API Documentation](http://rubydoc.info/github/codegram/spinach/master/frames)
|
|
170
|
+
* [Google group](https://groups.google.com/forum/#!forum/spinach_bdd)
|
|
171
|
+
|
|
172
|
+
### Related gems
|
|
173
|
+
|
|
174
|
+
* [guard-spinach](http://github.com/codegram/guard-spinach)
|
|
175
|
+
* [spinach-rails](http://github.com/codegram/spinach-rails)
|
|
176
|
+
|
|
177
|
+
### Demos
|
|
178
|
+
|
|
179
|
+
* [spinach rails demo](https://github.com/codegram/spinach-rails-demo)
|
|
180
|
+
* [spinach sinatra demo](https://github.com/codegram/spinach-sinatra-demo)
|
|
181
|
+
|
|
182
|
+
|
|
164
183
|
## Contributing
|
|
165
184
|
|
|
185
|
+
* [List of spinach contributors](https://github.com/codegram/spinach/contributors)
|
|
186
|
+
|
|
166
187
|
You can easily contribute to Spinach. Its codebase is simple and
|
|
167
188
|
[extensively documented][documentation].
|
|
168
189
|
|
|
@@ -7,3 +7,8 @@ Feature: RSpec compatibility
|
|
|
7
7
|
Given I have a feature with some failed expectations
|
|
8
8
|
When I run "spinach" with rspec
|
|
9
9
|
Then I should see the failure count along with their messages
|
|
10
|
+
|
|
11
|
+
Scenario: RSpec with capybara
|
|
12
|
+
Given I have a sinatra app with some capybara-based expectations
|
|
13
|
+
When I run "spinach" with rspec
|
|
14
|
+
Then there should be no error
|
|
@@ -25,13 +25,56 @@ class RSpecCompatibility < Spinach::FeatureSteps
|
|
|
25
25
|
# joking!
|
|
26
26
|
end
|
|
27
27
|
end')
|
|
28
|
+
@feature = 'feature_with_failures'
|
|
28
29
|
end
|
|
29
30
|
|
|
30
31
|
When "I run \"spinach\" with rspec" do
|
|
31
|
-
|
|
32
|
+
@feature =
|
|
33
|
+
run_feature "features/#{@feature}.feature", suite: :rspec
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
Then "I should see the failure count along with their messages" do
|
|
35
37
|
check_error_messages(1)
|
|
36
38
|
end
|
|
39
|
+
|
|
40
|
+
Given 'I have a sinatra app with some capybara-based expectations' do
|
|
41
|
+
write_file("features/support/app.rb", '
|
|
42
|
+
require "sinatra"
|
|
43
|
+
require "spinach/capybara"
|
|
44
|
+
app = Sinatra::Application.new do
|
|
45
|
+
get "/" do
|
|
46
|
+
\'Hello world!\'
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
Capybara.app = app
|
|
50
|
+
')
|
|
51
|
+
|
|
52
|
+
write_file('features/greeting.feature',
|
|
53
|
+
'Feature: Greeting
|
|
54
|
+
|
|
55
|
+
Scenario: Greeting
|
|
56
|
+
Given I am on the front page
|
|
57
|
+
Then I should see hello world
|
|
58
|
+
')
|
|
59
|
+
|
|
60
|
+
write_file('features/steps/greeting.rb',
|
|
61
|
+
'require "spinach/capybara"
|
|
62
|
+
class Greeting < Spinach::FeatureSteps
|
|
63
|
+
include Spinach::FeatureSteps::Capybara
|
|
64
|
+
|
|
65
|
+
Given "I am on the front page" do
|
|
66
|
+
visit "/"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
Then "I should see hello world" do
|
|
70
|
+
page.should have_content("Hello world")
|
|
71
|
+
end
|
|
72
|
+
end')
|
|
73
|
+
@feature = 'greeting'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
Given 'There should be no error' do
|
|
77
|
+
last_exit_status.must_equal 0
|
|
78
|
+
end
|
|
79
|
+
|
|
37
80
|
end
|
data/lib/spinach/capybara.rb
CHANGED
|
@@ -24,6 +24,11 @@ module Spinach
|
|
|
24
24
|
def self.included(base)
|
|
25
25
|
base.class_eval do
|
|
26
26
|
include ::Capybara::DSL
|
|
27
|
+
if defined?(RSpec)
|
|
28
|
+
require 'rspec/matchers'
|
|
29
|
+
require 'capybara/rspec'
|
|
30
|
+
include ::Capybara::RSpecMatchers
|
|
31
|
+
end
|
|
27
32
|
end
|
|
28
33
|
Spinach.hooks.before_scenario do
|
|
29
34
|
::Capybara.current_session.reset! if ::Capybara.app
|
data/lib/spinach/hooks.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Spinach
|
|
|
10
10
|
# Runs before the entire spinach run
|
|
11
11
|
#
|
|
12
12
|
# @example
|
|
13
|
-
# Spinach.before_run do
|
|
13
|
+
# Spinach.hooks.before_run do
|
|
14
14
|
# # Whatever
|
|
15
15
|
# end
|
|
16
16
|
hook :before_run
|
|
@@ -18,7 +18,7 @@ module Spinach
|
|
|
18
18
|
# Runs after the entire spinach run
|
|
19
19
|
#
|
|
20
20
|
# @example
|
|
21
|
-
# Spinach.after_run do |status|
|
|
21
|
+
# Spinach.hooks.after_run do |status|
|
|
22
22
|
# # status is true when the run is successful, false otherwise
|
|
23
23
|
# end
|
|
24
24
|
hook :after_run
|
|
@@ -26,7 +26,7 @@ module Spinach
|
|
|
26
26
|
# Runs before every feature,
|
|
27
27
|
#
|
|
28
28
|
# @example
|
|
29
|
-
# Spinach.before_feature do |feature_data|
|
|
29
|
+
# Spinach.hooks.before_feature do |feature_data|
|
|
30
30
|
# # feature_data is a hash of the parsed feature data
|
|
31
31
|
# end
|
|
32
32
|
hook :before_feature
|
|
@@ -34,7 +34,7 @@ module Spinach
|
|
|
34
34
|
# Runs after every feature
|
|
35
35
|
#
|
|
36
36
|
# @example
|
|
37
|
-
# Spinach.after_feature do |feature_data|
|
|
37
|
+
# Spinach.hooks.after_feature do |feature_data|
|
|
38
38
|
# # feature_data is a hash of the parsed feature data
|
|
39
39
|
# end
|
|
40
40
|
hook :after_feature
|
|
@@ -42,7 +42,7 @@ module Spinach
|
|
|
42
42
|
# Runs when an undefined feature is found
|
|
43
43
|
#
|
|
44
44
|
# @example
|
|
45
|
-
# Spinach.on_undefined_feature do |feature_data, exception|
|
|
45
|
+
# Spinach.hooks.on_undefined_feature do |feature_data, exception|
|
|
46
46
|
# # feature_data is a hash of the parsed feature data
|
|
47
47
|
# # exception contains the thrown exception
|
|
48
48
|
# end
|
|
@@ -51,7 +51,7 @@ module Spinach
|
|
|
51
51
|
# Runs before every scenario
|
|
52
52
|
#
|
|
53
53
|
# @example
|
|
54
|
-
# Spinach.before_scenario do |scenario_data|
|
|
54
|
+
# Spinach.hooks.before_scenario do |scenario_data|
|
|
55
55
|
# # feature_data is a hash of the parsed scenario data
|
|
56
56
|
# end
|
|
57
57
|
hook :before_scenario
|
|
@@ -59,7 +59,7 @@ module Spinach
|
|
|
59
59
|
# Runs after every scenario
|
|
60
60
|
#
|
|
61
61
|
# @example
|
|
62
|
-
# Spinach.after_scenario do |scenario_data|
|
|
62
|
+
# Spinach.hooks.after_scenario do |scenario_data|
|
|
63
63
|
# # feature_data is a hash of the parsed scenario data
|
|
64
64
|
# end
|
|
65
65
|
hook :after_scenario
|
|
@@ -67,7 +67,7 @@ module Spinach
|
|
|
67
67
|
# Runs before every step execution
|
|
68
68
|
#
|
|
69
69
|
# @example
|
|
70
|
-
# Spinach.before_step do |step_data|
|
|
70
|
+
# Spinach.hooks.before_step do |step_data|
|
|
71
71
|
# # step_data contains a hash with this step's data
|
|
72
72
|
# end
|
|
73
73
|
hook :before_step
|
|
@@ -75,7 +75,7 @@ module Spinach
|
|
|
75
75
|
# Runs after every step execution
|
|
76
76
|
#
|
|
77
77
|
# @example
|
|
78
|
-
# Spinach.before_step do |step_data|
|
|
78
|
+
# Spinach.hooks.before_step do |step_data|
|
|
79
79
|
# # step_data contains a hash with this step's data
|
|
80
80
|
# end
|
|
81
81
|
hook :after_step
|
|
@@ -83,7 +83,7 @@ module Spinach
|
|
|
83
83
|
# Runs after every successful step execution
|
|
84
84
|
#
|
|
85
85
|
# @example
|
|
86
|
-
# Spinach.on_successful_step do |step_data, location|
|
|
86
|
+
# Spinach.hooks.on_successful_step do |step_data, location|
|
|
87
87
|
# # step_data contains a hash with this step's data
|
|
88
88
|
# # step_location contains a string indication this step definition's
|
|
89
89
|
# # location
|
|
@@ -93,7 +93,7 @@ module Spinach
|
|
|
93
93
|
# Runs after every failed step execution
|
|
94
94
|
#
|
|
95
95
|
# @example
|
|
96
|
-
# Spinach.on_failed_step do |step_data, location|
|
|
96
|
+
# Spinach.hooks.on_failed_step do |step_data, location|
|
|
97
97
|
# # step_data contains a hash with this step's data
|
|
98
98
|
# # step_location contains a string indication this step definition's
|
|
99
99
|
# # location
|
|
@@ -103,7 +103,7 @@ module Spinach
|
|
|
103
103
|
# Runs after every step execution that raises an exception
|
|
104
104
|
#
|
|
105
105
|
# @example
|
|
106
|
-
# Spinach.on_error_step do |step_data, location|
|
|
106
|
+
# Spinach.hooks.on_error_step do |step_data, location|
|
|
107
107
|
# # step_data contains a hash with this step's data
|
|
108
108
|
# # step_location contains a string indication this step definition's
|
|
109
109
|
# # location
|
|
@@ -113,7 +113,7 @@ module Spinach
|
|
|
113
113
|
# Runs every time a step which is not defined is called
|
|
114
114
|
#
|
|
115
115
|
# @example
|
|
116
|
-
# Spinach.on_undefined_step do |step_data, location|
|
|
116
|
+
# Spinach.hooks.on_undefined_step do |step_data, location|
|
|
117
117
|
# # step_data contains a hash with this step's data
|
|
118
118
|
# # step_location contains a string indication this step definition's
|
|
119
119
|
# # location
|
|
@@ -124,9 +124,26 @@ module Spinach
|
|
|
124
124
|
# one just before.
|
|
125
125
|
#
|
|
126
126
|
# @example
|
|
127
|
-
# Spinach.on_undefined_step do |step_data|
|
|
127
|
+
# Spinach.hooks.on_undefined_step do |step_data|
|
|
128
128
|
# # step_data contains a hash with this step's data
|
|
129
129
|
# end
|
|
130
130
|
hook :on_skipped_step
|
|
131
|
+
|
|
132
|
+
# Runs before running a scenario with a particular tag
|
|
133
|
+
#
|
|
134
|
+
# @param [String] tag
|
|
135
|
+
# the tag to match
|
|
136
|
+
#
|
|
137
|
+
# @example
|
|
138
|
+
# Spinach.hooks.on_tag('javascript') do
|
|
139
|
+
# # change capybara driver
|
|
140
|
+
# end
|
|
141
|
+
def on_tag(tag)
|
|
142
|
+
before_scenario do |data|
|
|
143
|
+
next unless data["tags"]
|
|
144
|
+
tags = data["tags"].map{ |tag| tag["name"].gsub(/^@/, "") }
|
|
145
|
+
yield(data) if tags.include? tag.to_s
|
|
146
|
+
end
|
|
147
|
+
end
|
|
131
148
|
end
|
|
132
149
|
end
|
data/lib/spinach/runner.rb
CHANGED
|
@@ -70,11 +70,12 @@ module Spinach
|
|
|
70
70
|
successful
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
-
# Loads step definitions
|
|
73
|
+
# Loads support files and step definitions, ensuring that env.rb is loaded
|
|
74
|
+
# first.
|
|
74
75
|
#
|
|
75
76
|
# @api public
|
|
76
77
|
def require_dependencies
|
|
77
|
-
|
|
78
|
+
required_files.each do |file|
|
|
78
79
|
require file
|
|
79
80
|
end
|
|
80
81
|
end
|
|
@@ -95,14 +96,30 @@ module Spinach
|
|
|
95
96
|
)
|
|
96
97
|
end
|
|
97
98
|
|
|
99
|
+
# Returns an array of support files inside the support_path. Will
|
|
100
|
+
# put "env.rb" in the beginning
|
|
101
|
+
#
|
|
98
102
|
# @return [Array<String>] files
|
|
99
103
|
# The support files.
|
|
100
104
|
#
|
|
101
105
|
# @api public
|
|
102
106
|
def support_files
|
|
103
|
-
Dir.glob(
|
|
107
|
+
support_files = Dir.glob(
|
|
104
108
|
File.expand_path File.join(support_path, '**', '*.rb')
|
|
105
109
|
)
|
|
110
|
+
environment_file = support_files.find do |f|
|
|
111
|
+
f.include?(File.join support_path, 'env.rb')
|
|
112
|
+
end
|
|
113
|
+
support_files.unshift(environment_file).compact.uniq
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# @return [Array<String>] files
|
|
117
|
+
# All support files with env.rb ordered first, followed by the step
|
|
118
|
+
# definitions.
|
|
119
|
+
#
|
|
120
|
+
# @api public
|
|
121
|
+
def required_files
|
|
122
|
+
support_files + step_definition_files
|
|
106
123
|
end
|
|
107
124
|
end
|
|
108
125
|
end
|
data/lib/spinach/support.rb
CHANGED
data/lib/spinach/version.rb
CHANGED
data/spinach.gemspec
CHANGED
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |gem|
|
|
|
9
9
|
gem.summary = %q{Spinach is a BDD framework on top of gherkin}
|
|
10
10
|
gem.homepage = "http://github.com/codegram/spinach"
|
|
11
11
|
|
|
12
|
-
gem.add_runtime_dependency 'gherkin'
|
|
12
|
+
gem.add_runtime_dependency 'gherkin', '2.5.4'
|
|
13
13
|
gem.add_runtime_dependency 'colorize'
|
|
14
14
|
gem.add_development_dependency 'rake'
|
|
15
15
|
gem.add_development_dependency 'mocha'
|
data/test/spinach/hooks_test.rb
CHANGED
|
@@ -9,19 +9,46 @@ describe Spinach::Hooks do
|
|
|
9
9
|
%w{before_run after_run before_feature after_feature on_undefined_feature
|
|
10
10
|
before_scenario after_scenario before_step after_step on_successful_step
|
|
11
11
|
on_failed_step on_error_step on_undefined_step on_skipped_step}.each do |callback|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
describe "#{callback}" do
|
|
13
|
+
it "responds to #{callback}" do
|
|
14
|
+
subject.must_respond_to callback
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "executes the hook with params" do
|
|
18
|
+
array = []
|
|
19
|
+
block = Proc.new do |arg1, arg2|
|
|
20
|
+
array << arg1
|
|
21
|
+
array << arg2
|
|
22
|
+
end
|
|
23
|
+
subject.send(callback, &block)
|
|
24
|
+
subject.send("run_#{callback}", 1, 2)
|
|
25
|
+
array.must_equal [1, 2]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
describe "#on_tag" do
|
|
30
|
+
let(:data) do
|
|
31
|
+
{
|
|
32
|
+
'tags' => [{'name' => '@javascript'}, {'name' => '@capture'}]
|
|
33
|
+
}
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "calls the block if the scenario includes the tag" do
|
|
37
|
+
assertion = false
|
|
38
|
+
subject.on_tag('javascript') do
|
|
39
|
+
assertion = true
|
|
40
|
+
end
|
|
41
|
+
subject.run_before_scenario(data)
|
|
42
|
+
assertion.must_equal true
|
|
14
43
|
end
|
|
15
44
|
|
|
16
|
-
it "
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
array << arg2
|
|
45
|
+
it "doesn't call the block if the scenario doesn't include the tag" do
|
|
46
|
+
assertion = false
|
|
47
|
+
subject.on_tag('screenshot') do
|
|
48
|
+
assertion = true
|
|
21
49
|
end
|
|
22
|
-
subject.
|
|
23
|
-
|
|
24
|
-
array.must_equal [1, 2]
|
|
50
|
+
subject.run_before_scenario(data)
|
|
51
|
+
assertion.wont_equal true
|
|
25
52
|
end
|
|
26
53
|
end
|
|
27
54
|
end
|
data/test/spinach/runner_test.rb
CHANGED
|
@@ -56,15 +56,27 @@ describe Spinach::Runner do
|
|
|
56
56
|
runner.run
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
|
+
|
|
59
60
|
describe '#require_dependencies' do
|
|
60
61
|
it 'requires support files and step definitions' do
|
|
61
62
|
runner.stubs(
|
|
62
|
-
|
|
63
|
+
required_files: ['a', 'b']
|
|
63
64
|
)
|
|
64
|
-
%w{a b
|
|
65
|
+
%w{a b}.each do |file|
|
|
65
66
|
runner.expects(:require).with(file)
|
|
66
67
|
end
|
|
67
68
|
runner.require_dependencies
|
|
68
69
|
end
|
|
69
70
|
end
|
|
71
|
+
|
|
72
|
+
describe '#required_files' do
|
|
73
|
+
it 'requires environment files first' do
|
|
74
|
+
runner.stubs(:step_definition_path).returns('steps')
|
|
75
|
+
runner.stubs(:support_path).returns('support')
|
|
76
|
+
Dir.stubs(:glob).returns(['/support/bar.rb', '/support/env.rb', '/support/quz.rb'])
|
|
77
|
+
runner.stubs(:step_definition_files).returns(['/steps/bar.feature'])
|
|
78
|
+
runner.required_files.must_equal(['/support/env.rb', '/support/bar.rb', '/support/quz.rb', '/steps/bar.feature'])
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
70
82
|
end
|
|
@@ -59,8 +59,8 @@ describe Spinach::Support do
|
|
|
59
59
|
describe "#escape" do
|
|
60
60
|
it "escapes the name" do
|
|
61
61
|
Spinach::Support.escape_single_commas(
|
|
62
|
-
"I've been doing
|
|
63
|
-
).must_include "I\\'ve been doing
|
|
62
|
+
"I've been doing things I shouldn't be doing"
|
|
63
|
+
).must_include "I\\'ve been doing things I shouldn\\'t be doing"
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
end
|
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.1.5.
|
|
4
|
+
version: 0.1.5.4
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -12,22 +12,22 @@ authors:
|
|
|
12
12
|
autorequire:
|
|
13
13
|
bindir: bin
|
|
14
14
|
cert_chain: []
|
|
15
|
-
date: 2011-
|
|
15
|
+
date: 2011-11-01 00:00:00.000000000 Z
|
|
16
16
|
dependencies:
|
|
17
17
|
- !ruby/object:Gem::Dependency
|
|
18
18
|
name: gherkin
|
|
19
|
-
requirement: &
|
|
19
|
+
requirement: &70148296624980 !ruby/object:Gem::Requirement
|
|
20
20
|
none: false
|
|
21
21
|
requirements:
|
|
22
|
-
- -
|
|
22
|
+
- - =
|
|
23
23
|
- !ruby/object:Gem::Version
|
|
24
|
-
version:
|
|
24
|
+
version: 2.5.4
|
|
25
25
|
type: :runtime
|
|
26
26
|
prerelease: false
|
|
27
|
-
version_requirements: *
|
|
27
|
+
version_requirements: *70148296624980
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: colorize
|
|
30
|
-
requirement: &
|
|
30
|
+
requirement: &70148296623440 !ruby/object:Gem::Requirement
|
|
31
31
|
none: false
|
|
32
32
|
requirements:
|
|
33
33
|
- - ! '>='
|
|
@@ -35,10 +35,10 @@ dependencies:
|
|
|
35
35
|
version: '0'
|
|
36
36
|
type: :runtime
|
|
37
37
|
prerelease: false
|
|
38
|
-
version_requirements: *
|
|
38
|
+
version_requirements: *70148296623440
|
|
39
39
|
- !ruby/object:Gem::Dependency
|
|
40
40
|
name: rake
|
|
41
|
-
requirement: &
|
|
41
|
+
requirement: &70148296622320 !ruby/object:Gem::Requirement
|
|
42
42
|
none: false
|
|
43
43
|
requirements:
|
|
44
44
|
- - ! '>='
|
|
@@ -46,10 +46,10 @@ dependencies:
|
|
|
46
46
|
version: '0'
|
|
47
47
|
type: :development
|
|
48
48
|
prerelease: false
|
|
49
|
-
version_requirements: *
|
|
49
|
+
version_requirements: *70148296622320
|
|
50
50
|
- !ruby/object:Gem::Dependency
|
|
51
51
|
name: mocha
|
|
52
|
-
requirement: &
|
|
52
|
+
requirement: &70148296619140 !ruby/object:Gem::Requirement
|
|
53
53
|
none: false
|
|
54
54
|
requirements:
|
|
55
55
|
- - ! '>='
|
|
@@ -57,10 +57,10 @@ dependencies:
|
|
|
57
57
|
version: '0'
|
|
58
58
|
type: :development
|
|
59
59
|
prerelease: false
|
|
60
|
-
version_requirements: *
|
|
60
|
+
version_requirements: *70148296619140
|
|
61
61
|
- !ruby/object:Gem::Dependency
|
|
62
62
|
name: sinatra
|
|
63
|
-
requirement: &
|
|
63
|
+
requirement: &70148296617420 !ruby/object:Gem::Requirement
|
|
64
64
|
none: false
|
|
65
65
|
requirements:
|
|
66
66
|
- - ! '>='
|
|
@@ -68,10 +68,10 @@ dependencies:
|
|
|
68
68
|
version: '0'
|
|
69
69
|
type: :development
|
|
70
70
|
prerelease: false
|
|
71
|
-
version_requirements: *
|
|
71
|
+
version_requirements: *70148296617420
|
|
72
72
|
- !ruby/object:Gem::Dependency
|
|
73
73
|
name: capybara
|
|
74
|
-
requirement: &
|
|
74
|
+
requirement: &70148296616720 !ruby/object:Gem::Requirement
|
|
75
75
|
none: false
|
|
76
76
|
requirements:
|
|
77
77
|
- - ! '>='
|
|
@@ -79,10 +79,10 @@ dependencies:
|
|
|
79
79
|
version: '0'
|
|
80
80
|
type: :development
|
|
81
81
|
prerelease: false
|
|
82
|
-
version_requirements: *
|
|
82
|
+
version_requirements: *70148296616720
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: aruba
|
|
85
|
-
requirement: &
|
|
85
|
+
requirement: &70148296615940 !ruby/object:Gem::Requirement
|
|
86
86
|
none: false
|
|
87
87
|
requirements:
|
|
88
88
|
- - ! '>='
|
|
@@ -90,10 +90,10 @@ dependencies:
|
|
|
90
90
|
version: '0'
|
|
91
91
|
type: :development
|
|
92
92
|
prerelease: false
|
|
93
|
-
version_requirements: *
|
|
93
|
+
version_requirements: *70148296615940
|
|
94
94
|
- !ruby/object:Gem::Dependency
|
|
95
95
|
name: pry
|
|
96
|
-
requirement: &
|
|
96
|
+
requirement: &70148296615000 !ruby/object:Gem::Requirement
|
|
97
97
|
none: false
|
|
98
98
|
requirements:
|
|
99
99
|
- - ! '>='
|
|
@@ -101,10 +101,10 @@ dependencies:
|
|
|
101
101
|
version: '0'
|
|
102
102
|
type: :development
|
|
103
103
|
prerelease: false
|
|
104
|
-
version_requirements: *
|
|
104
|
+
version_requirements: *70148296615000
|
|
105
105
|
- !ruby/object:Gem::Dependency
|
|
106
106
|
name: simplecov
|
|
107
|
-
requirement: &
|
|
107
|
+
requirement: &70148296613140 !ruby/object:Gem::Requirement
|
|
108
108
|
none: false
|
|
109
109
|
requirements:
|
|
110
110
|
- - ! '>='
|
|
@@ -112,10 +112,10 @@ dependencies:
|
|
|
112
112
|
version: '0'
|
|
113
113
|
type: :development
|
|
114
114
|
prerelease: false
|
|
115
|
-
version_requirements: *
|
|
115
|
+
version_requirements: *70148296613140
|
|
116
116
|
- !ruby/object:Gem::Dependency
|
|
117
117
|
name: rspec
|
|
118
|
-
requirement: &
|
|
118
|
+
requirement: &70148296612020 !ruby/object:Gem::Requirement
|
|
119
119
|
none: false
|
|
120
120
|
requirements:
|
|
121
121
|
- - ! '>='
|
|
@@ -123,10 +123,10 @@ dependencies:
|
|
|
123
123
|
version: '0'
|
|
124
124
|
type: :development
|
|
125
125
|
prerelease: false
|
|
126
|
-
version_requirements: *
|
|
126
|
+
version_requirements: *70148296612020
|
|
127
127
|
- !ruby/object:Gem::Dependency
|
|
128
128
|
name: fakefs
|
|
129
|
-
requirement: &
|
|
129
|
+
requirement: &70148296610520 !ruby/object:Gem::Requirement
|
|
130
130
|
none: false
|
|
131
131
|
requirements:
|
|
132
132
|
- - ! '>='
|
|
@@ -134,10 +134,10 @@ dependencies:
|
|
|
134
134
|
version: '0'
|
|
135
135
|
type: :development
|
|
136
136
|
prerelease: false
|
|
137
|
-
version_requirements: *
|
|
137
|
+
version_requirements: *70148296610520
|
|
138
138
|
- !ruby/object:Gem::Dependency
|
|
139
139
|
name: minitest
|
|
140
|
-
requirement: &
|
|
140
|
+
requirement: &70148296608440 !ruby/object:Gem::Requirement
|
|
141
141
|
none: false
|
|
142
142
|
requirements:
|
|
143
143
|
- - ! '>='
|
|
@@ -145,10 +145,10 @@ dependencies:
|
|
|
145
145
|
version: '0'
|
|
146
146
|
type: :development
|
|
147
147
|
prerelease: false
|
|
148
|
-
version_requirements: *
|
|
148
|
+
version_requirements: *70148296608440
|
|
149
149
|
- !ruby/object:Gem::Dependency
|
|
150
150
|
name: turn
|
|
151
|
-
requirement: &
|
|
151
|
+
requirement: &70148296607360 !ruby/object:Gem::Requirement
|
|
152
152
|
none: false
|
|
153
153
|
requirements:
|
|
154
154
|
- - ! '>='
|
|
@@ -156,7 +156,7 @@ dependencies:
|
|
|
156
156
|
version: '0'
|
|
157
157
|
type: :development
|
|
158
158
|
prerelease: false
|
|
159
|
-
version_requirements: *
|
|
159
|
+
version_requirements: *70148296607360
|
|
160
160
|
description: Spinach is a BDD framework on top of gherkin
|
|
161
161
|
email:
|
|
162
162
|
- info@codegram.com
|
|
@@ -263,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
263
263
|
version: '0'
|
|
264
264
|
requirements: []
|
|
265
265
|
rubyforge_project:
|
|
266
|
-
rubygems_version: 1.8.
|
|
266
|
+
rubygems_version: 1.8.10
|
|
267
267
|
signing_key:
|
|
268
268
|
specification_version: 3
|
|
269
269
|
summary: Spinach is a BDD framework on top of gherkin
|
|
@@ -308,3 +308,4 @@ test_files:
|
|
|
308
308
|
- test/spinach/support_test.rb
|
|
309
309
|
- test/spinach_test.rb
|
|
310
310
|
- test/test_helper.rb
|
|
311
|
+
has_rdoc:
|