spinach 0.3.1 → 0.3.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/.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