spinach 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -3,6 +3,5 @@ env:
3
3
  rvm:
4
4
  - 1.9.2
5
5
  - 1.9.3
6
- - ruby-head
7
- # - rbx-2.0
6
+ # - rbx
8
7
  # - jruby
data/Gemfile CHANGED
@@ -9,6 +9,7 @@ group :test do
9
9
  gem 'guard'
10
10
  gem 'guard-minitest'
11
11
  gem 'guard-spinach'
12
+ gem 'capybara'
12
13
  end
13
14
 
14
15
  group :darwin do
data/README.markdown CHANGED
@@ -1,4 +1,4 @@
1
- # Spinach - BDD framework on top of Gherkin [![Build Status](https://secure.travis-ci.org/codegram/spinach.png)](http://travis-ci.org/codegram/spinach)
1
+ # Spinach - BDD framework on top of Gherkin [![Build Status](https://secure.travis-ci.org/codegram/spinach.png)](http://travis-ci.org/codegram/spinach) [![Dependency Status](https://gemnasium.com/codegram/spinach.png)](http://gemnasium.com/codegram/spinach)
2
2
 
3
3
  Spinach is a high-level BDD framework that leverages the expressive
4
4
  [Gherkin language][gherkin] (used by [Cucumber][cucumber]) to help you define
@@ -3,6 +3,11 @@ Feature: RSpec compatibility
3
3
  As a RSpec developer
4
4
  I want spinach to detect my rspec failures as failures instead of errors
5
5
 
6
+ Scenario: Everything works as expected
7
+ Given I have a feature that should completely pass
8
+ When I run "spinach" with rspec
9
+ Then there should be no error
10
+
6
11
  Scenario: An expectation fails
7
12
  Given I have a feature with some failed expectations
8
13
  When I run "spinach" with rspec
@@ -5,6 +5,24 @@ class RSpecCompatibility < Spinach::FeatureSteps
5
5
  include Integration::SpinachRunner
6
6
  include Integration::ErrorReporting
7
7
 
8
+ Given 'I have a feature that should completely pass' do
9
+ write_file('features/feature_without_failures.feature', """
10
+ Feature: Feature without failures
11
+
12
+ Scenario: This scenario will pass
13
+ Then RSpec expectations and matchers are available
14
+ """)
15
+
16
+ write_file('features/steps/rspec_feature.rb',
17
+ 'class FeatureWithoutFailures < Spinach::FeatureSteps
18
+ feature "Feature without failures"
19
+ Then "RSpec expectations and matchers are available" do
20
+ 42.0.should be_within(0.2).of(42.1)
21
+ end
22
+ end')
23
+ @feature = 'feature_without_failures'
24
+ end
25
+
8
26
  Given "I have a feature with some failed expectations" do
9
27
  write_file('features/feature_with_failures.feature', """
10
28
  Feature: Feature with failures
@@ -5,11 +5,11 @@ module Integration
5
5
  include Filesystem
6
6
 
7
7
  def check_error_messages(n = 1)
8
- @stderr.must_match /Failures \(1\)/
8
+ @stderr.must_match /Failures \(#{n}\)/
9
9
  end
10
10
 
11
11
  def check_backtrace(n = 1)
12
- @stderr.must_match /Failures \(1\)/
12
+ @stderr.must_match /Failures \(#{n}\)/
13
13
  @stderr.must_match /gems.*(minitest|rspec).*assert_equal/
14
14
  end
15
15
  end
@@ -4,14 +4,27 @@ module Spinach
4
4
  class FeatureSteps
5
5
  include DSL
6
6
 
7
- # Registers the feature class for later use.
8
- #
9
- # @param [Class] base
10
- # The host class.
11
- #
12
- # @api public
13
- def self.inherited(base)
14
- Spinach.feature_steps << base
7
+ class << self
8
+ # Registers the feature class for later use.
9
+ #
10
+ # @param [Class] base
11
+ # The host class.
12
+ #
13
+ # @api public
14
+ def inherited(base)
15
+ Spinach.feature_steps << base
16
+ end
17
+
18
+ alias_method :include_private, :include
19
+
20
+ # Exposes the include method publicly so you can add more modules to it
21
+ # due its plastic nature.
22
+ #
23
+ # @example
24
+ # Spinach::FeatureSteps.include Capybara::DSL
25
+ def include(*args)
26
+ include_private(*args)
27
+ end
15
28
  end
16
29
  end
17
30
  end
@@ -1,4 +1,4 @@
1
1
  require 'minitest/spec'
2
2
  MiniTest::Spec.new nil if defined?(MiniTest::Spec)
3
3
  Spinach.config[:failure_exceptions] << MiniTest::Assertion
4
- Spinach::FeatureSteps.send(:include, MiniTest::Assertions)
4
+ Spinach::FeatureSteps.include MiniTest::Assertions
@@ -1 +1,2 @@
1
1
  Spinach.config[:failure_exceptions] << RSpec::Expectations::ExpectationNotMetError
2
+ Spinach::FeatureSteps.include RSpec::Matchers
@@ -33,7 +33,6 @@ module Spinach
33
33
  def generate
34
34
  result = StringIO.new
35
35
  result.puts "class #{Spinach::Support.camelize name} < Spinach::FeatureSteps"
36
- result.puts " feature \'#{Spinach::Support.escape_single_commas name}\'\n"
37
36
  generated_steps = steps.map do |step|
38
37
  step_generator = Generators::StepGenerator.new(step)
39
38
  step_generator.generate.split("\n").map do |line|
@@ -1,4 +1,4 @@
1
1
  module Spinach
2
2
  # Spinach version.
3
- VERSION = "0.3.1"
3
+ VERSION = "0.3.2"
4
4
  end
data/spinach.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.add_development_dependency 'simplecov'
21
21
  gem.add_development_dependency 'rspec'
22
22
  gem.add_development_dependency 'fakefs'
23
- gem.add_development_dependency 'minitest', '~> 2.8.0'
23
+ gem.add_development_dependency 'minitest', '~> 2.0'
24
24
  gem.add_development_dependency 'turn'
25
25
 
26
26
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
@@ -1,10 +1,14 @@
1
1
  require 'test_helper'
2
+ require 'capybara'
3
+ require 'rack/test'
2
4
  require 'spinach'
3
5
  require 'spinach/capybara'
4
6
  require 'sinatra'
5
7
 
6
8
  describe Spinach::FeatureSteps::Capybara do
7
9
  before do
10
+ Capybara.current_driver = :rack_test
11
+
8
12
  @sinatra_app = Sinatra::Application.new do
9
13
  get '/' do
10
14
  'Hello world!'
data/test/test_helper.rb CHANGED
@@ -19,7 +19,6 @@ require 'fakefs/safe'
19
19
  require 'turn'
20
20
 
21
21
  require 'spinach'
22
- require 'spinach/capybara'
23
22
 
24
23
  module Kernel
25
24
  def capture_stdout
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.1
4
+ version: 0.3.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-02-06 00:00:00.000000000 Z
15
+ date: 2012-03-20 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: gherkin-ruby
19
- requirement: &2164870640 !ruby/object:Gem::Requirement
19
+ requirement: &70349778016000 !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: *2164870640
27
+ version_requirements: *70349778016000
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: colorize
30
- requirement: &2164885300 !ruby/object:Gem::Requirement
30
+ requirement: &70349778019280 !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: *2164885300
38
+ version_requirements: *70349778019280
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rake
41
- requirement: &2164884680 !ruby/object:Gem::Requirement
41
+ requirement: &70349777935200 !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: *2164884680
49
+ version_requirements: *70349777935200
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: mocha
52
- requirement: &2164884200 !ruby/object:Gem::Requirement
52
+ requirement: &70349777559000 !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: *2164884200
60
+ version_requirements: *70349777559000
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: sinatra
63
- requirement: &2164883660 !ruby/object:Gem::Requirement
63
+ requirement: &70349777661240 !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: *2164883660
71
+ version_requirements: *70349777661240
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: capybara
74
- requirement: &2164883000 !ruby/object:Gem::Requirement
74
+ requirement: &70349773533380 !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: *2164883000
82
+ version_requirements: *70349773533380
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: open4
85
- requirement: &2164882540 !ruby/object:Gem::Requirement
85
+ requirement: &70349773504080 !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: *2164882540
93
+ version_requirements: *70349773504080
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: pry
96
- requirement: &2164881940 !ruby/object:Gem::Requirement
96
+ requirement: &70349773438720 !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: *2164881940
104
+ version_requirements: *70349773438720
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: simplecov
107
- requirement: &2164881340 !ruby/object:Gem::Requirement
107
+ requirement: &70349773411420 !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: *2164881340
115
+ version_requirements: *70349773411420
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: rspec
118
- requirement: &2164880800 !ruby/object:Gem::Requirement
118
+ requirement: &70349773406720 !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: *2164880800
126
+ version_requirements: *70349773406720
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: fakefs
129
- requirement: &2164880100 !ruby/object:Gem::Requirement
129
+ requirement: &70349773405900 !ruby/object:Gem::Requirement
130
130
  none: false
131
131
  requirements:
132
132
  - - ! '>='
@@ -134,21 +134,21 @@ dependencies:
134
134
  version: '0'
135
135
  type: :development
136
136
  prerelease: false
137
- version_requirements: *2164880100
137
+ version_requirements: *70349773405900
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: minitest
140
- requirement: &2164878420 !ruby/object:Gem::Requirement
140
+ requirement: &70349773405100 !ruby/object:Gem::Requirement
141
141
  none: false
142
142
  requirements:
143
143
  - - ~>
144
144
  - !ruby/object:Gem::Version
145
- version: 2.8.0
145
+ version: '2.0'
146
146
  type: :development
147
147
  prerelease: false
148
- version_requirements: *2164878420
148
+ version_requirements: *70349773405100
149
149
  - !ruby/object:Gem::Dependency
150
150
  name: turn
151
- requirement: &2164933560 !ruby/object:Gem::Requirement
151
+ requirement: &70349773404240 !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: *2164933560
159
+ version_requirements: *70349773404240
160
160
  description: Spinach is a BDD framework on top of gherkin
161
161
  email:
162
162
  - info@codegram.com
@@ -268,21 +268,15 @@ 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: 2060161195994026194
274
271
  required_rubygems_version: !ruby/object:Gem::Requirement
275
272
  none: false
276
273
  requirements:
277
274
  - - ! '>='
278
275
  - !ruby/object:Gem::Version
279
276
  version: '0'
280
- segments:
281
- - 0
282
- hash: 2060161195994026194
283
277
  requirements: []
284
278
  rubyforge_project:
285
- rubygems_version: 1.8.15
279
+ rubygems_version: 1.8.16
286
280
  signing_key:
287
281
  specification_version: 3
288
282
  summary: Spinach is a BDD framework on top of gherkin