spinach 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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