rspec-rails 2.0.0.beta.18 → 2.0.0.beta.19

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/Gemfile CHANGED
@@ -12,5 +12,5 @@ gem 'rspec', :path => "../rspec"
12
12
  gem 'cucumber'
13
13
  gem 'aruba', ">= 0.2.0", :require => nil
14
14
  gem 'jeweler'
15
- gem 'webrat'
15
+ gem 'webrat', ">= 0.7.2.beta.1"
16
16
  gem 'sqlite3-ruby', :require => 'sqlite3'
data/Rakefile CHANGED
@@ -43,8 +43,8 @@ begin
43
43
  gem.homepage = "http://github.com/rspec/rspec-rails"
44
44
  gem.authors = ["David Chelimsky", "Chad Humphries"]
45
45
  gem.rubyforge_project = "rspec"
46
- gem.add_dependency "rspec", ">= 2.0.0.beta.14"
47
- gem.add_dependency "webrat", ">= 0.7.0"
46
+ gem.add_dependency "rspec", RSpec::Rails::Version::STRING
47
+ gem.add_dependency "webrat", ">= 0.7.2.beta.1"
48
48
  gem.post_install_message = <<-EOM
49
49
  #{"*"*50}
50
50
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0.beta.18
1
+ 2.0.0.beta.19
@@ -0,0 +1,40 @@
1
+ Feature: anonymous controller
2
+
3
+ As a Rails developer using RSpec
4
+ In order to specify behaviour of ApplicationController
5
+ I want a simple DSL for generating anonymous subclasses
6
+
7
+ Scenario: specify error handling in ApplicationController
8
+ Given a file named "spec/controllers/application_controller_spec.rb" with:
9
+ """
10
+ require "spec_helper"
11
+
12
+ class ApplicationController < ActionController::Base
13
+ class AccessDenied < StandardError; end
14
+
15
+ rescue_from AccessDenied, :with => :access_denied
16
+
17
+ private
18
+
19
+ def access_denied
20
+ redirect_to "/401.html"
21
+ end
22
+ end
23
+
24
+ describe ApplicationController do
25
+ controller do
26
+ def index
27
+ raise ApplicationController::AccessDenied
28
+ end
29
+ end
30
+
31
+ describe "handling AccessDenied exceptions" do
32
+ it "redirects to the /401.html page" do
33
+ get :index
34
+ response.should redirect_to("/401.html")
35
+ end
36
+ end
37
+ end
38
+ """
39
+ When I run "rspec spec"
40
+ Then the output should contain "1 example, 0 failures"
@@ -89,6 +89,54 @@ module RSpec::Rails
89
89
  def controller_class
90
90
  describes
91
91
  end
92
+
93
+ # Creates an anonymous subclass of ApplicationController and evals the
94
+ # +body+ in that context. Also sets up implicit routes for this
95
+ # controller, that are separate from those defined in
96
+ # <tt>config/routes.rb</tt>.
97
+ #
98
+ # Supports a simple DSL for specifying behaviour of ApplicationController.
99
+ #
100
+ # == Example
101
+ #
102
+ # describe ApplicationController do
103
+ # controller do
104
+ # def index
105
+ # raise ApplicationController::AccessDenied
106
+ # end
107
+ # end
108
+
109
+ # describe "handling AccessDenied exceptions" do
110
+ # it "redirects to the /401.html page" do
111
+ # get :index
112
+ # response.should redirect_to("/401.html")
113
+ # end
114
+ # end
115
+ # end
116
+ #
117
+ # NOTICE: Due to Ruby 1.8 scoping rules in anoymous subclasses, constants
118
+ # defined in +ApplicationController+ must be fully qualified (e.g.
119
+ # ApplicationController::AccessDenied) in the block passed to the
120
+ # +controller+ method. Any instance methods, filters, etc, that are
121
+ # defined in +ApplicationController+, however, are accessible from within
122
+ # the block.
123
+ def controller(&body)
124
+ metadata[:example_group][:describes] = Class.new(ApplicationController, &body)
125
+ metadata[:example_group][:describes].singleton_class.class_eval do
126
+ def name
127
+ "StubResourcesController"
128
+ end
129
+ end
130
+
131
+ before do
132
+ @orig_routes, @routes = @routes, ActionDispatch::Routing::RouteSet.new
133
+ @routes.draw { resources :stub_resources }
134
+ end
135
+
136
+ after do
137
+ @routes = @orig_routes
138
+ end
139
+ end
92
140
  end
93
141
 
94
142
  module InstanceMethods
@@ -36,11 +36,9 @@ if defined?(ActiveRecord::Base)
36
36
  end
37
37
  end
38
38
 
39
- module ActiveRecord #:nodoc:
40
- class Base
41
- extend RSpec::Rails::Extensions::ActiveRecord::ClassMethods
42
- include RSpec::Rails::Extensions::ActiveRecord::InstanceMethods
43
- end
39
+ class ActiveRecord::Base #:nodoc:
40
+ extend RSpec::Rails::Extensions::ActiveRecord::ClassMethods
41
+ include RSpec::Rails::Extensions::ActiveRecord::InstanceMethods
44
42
  end
45
43
  end
46
44
 
@@ -1,31 +1,33 @@
1
- module RSpec
2
- module Rails
3
- module FixtureSupport
4
- extend ActiveSupport::Concern
1
+ if defined?(ActiveRecord)
2
+ module RSpec
3
+ module Rails
4
+ module FixtureSupport
5
+ extend ActiveSupport::Concern
5
6
 
6
- include RSpec::Rails::SetupAndTeardownAdapter
7
- include RSpec::Rails::TestUnitAssertionAdapter
7
+ include RSpec::Rails::SetupAndTeardownAdapter
8
+ include RSpec::Rails::TestUnitAssertionAdapter
8
9
 
9
- included do
10
- if RSpec.configuration.use_transactional_fixtures
11
- # TODO - figure out how to move this outside the included block
12
- include ActiveRecord::TestFixtures
10
+ included do
11
+ if RSpec.configuration.use_transactional_fixtures
12
+ # TODO - figure out how to move this outside the included block
13
+ include ActiveRecord::TestFixtures
13
14
 
14
- self.fixture_path = RSpec.configuration.fixture_path
15
- self.use_transactional_fixtures = RSpec.configuration.use_transactional_fixtures
16
- self.use_instantiated_fixtures = RSpec.configuration.use_instantiated_fixtures
17
- fixtures RSpec.configuration.global_fixtures if RSpec.configuration.global_fixtures
15
+ self.fixture_path = RSpec.configuration.fixture_path
16
+ self.use_transactional_fixtures = RSpec.configuration.use_transactional_fixtures
17
+ self.use_instantiated_fixtures = RSpec.configuration.use_instantiated_fixtures
18
+ fixtures RSpec.configuration.global_fixtures if RSpec.configuration.global_fixtures
19
+ end
18
20
  end
19
21
  end
20
22
  end
21
23
  end
22
- end
23
24
 
24
- RSpec.configure do |c|
25
- c.include RSpec::Rails::FixtureSupport
26
- c.add_setting :use_transactional_fixtures
27
- c.add_setting :use_transactional_examples, :alias => :use_transactional_fixtures
28
- c.add_setting :use_instantiated_fixtures
29
- c.add_setting :global_fixtures
30
- c.add_setting :fixture_path
25
+ RSpec.configure do |c|
26
+ c.include RSpec::Rails::FixtureSupport
27
+ c.add_setting :use_transactional_fixtures
28
+ c.add_setting :use_transactional_examples, :alias => :use_transactional_fixtures
29
+ c.add_setting :use_instantiated_fixtures
30
+ c.add_setting :global_fixtures
31
+ c.add_setting :fixture_path
32
+ end
31
33
  end
@@ -154,7 +154,7 @@ EOM
154
154
  # end
155
155
  def stub_model(model_class, stubs={})
156
156
  stubs = {:id => next_id}.merge(stubs)
157
- returning model_class.new do |m|
157
+ model_class.new.tap do |m|
158
158
  m.id = stubs.delete(:id)
159
159
  m.extend ModelStubber
160
160
  m.stub(stubs)
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rspec-rails}
8
- s.version = "2.0.0.beta.18"
8
+ s.version = "2.0.0.beta.19"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David Chelimsky", "Chad Humphries"]
12
- s.date = %q{2010-07-21}
12
+ s.date = %q{2010-07-25}
13
13
  s.description = %q{RSpec-2 for Rails-3}
14
14
  s.email = %q{dchelimsky@gmail.com;chad.humphries@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
26
26
  "autotest/discover.rb",
27
27
  "cucumber.yml",
28
28
  "features/README.markdown",
29
+ "features/controller_specs/anonymous_controller.feature",
29
30
  "features/controller_specs/isolation_from_views.feature",
30
31
  "features/controller_specs/readers.feature",
31
32
  "features/controller_specs/render_views.feature",
@@ -122,7 +123,7 @@ Gem::Specification.new do |s|
122
123
  s.homepage = %q{http://github.com/rspec/rspec-rails}
123
124
  s.post_install_message = %q{**************************************************
124
125
 
125
- Thank you for installing rspec-rails-2.0.0.beta.18!
126
+ Thank you for installing rspec-rails-2.0.0.beta.19!
126
127
 
127
128
  This version of rspec-rails only works with versions of rails >= 3.0.0.beta.4.
128
129
 
@@ -132,7 +133,7 @@ Gem::Specification.new do |s|
132
133
  can access its generators and rake tasks.
133
134
 
134
135
  group :development, :test do
135
- gem "rspec-rails", ">= 2.0.0.beta.18"
136
+ gem "rspec-rails", ">= 2.0.0.beta.19"
136
137
  end
137
138
 
138
139
  Be sure to run the following command in each of your Rails apps if you're
@@ -158,7 +159,7 @@ Gem::Specification.new do |s|
158
159
  s.require_paths = ["lib"]
159
160
  s.rubyforge_project = %q{rspec}
160
161
  s.rubygems_version = %q{1.3.7}
161
- s.summary = %q{rspec-rails-2.0.0.beta.18}
162
+ s.summary = %q{rspec-rails-2.0.0.beta.19}
162
163
  s.test_files = [
163
164
  "spec/rspec/rails/example/controller_example_group_spec.rb",
164
165
  "spec/rspec/rails/example/helper_example_group_spec.rb",
@@ -185,15 +186,15 @@ Gem::Specification.new do |s|
185
186
  s.specification_version = 3
186
187
 
187
188
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
188
- s.add_runtime_dependency(%q<rspec>, [">= 2.0.0.beta.14"])
189
- s.add_runtime_dependency(%q<webrat>, [">= 0.7.0"])
189
+ s.add_runtime_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
190
+ s.add_runtime_dependency(%q<webrat>, [">= 0.7.2.beta.1"])
190
191
  else
191
- s.add_dependency(%q<rspec>, [">= 2.0.0.beta.14"])
192
- s.add_dependency(%q<webrat>, [">= 0.7.0"])
192
+ s.add_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
193
+ s.add_dependency(%q<webrat>, [">= 0.7.2.beta.1"])
193
194
  end
194
195
  else
195
- s.add_dependency(%q<rspec>, [">= 2.0.0.beta.14"])
196
- s.add_dependency(%q<webrat>, [">= 0.7.0"])
196
+ s.add_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
197
+ s.add_dependency(%q<webrat>, [">= 0.7.2.beta.1"])
197
198
  end
198
199
  end
199
200
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rails
3
3
  version: !ruby/object:Gem::Version
4
- hash: 62196423
4
+ hash: 62196421
5
5
  prerelease: true
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
9
  - 0
10
10
  - beta
11
- - 18
12
- version: 2.0.0.beta.18
11
+ - 19
12
+ version: 2.0.0.beta.19
13
13
  platform: ruby
14
14
  authors:
15
15
  - David Chelimsky
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2010-07-21 00:00:00 -05:00
21
+ date: 2010-07-25 00:00:00 -05:00
22
22
  default_executable:
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
@@ -28,16 +28,16 @@ dependencies:
28
28
  version_requirements: &id001 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
- - - ">="
31
+ - - "="
32
32
  - !ruby/object:Gem::Version
33
- hash: 62196479
33
+ hash: 62196421
34
34
  segments:
35
35
  - 2
36
36
  - 0
37
37
  - 0
38
38
  - beta
39
- - 14
40
- version: 2.0.0.beta.14
39
+ - 19
40
+ version: 2.0.0.beta.19
41
41
  requirement: *id001
42
42
  - !ruby/object:Gem::Dependency
43
43
  type: :runtime
@@ -48,12 +48,14 @@ dependencies:
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- hash: 3
51
+ hash: 62196417
52
52
  segments:
53
53
  - 0
54
54
  - 7
55
- - 0
56
- version: 0.7.0
55
+ - 2
56
+ - beta
57
+ - 1
58
+ version: 0.7.2.beta.1
57
59
  requirement: *id002
58
60
  description: RSpec-2 for Rails-3
59
61
  email: dchelimsky@gmail.com;chad.humphries@gmail.com
@@ -74,6 +76,7 @@ files:
74
76
  - autotest/discover.rb
75
77
  - cucumber.yml
76
78
  - features/README.markdown
79
+ - features/controller_specs/anonymous_controller.feature
77
80
  - features/controller_specs/isolation_from_views.feature
78
81
  - features/controller_specs/readers.feature
79
82
  - features/controller_specs/render_views.feature
@@ -173,7 +176,7 @@ licenses: []
173
176
  post_install_message: |
174
177
  **************************************************
175
178
 
176
- Thank you for installing rspec-rails-2.0.0.beta.18!
179
+ Thank you for installing rspec-rails-2.0.0.beta.19!
177
180
 
178
181
  This version of rspec-rails only works with versions of rails >= 3.0.0.beta.4.
179
182
 
@@ -183,7 +186,7 @@ post_install_message: |
183
186
  can access its generators and rake tasks.
184
187
 
185
188
  group :development, :test do
186
- gem "rspec-rails", ">= 2.0.0.beta.18"
189
+ gem "rspec-rails", ">= 2.0.0.beta.19"
187
190
  end
188
191
 
189
192
  Be sure to run the following command in each of your Rails apps if you're
@@ -235,7 +238,7 @@ rubyforge_project: rspec
235
238
  rubygems_version: 1.3.7
236
239
  signing_key:
237
240
  specification_version: 3
238
- summary: rspec-rails-2.0.0.beta.18
241
+ summary: rspec-rails-2.0.0.beta.19
239
242
  test_files:
240
243
  - spec/rspec/rails/example/controller_example_group_spec.rb
241
244
  - spec/rspec/rails/example/helper_example_group_spec.rb