spinach 0.3.2 → 0.3.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.
@@ -40,16 +40,26 @@ module Spinach
40
40
  stream.reopen(old_stream)
41
41
  end
42
42
  end
43
-
44
- Spinach.hooks.after_scenario do
45
- ::Capybara.current_session.reset! if ::Capybara.app
46
- ::Capybara.use_default_driver
47
- end
48
-
49
- Spinach.hooks.on_tag('javascript') do
50
- ::Capybara.current_driver = ::Capybara.javascript_driver
51
- end
52
43
  end
53
44
  end
54
45
  end
55
46
  end
47
+
48
+ Spinach.hooks.after_scenario do
49
+ ::Capybara.current_session.reset! if ::Capybara.app
50
+ ::Capybara.use_default_driver
51
+ end
52
+
53
+ Spinach.hooks.on_tag('javascript') do
54
+ ::Capybara.current_driver = ::Capybara.javascript_driver
55
+ end
56
+
57
+ open_page = Proc.new do |*args|
58
+ if Spinach.config.save_and_open_page_on_failure
59
+ step_definitions = args.last
60
+ step_definitions.send(:save_and_open_page)
61
+ end
62
+ end
63
+
64
+ Spinach.hooks.on_error_step(&open_page)
65
+ Spinach.hooks.on_failed_step(&open_page)
@@ -21,7 +21,7 @@ module Spinach
21
21
  #
22
22
  class Config
23
23
  attr_writer :features_path, :step_definitions_path, :default_reporter, :support_path,
24
- :failure_exceptions, :config_path
24
+ :failure_exceptions, :config_path, :save_and_open_page_on_failure
25
25
 
26
26
  # The "features path" holds the place where your features will be
27
27
  # searched for. Defaults to 'features'
@@ -106,6 +106,13 @@ module Spinach
106
106
  @config_path ||= 'config/spinach.yml'
107
107
  end
108
108
 
109
+ # When using capybara, it automatically shows the current page when there's
110
+ # a failure
111
+ #
112
+ def save_and_open_page_on_failure
113
+ @save_and_open_page_on_failure ||= false
114
+ end
115
+
109
116
  # Parse options from the config file
110
117
  #
111
118
  # @return [Boolean]
data/lib/spinach/hooks.rb CHANGED
@@ -51,14 +51,14 @@ module Spinach
51
51
  # Runs before every scenario
52
52
  #
53
53
  # @example
54
- # Spinach.hooks.before_scenario do |scenario_data|
54
+ # Spinach.hooks.before_scenario do |scenario_data, step_definitions|
55
55
  # # feature_data is a hash of the parsed scenario data
56
56
  # end
57
57
  hook :before_scenario
58
58
 
59
59
  # Runs around every scenario
60
60
  # @example
61
- # Spinach.hooks.around_scenario do |scenario_data, &block|
61
+ # Spinach.hooks.around_scenario do |scenario_data, step_definitions, &block|
62
62
  # # feature_data is a hash of the parsed scenario data
63
63
  # block.call
64
64
  # end
@@ -67,7 +67,7 @@ module Spinach
67
67
  # Runs after every scenario
68
68
  #
69
69
  # @example
70
- # Spinach.hooks.after_scenario do |scenario_data|
70
+ # Spinach.hooks.after_scenario do |scenario_data, step_definitions|
71
71
  # # feature_data is a hash of the parsed scenario data
72
72
  # end
73
73
  hook :after_scenario
@@ -75,7 +75,7 @@ module Spinach
75
75
  # Runs before every step execution
76
76
  #
77
77
  # @example
78
- # Spinach.hooks.before_step do |step_data|
78
+ # Spinach.hooks.before_step do |step_data, step_definitions|
79
79
  # # step_data contains a hash with this step's data
80
80
  # end
81
81
  hook :before_step
@@ -83,7 +83,7 @@ module Spinach
83
83
  # Runs after every step execution
84
84
  #
85
85
  # @example
86
- # Spinach.hooks.before_step do |step_data|
86
+ # Spinach.hooks.before_step do |step_data, step_definitions|
87
87
  # # step_data contains a hash with this step's data
88
88
  # end
89
89
  hook :after_step
@@ -91,7 +91,7 @@ module Spinach
91
91
  # Runs after every successful step execution
92
92
  #
93
93
  # @example
94
- # Spinach.hooks.on_successful_step do |step_data, location|
94
+ # Spinach.hooks.on_successful_step do |step_data, location, step_definitions|
95
95
  # # step_data contains a hash with this step's data
96
96
  # # step_location contains a string indication this step definition's
97
97
  # # location
@@ -101,7 +101,7 @@ module Spinach
101
101
  # Runs after every failed step execution
102
102
  #
103
103
  # @example
104
- # Spinach.hooks.on_failed_step do |step_data, location|
104
+ # Spinach.hooks.on_failed_step do |step_data, exception, location, step_definitions|
105
105
  # # step_data contains a hash with this step's data
106
106
  # # step_location contains a string indication this step definition's
107
107
  # # location
@@ -111,7 +111,7 @@ module Spinach
111
111
  # Runs after every step execution that raises an exception
112
112
  #
113
113
  # @example
114
- # Spinach.hooks.on_error_step do |step_data, location|
114
+ # Spinach.hooks.on_error_step do |step_data, exception, location, step_definitions|
115
115
  # # step_data contains a hash with this step's data
116
116
  # # step_location contains a string indication this step definition's
117
117
  # # location
@@ -121,7 +121,7 @@ module Spinach
121
121
  # Runs every time a step which is not defined is called
122
122
  #
123
123
  # @example
124
- # Spinach.hooks.on_undefined_step do |step_data, location|
124
+ # Spinach.hooks.on_undefined_step do |step_data, exception, location, step_definitions|
125
125
  # # step_data contains a hash with this step's data
126
126
  # # step_location contains a string indication this step definition's
127
127
  # # location
@@ -132,7 +132,7 @@ module Spinach
132
132
  # one just before.
133
133
  #
134
134
  # @example
135
- # Spinach.hooks.on_undefined_step do |step_data|
135
+ # Spinach.hooks.on_undefined_step do |step_data, step_definitions|
136
136
  # # step_data contains a hash with this step's data
137
137
  # end
138
138
  hook :on_skipped_step
@@ -41,8 +41,8 @@ module Spinach
41
41
 
42
42
  hooks.before_feature { |*args| set_current_feature(*args) }
43
43
  hooks.after_feature { |*args| clear_current_feature(*args) }
44
- hooks.before_scenario { |*args| set_current_scenario(*args) }
45
- hooks.after_scenario { |*args| clear_current_scenario(*args) }
44
+ hooks.before_scenario { |*args| set_current_scenario(args.first) }
45
+ hooks.after_scenario { |*args| clear_current_scenario(args.first) }
46
46
  end
47
47
  end
48
48
 
@@ -46,7 +46,7 @@ module Spinach
46
46
  # @param [Hash] data
47
47
  # The feature in a JSON Gherkin format
48
48
  #
49
- def before_scenario_run(scenario)
49
+ def before_scenario_run(scenario, step_definitions = nil)
50
50
  @max_step_name_length = scenario.steps.map(&:name).map(&:length).max if scenario.steps.any?
51
51
  name = scenario.name
52
52
  out.puts "\n #{'Scenario:'.green} #{name.light_green}"
@@ -57,7 +57,7 @@ module Spinach
57
57
  # @param [Hash] data
58
58
  # The feature in a JSON Gherkin format
59
59
  #
60
- def after_scenario_run(scenario)
60
+ def after_scenario_run(scenario, step_definitions = nil)
61
61
  if scenario_error
62
62
  report_error(scenario_error, :full)
63
63
  self.scenario_error = nil
@@ -72,7 +72,7 @@ module Spinach
72
72
  # @param [Array] step_location
73
73
  # The step source location
74
74
  #
75
- def on_successful_step(step, step_location)
75
+ def on_successful_step(step, step_location, step_definitions = nil)
76
76
  output_step('✔', step, :green, step_location)
77
77
  self.scenario = [current_feature, current_scenario, step]
78
78
  successful_steps << scenario
@@ -86,7 +86,7 @@ module Spinach
86
86
  # @param [Exception] failure
87
87
  # The exception that caused the failure
88
88
  #
89
- def on_failed_step(step, failure, step_location)
89
+ def on_failed_step(step, failure, step_location, step_definitions = nil)
90
90
  output_step('✘', step, :red, step_location)
91
91
  self.scenario_error = [current_feature, current_scenario, step, failure]
92
92
  failed_steps << scenario_error
@@ -100,7 +100,7 @@ module Spinach
100
100
  # @param [Exception] failure
101
101
  # The exception that caused the failure
102
102
  #
103
- def on_error_step(step, failure, step_location)
103
+ def on_error_step(step, failure, step_location, step_definitions = nil)
104
104
  output_step('!', step, :red, step_location)
105
105
  self.scenario_error = [current_feature, current_scenario, step, failure]
106
106
  error_steps << scenario_error
@@ -111,7 +111,7 @@ module Spinach
111
111
  # @param [Hash] step
112
112
  # The step in a JSON Gherkin format
113
113
  #
114
- def on_undefined_step(step, failure)
114
+ def on_undefined_step(step, failure, step_definitions = nil)
115
115
  output_step('?', step, :yellow)
116
116
  self.scenario_error = [current_feature, current_scenario, step, failure]
117
117
  undefined_steps << scenario_error
@@ -145,7 +145,7 @@ module Spinach
145
145
  # @param [Hash] step
146
146
  # The step that Gherkin extracts
147
147
  #
148
- def on_skipped_step(step)
148
+ def on_skipped_step(step, step_definitions = nil)
149
149
  output_step('~', step, :cyan)
150
150
  end
151
151
 
@@ -43,24 +43,24 @@ module Spinach
43
43
  #
44
44
  # @api public
45
45
  def run
46
- Spinach.hooks.run_before_scenario @scenario
46
+ Spinach.hooks.run_before_scenario @scenario, step_definitions
47
47
  scenario_run = false
48
- Spinach.hooks.run_around_scenario @scenario do
48
+ Spinach.hooks.run_around_scenario @scenario, step_definitions do
49
49
  scenario_run = true
50
50
  steps.each do |step|
51
- Spinach.hooks.run_before_step step
51
+ Spinach.hooks.run_before_step step, step_definitions
52
52
 
53
53
  if @exception
54
- Spinach.hooks.run_on_skipped_step step
54
+ Spinach.hooks.run_on_skipped_step step, step_definitions
55
55
  else
56
56
  run_step(step)
57
57
  end
58
58
 
59
- Spinach.hooks.run_after_step step
59
+ Spinach.hooks.run_after_step step, step_definitions
60
60
  end
61
61
  end
62
62
  raise "around_scenario hooks *must* yield" if !scenario_run && !@exception
63
- Spinach.hooks.run_after_scenario @scenario
63
+ Spinach.hooks.run_after_scenario @scenario, step_definitions
64
64
  !@exception
65
65
  end
66
66
 
@@ -73,16 +73,16 @@ module Spinach
73
73
  def run_step(step)
74
74
  step_location = step_definitions.step_location_for(step.name)
75
75
  step_definitions.execute(step)
76
- Spinach.hooks.run_on_successful_step step, step_location
76
+ Spinach.hooks.run_on_successful_step step, step_location, step_definitions
77
77
  rescue *Spinach.config[:failure_exceptions] => e
78
78
  @exception = e
79
- Spinach.hooks.run_on_failed_step step, @exception, step_location
79
+ Spinach.hooks.run_on_failed_step step, @exception, step_location, step_definitions
80
80
  rescue Spinach::StepNotDefinedException => e
81
81
  @exception = e
82
- Spinach.hooks.run_on_undefined_step step, @exception
82
+ Spinach.hooks.run_on_undefined_step step, @exception, step_definitions
83
83
  rescue Exception => e
84
84
  @exception = e
85
- Spinach.hooks.run_on_error_step step, @exception, step_location
85
+ Spinach.hooks.run_on_error_step step, @exception, step_location, step_definitions
86
86
  end
87
87
 
88
88
  end
@@ -1,4 +1,4 @@
1
1
  module Spinach
2
2
  # Spinach version.
3
- VERSION = "0.3.2"
3
+ VERSION = "0.3.3"
4
4
  end
@@ -17,18 +17,24 @@ describe Spinach::FeatureSteps::Capybara do
17
17
 
18
18
  Capybara.app = @sinatra_app
19
19
 
20
- @feature = Class.new(Spinach::FeatureSteps) do
20
+ class TestFeature < Spinach::FeatureSteps
21
21
  include Spinach::FeatureSteps::Capybara
22
22
  feature 'A test feature'
23
23
  Given 'Hello' do
24
24
  end
25
25
  Then 'Goodbye' do
26
26
  end
27
+ Given 'Fail' do
28
+ 1.must_equal 2
29
+ end
27
30
  def go_home
28
31
  visit '/'
29
32
  page
30
33
  end
31
- end.new
34
+ end
35
+
36
+ @feature_class = TestFeature
37
+ @feature = @feature_class.new
32
38
  end
33
39
 
34
40
  let(:parsed_feature) { Spinach::Parser.new("""
@@ -44,8 +50,15 @@ Feature: A test feature
44
50
  """).parse
45
51
  }
46
52
 
53
+ let(:failing_feature) { Spinach::Parser.new("""
54
+ Feature: A test feature
55
+ Scenario: A test scenario
56
+ Given Fail
57
+ """).parse
58
+ }
59
+
47
60
  it 'includes capybara into all features' do
48
- @feature.kind_of? Capybara
61
+ @feature.kind_of?(Capybara::DSL).must_equal true
49
62
  end
50
63
 
51
64
  it 'goes to a capybara page and returns its result' do
@@ -77,4 +90,20 @@ Feature: A test feature
77
90
 
78
91
  @feature_runner.run
79
92
  end
93
+
94
+ describe "when there's a failure" do
95
+ it 'saves and open the page if the option is activated' do
96
+ @feature_runner = Spinach::Runner::FeatureRunner.new(failing_feature)
97
+ Spinach.config.save_and_open_page_on_failure = true
98
+ @feature_class.any_instance.expects(:save_and_open_page).once
99
+ @feature_runner.run
100
+ end
101
+
102
+ it "doesn't saves and open the page if the option is deactivated" do
103
+ @feature_runner = Spinach::Runner::FeatureRunner.new(failing_feature)
104
+ Spinach.config.save_and_open_page_on_failure = false
105
+ Capybara.expects(:save_and_open_page).never
106
+ @feature_runner.run
107
+ end
108
+ end
80
109
  end
@@ -72,6 +72,7 @@ describe Spinach::Reporter::Stdout do
72
72
  describe '#on_successful_step' do
73
73
  let(:step) { stub(keyword: 'Given', name: 'I am too cool') }
74
74
  let(:step_location){['error_step_location', 1]}
75
+ let(:step_definitions){ stub }
75
76
  it 'adds the step to the output buffer' do
76
77
  @reporter.on_successful_step(step, step_location)
77
78
 
@@ -13,6 +13,7 @@ module Spinach
13
13
  end
14
14
 
15
15
  subject { ScenarioRunner.new(scenario) }
16
+ let(:step_definitions){ subject.step_definitions }
16
17
 
17
18
  describe 'delegations' do
18
19
  it 'delegates #feature to the scenario' do
@@ -38,18 +39,18 @@ module Spinach
38
39
  hooks = sequence('hooks')
39
40
  subject.stubs(:step_definitions).returns step_definitions = stub
40
41
 
41
- Spinach.hooks.expects(:run_before_scenario).with(scenario).in_sequence(hooks)
42
- Spinach.hooks.expects(:run_around_scenario).with(scenario).in_sequence(hooks).yields
42
+ Spinach.hooks.expects(:run_before_scenario).with(scenario, step_definitions).in_sequence(hooks)
43
+ Spinach.hooks.expects(:run_around_scenario).with(scenario, step_definitions).in_sequence(hooks).yields
43
44
 
44
- Spinach.hooks.expects(:run_before_step).with(steps.first).in_sequence(hooks)
45
+ Spinach.hooks.expects(:run_before_step).with(steps.first, step_definitions).in_sequence(hooks)
45
46
  subject.expects(:run_step).with(steps.first)
46
- Spinach.hooks.expects(:run_after_step).with(steps.first).in_sequence(hooks)
47
+ Spinach.hooks.expects(:run_after_step).with(steps.first, step_definitions).in_sequence(hooks)
47
48
 
48
- Spinach.hooks.expects(:run_before_step).with(steps.last).in_sequence(hooks)
49
+ Spinach.hooks.expects(:run_before_step).with(steps.last, step_definitions).in_sequence(hooks)
49
50
  subject.expects(:run_step).with(steps.last)
50
- Spinach.hooks.expects(:run_after_step).with(steps.last).in_sequence(hooks)
51
+ Spinach.hooks.expects(:run_after_step).with(steps.last, step_definitions).in_sequence(hooks)
51
52
 
52
- Spinach.hooks.expects(:run_after_scenario).with(scenario).in_sequence(hooks)
53
+ Spinach.hooks.expects(:run_after_scenario).with(scenario, step_definitions).in_sequence(hooks)
53
54
 
54
55
  subject.run
55
56
  end
@@ -57,7 +58,7 @@ module Spinach
57
58
  it 'raises if around hook does not yield' do
58
59
  subject.stubs(:step_definitions).returns stub
59
60
 
60
- Spinach.hooks.stubs(:run_around_scenario).with(scenario)
61
+ Spinach.hooks.stubs(:run_around_scenario).with(scenario, step_definitions)
61
62
 
62
63
  proc do
63
64
  subject.run
@@ -77,7 +78,7 @@ module Spinach
77
78
  describe 'when the step is successful' do
78
79
  it 'runs the successful hooks' do
79
80
  @step_definitions.stubs(:execute).with(@step).returns true
80
- Spinach.hooks.expects(:run_on_successful_step).with(@step, @location)
81
+ Spinach.hooks.expects(:run_on_successful_step).with(@step, @location, @step_definitions)
81
82
 
82
83
  subject.run_step(@step)
83
84
  end
@@ -96,7 +97,7 @@ module Spinach
96
97
  end
97
98
 
98
99
  it 'runs the failed hooks' do
99
- Spinach.hooks.expects(:run_on_failed_step).with(@step, kind_of(@failure_exception), @location)
100
+ Spinach.hooks.expects(:run_on_failed_step).with(@step, kind_of(@failure_exception), @location, @step_definitions)
100
101
  subject.run_step(@step)
101
102
  end
102
103
  end
@@ -112,7 +113,7 @@ module Spinach
112
113
  end
113
114
 
114
115
  it 'runs the undefined hooks' do
115
- Spinach.hooks.expects(:run_on_undefined_step).with(@step, kind_of(Spinach::StepNotDefinedException))
116
+ Spinach.hooks.expects(:run_on_undefined_step).with(@step, kind_of(Spinach::StepNotDefinedException), @step_definitions)
116
117
  subject.run_step(@step)
117
118
  end
118
119
  end
@@ -128,7 +129,7 @@ module Spinach
128
129
  end
129
130
 
130
131
  it 'runs the error hooks' do
131
- Spinach.hooks.expects(:run_on_error_step).with(@step, kind_of(StandardError), @location)
132
+ Spinach.hooks.expects(:run_on_error_step).with(@step, kind_of(StandardError), @location, @step_definitions)
132
133
  subject.run_step(@step)
133
134
  end
134
135
  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.3.2
4
+ version: 0.3.3
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-03-20 00:00:00.000000000 Z
15
+ date: 2012-03-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: gherkin-ruby
19
- requirement: &70349778016000 !ruby/object:Gem::Requirement
19
+ requirement: &2160936860 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ~>
@@ -24,10 +24,10 @@ dependencies:
24
24
  version: 0.1.0
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *70349778016000
27
+ version_requirements: *2160936860
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: colorize
30
- requirement: &70349778019280 !ruby/object:Gem::Requirement
30
+ requirement: &2160936440 !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: *70349778019280
38
+ version_requirements: *2160936440
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rake
41
- requirement: &70349777935200 !ruby/object:Gem::Requirement
41
+ requirement: &2160935980 !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: *70349777935200
49
+ version_requirements: *2160935980
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: mocha
52
- requirement: &70349777559000 !ruby/object:Gem::Requirement
52
+ requirement: &2160935560 !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: *70349777559000
60
+ version_requirements: *2160935560
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: sinatra
63
- requirement: &70349777661240 !ruby/object:Gem::Requirement
63
+ requirement: &2160935140 !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: *70349777661240
71
+ version_requirements: *2160935140
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: capybara
74
- requirement: &70349773533380 !ruby/object:Gem::Requirement
74
+ requirement: &2160934700 !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: *70349773533380
82
+ version_requirements: *2160934700
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: open4
85
- requirement: &70349773504080 !ruby/object:Gem::Requirement
85
+ requirement: &2160934280 !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: *70349773504080
93
+ version_requirements: *2160934280
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: pry
96
- requirement: &70349773438720 !ruby/object:Gem::Requirement
96
+ requirement: &2160933860 !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: *70349773438720
104
+ version_requirements: *2160933860
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: simplecov
107
- requirement: &70349773411420 !ruby/object:Gem::Requirement
107
+ requirement: &2160933420 !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: *70349773411420
115
+ version_requirements: *2160933420
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: rspec
118
- requirement: &70349773406720 !ruby/object:Gem::Requirement
118
+ requirement: &2160933000 !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: *70349773406720
126
+ version_requirements: *2160933000
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: fakefs
129
- requirement: &70349773405900 !ruby/object:Gem::Requirement
129
+ requirement: &2160932580 !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: *70349773405900
137
+ version_requirements: *2160932580
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: minitest
140
- requirement: &70349773405100 !ruby/object:Gem::Requirement
140
+ requirement: &2160932080 !ruby/object:Gem::Requirement
141
141
  none: false
142
142
  requirements:
143
143
  - - ~>
@@ -145,10 +145,10 @@ dependencies:
145
145
  version: '2.0'
146
146
  type: :development
147
147
  prerelease: false
148
- version_requirements: *70349773405100
148
+ version_requirements: *2160932080
149
149
  - !ruby/object:Gem::Dependency
150
150
  name: turn
151
- requirement: &70349773404240 !ruby/object:Gem::Requirement
151
+ requirement: &2160931660 !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: *70349773404240
159
+ version_requirements: *2160931660
160
160
  description: Spinach is a BDD framework on top of gherkin
161
161
  email:
162
162
  - info@codegram.com
@@ -268,15 +268,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
268
  - - ! '>='
269
269
  - !ruby/object:Gem::Version
270
270
  version: '0'
271
+ segments:
272
+ - 0
273
+ hash: 3946527158097990849
271
274
  required_rubygems_version: !ruby/object:Gem::Requirement
272
275
  none: false
273
276
  requirements:
274
277
  - - ! '>='
275
278
  - !ruby/object:Gem::Version
276
279
  version: '0'
280
+ segments:
281
+ - 0
282
+ hash: 3946527158097990849
277
283
  requirements: []
278
284
  rubyforge_project:
279
- rubygems_version: 1.8.16
285
+ rubygems_version: 1.8.15
280
286
  signing_key:
281
287
  specification_version: 3
282
288
  summary: Spinach is a BDD framework on top of gherkin