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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/.gitignore +2 -1
  2. data/Gemfile +7 -0
  3. data/Gotchas.markdown +14 -0
  4. data/README.markdown +49 -9
  5. data/Rakefile +1 -2
  6. data/Upgrade.markdown +7 -0
  7. data/VERSION +1 -1
  8. data/features/controller_specs/anonymous_controller.feature +57 -19
  9. data/features/controller_specs/isolation_from_views.feature +2 -2
  10. data/features/controller_specs/readers.feature +1 -1
  11. data/features/controller_specs/render_views.feature +4 -4
  12. data/features/helper_specs/helper_spec.feature +53 -0
  13. data/features/mailer_specs/url_helpers.feature +2 -2
  14. data/features/matchers/new_record_matcher.feature +46 -1
  15. data/features/matchers/redirect_to_matcher.feature +41 -0
  16. data/features/matchers/render_template_matcher.feature +25 -0
  17. data/features/mocks/mock_model.feature +131 -0
  18. data/features/mocks/stub_model.feature +58 -0
  19. data/features/routing_specs/access_to_named_routes.feature +15 -0
  20. data/features/support/env.rb +1 -0
  21. data/features/view_specs/inferred_controller_path.feature +44 -0
  22. data/lib/generators/rspec/install/templates/spec/spec_helper.rb +4 -5
  23. data/lib/generators/rspec/scaffold/templates/routing_spec.rb +2 -2
  24. data/lib/rspec/rails.rb +1 -4
  25. data/lib/rspec/rails/adapters.rb +32 -6
  26. data/lib/rspec/rails/browser_simulators.rb +30 -0
  27. data/lib/rspec/rails/example.rb +2 -1
  28. data/lib/rspec/rails/example/controller_example_group.rb +36 -16
  29. data/lib/rspec/rails/example/helper_example_group.rb +8 -4
  30. data/lib/rspec/rails/example/mailer_example_group.rb +11 -2
  31. data/lib/rspec/rails/example/model_example_group.rb +1 -1
  32. data/lib/rspec/rails/example/rails_example_group.rb +11 -0
  33. data/lib/rspec/rails/example/request_example_group.rb +17 -6
  34. data/lib/rspec/rails/example/routing_example_group.rb +6 -1
  35. data/lib/rspec/rails/example/view_example_group.rb +18 -14
  36. data/lib/rspec/rails/matchers/be_a_new.rb +36 -1
  37. data/lib/rspec/rails/mocks.rb +9 -8
  38. data/lib/rspec/rails/tasks/rspec.rake +7 -0
  39. data/lib/rspec/rails/view_rendering.rb +8 -2
  40. data/rspec-rails.gemspec +21 -14
  41. data/spec/rspec/rails/assertion_adapter_spec.rb +28 -0
  42. data/spec/rspec/rails/example/helper_example_group_spec.rb +2 -0
  43. data/spec/rspec/rails/example/routing_example_group_spec.rb +17 -0
  44. data/spec/rspec/rails/example/view_rendering_spec.rb +56 -15
  45. data/spec/rspec/rails/matchers/be_a_new_spec.rb +98 -0
  46. data/spec/rspec/rails/matchers/errors_on_spec.rb +4 -4
  47. data/spec/rspec/rails/mocks/ar_classes.rb +17 -0
  48. data/spec/rspec/rails/mocks/stub_model_spec.rb +36 -15
  49. data/templates/Gemfile +2 -0
  50. metadata +23 -34
  51. data/lib/rspec/rails/monkey.rb +0 -1
  52. data/lib/rspec/rails/monkey/action_mailer/test_case.rb +0 -69
@@ -1,7 +1,8 @@
1
+ require 'rspec/rails/example/rails_example_group'
1
2
  require 'rspec/rails/example/controller_example_group'
2
3
  require 'rspec/rails/example/request_example_group'
3
4
  require 'rspec/rails/example/helper_example_group'
4
5
  require 'rspec/rails/example/view_example_group'
5
6
  require 'rspec/rails/example/mailer_example_group'
6
7
  require 'rspec/rails/example/routing_example_group'
7
- require 'rspec/rails/example/model_example_group'
8
+ require 'rspec/rails/example/model_example_group'
@@ -74,30 +74,43 @@ module RSpec::Rails
74
74
  extend ActiveSupport::Concern
75
75
  extend RSpec::Rails::ModuleInclusion
76
76
 
77
- include RSpec::Rails::SetupAndTeardownAdapter
78
- include RSpec::Rails::TestUnitAssertionAdapter
77
+ include RSpec::Rails::RailsExampleGroup
78
+
79
79
  include ActionController::TestCase::Behavior
80
80
  include RSpec::Rails::ViewRendering
81
- include Webrat::Methods
82
- include Webrat::Matchers
83
- include RSpec::Matchers
84
81
  include RSpec::Rails::Matchers::RedirectTo
85
82
  include RSpec::Rails::Matchers::RenderTemplate
86
83
  include RSpec::Rails::Matchers::RoutingMatchers
84
+ include RSpec::Rails::BrowserSimulators
85
+
86
+ webrat do
87
+ include Webrat::Methods
88
+ include Webrat::Matchers
89
+ end
90
+
91
+ capybara do
92
+ include Capybara
93
+ end
94
+
95
+ # TODO (DC 7/31/2010) this is already included in RailsExampleGroup, but
96
+ # due to some load order dependency problem between Webrat::Matchers and
97
+ # RSpec::Matchers, combined with the fact that RailsExampleGroup extends
98
+ # ActiveSupport::Concern, while the matcher modules do not, this needs to
99
+ # be here as well. At least for now.
100
+ include RSpec::Matchers
87
101
 
88
102
  module ClassMethods
89
103
  def controller_class
90
104
  describes
91
105
  end
92
106
 
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>.
107
+ # Supports a simple DSL for specifying behaviour of
108
+ # ApplicationController. Creates an anonymous subclass of
109
+ # ApplicationController and evals the +body+ in that context. Also sets
110
+ # up implicit routes for this controller, that are separate from those
111
+ # defined in <tt>config/routes.rb</tt>.
97
112
  #
98
- # Supports a simple DSL for specifying behaviour of ApplicationController.
99
- #
100
- # == Example
113
+ # == Examples
101
114
  #
102
115
  # describe ApplicationController do
103
116
  # controller do
@@ -105,7 +118,7 @@ module RSpec::Rails
105
118
  # raise ApplicationController::AccessDenied
106
119
  # end
107
120
  # end
108
-
121
+ #
109
122
  # describe "handling AccessDenied exceptions" do
110
123
  # it "redirects to the /401.html page" do
111
124
  # get :index
@@ -113,15 +126,22 @@ module RSpec::Rails
113
126
  # end
114
127
  # end
115
128
  # end
116
- #
129
+ #
130
+ # If you would like to spec a subclass of ApplicationController, call
131
+ # controller like so:
132
+ #
133
+ # controller(ApplicationControllerSubclass) do
134
+ # # ....
135
+ # end
136
+ #
117
137
  # NOTICE: Due to Ruby 1.8 scoping rules in anoymous subclasses, constants
118
138
  # defined in +ApplicationController+ must be fully qualified (e.g.
119
139
  # ApplicationController::AccessDenied) in the block passed to the
120
140
  # +controller+ method. Any instance methods, filters, etc, that are
121
141
  # defined in +ApplicationController+, however, are accessible from within
122
142
  # the block.
123
- def controller(&body)
124
- metadata[:example_group][:describes] = Class.new(ApplicationController, &body)
143
+ def controller(base_class = ApplicationController, &body)
144
+ metadata[:example_group][:describes] = Class.new(base_class, &body)
125
145
  metadata[:example_group][:describes].singleton_class.class_eval do
126
146
  def name
127
147
  "StubResourcesController"
@@ -29,11 +29,15 @@ module RSpec::Rails
29
29
  extend ActiveSupport::Concern
30
30
  extend RSpec::Rails::ModuleInclusion
31
31
 
32
- include RSpec::Rails::SetupAndTeardownAdapter
33
- include RSpec::Rails::TestUnitAssertionAdapter
32
+ include RSpec::Rails::RailsExampleGroup
33
+
34
34
  include ActionView::TestCase::Behavior
35
35
  include RSpec::Rails::ViewAssigns
36
- include Webrat::Matchers
36
+ include RSpec::Rails::BrowserSimulators
37
+
38
+ webrat do
39
+ include Webrat::Matchers
40
+ end
37
41
 
38
42
  module ClassMethods
39
43
  def determine_default_helper_class(ignore)
@@ -45,7 +49,7 @@ module RSpec::Rails
45
49
  # Returns an instance of ActionView::Base with the helper being specified
46
50
  # mixed in, along with any of the built-in rails helpers.
47
51
  def helper
48
- _view
52
+ _view.tap {|v| v.assign(_assigns)}
49
53
  end
50
54
 
51
55
  private
@@ -4,9 +4,18 @@ if defined?(ActionMailer)
4
4
  extend ActiveSupport::Concern
5
5
  extend RSpec::Rails::ModuleInclusion
6
6
 
7
+ include RSpec::Rails::RailsExampleGroup
8
+
7
9
  include ActionMailer::TestCase::Behavior
8
- include Webrat::Matchers
9
- include RSpec::Matchers
10
+ include RSpec::Rails::BrowserSimulators
11
+
12
+ webrat do
13
+ include Webrat::Matchers
14
+ end
15
+
16
+ capybara do
17
+ include Capybara
18
+ end
10
19
 
11
20
  included do
12
21
  metadata[:type] = :mailer
@@ -3,7 +3,7 @@ module RSpec::Rails
3
3
  extend ActiveSupport::Concern
4
4
  extend RSpec::Rails::ModuleInclusion
5
5
 
6
- include RSpec::Matchers
6
+ include RSpec::Rails::RailsExampleGroup
7
7
 
8
8
  included do
9
9
  metadata[:type] = :model
@@ -0,0 +1,11 @@
1
+ module RSpec
2
+ module Rails
3
+ module RailsExampleGroup
4
+ extend ActiveSupport::Concern
5
+
6
+ include RSpec::Rails::SetupAndTeardownAdapter
7
+ include RSpec::Rails::TestUnitAssertionAdapter
8
+ include RSpec::Matchers
9
+ end
10
+ end
11
+ end
@@ -15,12 +15,21 @@ module RSpec::Rails
15
15
  extend ActiveSupport::Concern
16
16
  extend RSpec::Rails::ModuleInclusion
17
17
 
18
+ include RSpec::Rails::RailsExampleGroup
19
+
18
20
  include ActionDispatch::Integration::Runner
19
- include RSpec::Rails::TestUnitAssertionAdapter
20
21
  include ActionDispatch::Assertions
21
- include Webrat::Matchers
22
- include Webrat::Methods
23
- include RSpec::Matchers
22
+ include RSpec::Rails::BrowserSimulators
23
+
24
+ webrat do
25
+ include Webrat::Matchers
26
+ include Webrat::Methods
27
+ end
28
+
29
+ capybara do
30
+ include Capybara
31
+ end
32
+
24
33
  include RSpec::Rails::Matchers::RedirectTo
25
34
  include RSpec::Rails::Matchers::RenderTemplate
26
35
  include ActionController::TemplateAssertions
@@ -42,8 +51,10 @@ module RSpec::Rails
42
51
  @router = ::Rails.application.routes
43
52
  end
44
53
 
45
- Webrat.configure do |config|
46
- config.mode = :rack
54
+ webrat do
55
+ Webrat.configure do |config|
56
+ config.mode = :rack
57
+ end
47
58
  end
48
59
  end
49
60
 
@@ -5,12 +5,17 @@ module RSpec::Rails
5
5
  extend ActiveSupport::Concern
6
6
  extend RSpec::Rails::ModuleInclusion
7
7
 
8
- include RSpec::Rails::TestUnitAssertionAdapter
8
+ include RSpec::Rails::RailsExampleGroup
9
+
9
10
  include ActionDispatch::Assertions::RoutingAssertions
10
11
  include RSpec::Rails::Matchers::RoutingMatchers
11
12
 
12
13
  module InstanceMethods
13
14
  attr_reader :routes
15
+
16
+ def method_missing(m, *args, &block)
17
+ routes.url_helpers.respond_to?(m) ? routes.url_helpers.send(m, *args) : super
18
+ end
14
19
  end
15
20
 
16
21
  included do
@@ -21,12 +21,15 @@ module RSpec::Rails
21
21
  extend ActiveSupport::Concern
22
22
  extend RSpec::Rails::ModuleInclusion
23
23
 
24
- include RSpec::Rails::SetupAndTeardownAdapter
25
- include RSpec::Rails::TestUnitAssertionAdapter
24
+ include RSpec::Rails::RailsExampleGroup
26
25
  include ActionView::TestCase::Behavior
27
26
  include RSpec::Rails::ViewAssigns
28
- include Webrat::Matchers
29
27
  include RSpec::Rails::Matchers::RenderTemplate
28
+ include RSpec::Rails::BrowserSimulators
29
+
30
+ webrat do
31
+ include Webrat::Matchers
32
+ end
30
33
 
31
34
  module ClassMethods
32
35
  def _default_helper
@@ -63,12 +66,6 @@ module RSpec::Rails
63
66
  # end
64
67
  # end
65
68
  def render(options={}, local_assigns={}, &block)
66
- # TODO - this is a temporary hack to achieve behaviour that is in rails edge
67
- # as of http://github.com/rails/rails/commit/0e0df4b0c5df7fdd1daa5653c255c4737f5526fc,
68
- # but is not part of the rails-3.0.0.beta4 release. This line can be removed as
69
- # soon as either rails 3 beta5 or rc is released.
70
- _assigns.each { |key, value| view.instance_variable_set("@#{key}", value) }
71
-
72
69
  options = {:template => _default_file_to_render} if Hash === options and options.empty?
73
70
  super(options, local_assigns, &block)
74
71
  end
@@ -114,8 +111,16 @@ module RSpec::Rails
114
111
  example.example_group.top_level_description
115
112
  end
116
113
 
114
+ def _path_parts
115
+ _default_file_to_render.split("/")
116
+ end
117
+
117
118
  def _controller_path
118
- _default_file_to_render.split("/")[0..-2].join("/")
119
+ _path_parts[0..-2].join("/")
120
+ end
121
+
122
+ def _inferred_action
123
+ _path_parts.last.split(".").first
119
124
  end
120
125
 
121
126
  def _include_controller_helpers
@@ -133,13 +138,12 @@ module RSpec::Rails
133
138
  before do
134
139
  _include_controller_helpers
135
140
  controller.controller_path = _controller_path
136
- # this won't be necessary if/when
137
- # https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4903
138
- # is accepted and released
139
- @request ||= controller.request
141
+ controller.request.path_parameters["controller"] = _controller_path
142
+ controller.request.path_parameters["action"] = _inferred_action unless _inferred_action =~ /^_/
140
143
  end
141
144
  end
142
145
 
143
146
  RSpec.configure &include_self_when_dir_matches('spec','views')
144
147
  end
145
148
  end
149
+
@@ -1,5 +1,40 @@
1
1
  RSpec::Matchers.define :be_a_new do |model_klass|
2
2
  match do |actual|
3
- model_klass === actual && actual.new_record?
3
+ actual.is_a?(model_klass) && actual.new_record? && attributes_match?(actual)
4
+ end
5
+
6
+ chain :with do |expected_attributes|
7
+ attributes.merge!(expected_attributes)
8
+ end
9
+
10
+ failure_message_for_should do |actual|
11
+ [].tap do |message|
12
+ unless actual.is_a?(model_klass) && actual.new_record?
13
+ message << "expected #{actual.inspect} to be a new #{model_klass.inspect}"
14
+ end
15
+ unless attributes_match?(actual)
16
+ if unmatched_attributes.size > 1
17
+ message << "attributes #{unmatched_attributes.inspect} were not set on #{actual.inspect}"
18
+ else
19
+ message << "attribute #{unmatched_attributes.inspect} was not set on #{actual.inspect}"
20
+ end
21
+ end
22
+ end.join(' and ')
23
+ end
24
+
25
+ def attributes
26
+ @attributes ||= {}
27
+ end
28
+
29
+ def attributes_match?(actual)
30
+ attributes.stringify_keys.all? do |key, value|
31
+ actual.attributes[key].eql?(value)
32
+ end
33
+ end
34
+
35
+ def unmatched_attributes
36
+ attributes.stringify_keys.reject do |key, value|
37
+ actual.attributes[key].eql?(value)
38
+ end
4
39
  end
5
40
  end
@@ -47,7 +47,7 @@ module RSpec
47
47
  end)
48
48
  end
49
49
  else
50
- model_class = string_or_model_class
50
+ model_class = string_or_model_class
51
51
  end
52
52
 
53
53
  unless model_class.kind_of? ActiveModel::Naming
@@ -98,16 +98,16 @@ EOM
98
98
  yield m if block_given?
99
99
  m
100
100
  end
101
-
101
+
102
102
  module ModelStubber
103
103
  def connection
104
- raise Spec::Rails::IllegalDataAccessException.new("stubbed models are not allowed to access the database")
104
+ raise RSpec::Rails::IllegalDataAccessException.new("stubbed models are not allowed to access the database")
105
105
  end
106
106
  def new_record?
107
- id.nil?
107
+ __send__(self.class.primary_key).nil?
108
108
  end
109
109
  def as_new_record
110
- self.id = nil
110
+ self.__send__("#{self.class.primary_key}=", nil)
111
111
  self
112
112
  end
113
113
  end
@@ -153,15 +153,16 @@ EOM
153
153
  # person.first_name = "David"
154
154
  # end
155
155
  def stub_model(model_class, stubs={})
156
- stubs = {:id => next_id}.merge(stubs)
156
+ primary_key = model_class.primary_key.to_sym
157
+ stubs = {primary_key => next_id}.merge(stubs)
157
158
  model_class.new.tap do |m|
158
- m.id = stubs.delete(:id)
159
+ m.__send__("#{primary_key}=", stubs.delete(primary_key))
159
160
  m.extend ModelStubber
160
161
  m.stub(stubs)
161
162
  yield m if block_given?
162
163
  end
163
164
  end
164
-
165
+
165
166
  private
166
167
 
167
168
  @@model_id = 1000
@@ -18,6 +18,13 @@ namespace :spec do
18
18
  end
19
19
  end
20
20
 
21
+ desc "Run all specs with rcov"
22
+ RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
23
+ t.rcov = true
24
+ t.pattern = "./spec/**/*_spec.rb"
25
+ t.rcov_opts = '--exclude /gems/,/Library/,/usr/,lib/tasks,.bundle,config,/lib/rspec/,/lib/rspec-'
26
+ end
27
+
21
28
  task :statsetup do
22
29
  require 'rails/code_statistics'
23
30
  ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models')
@@ -20,6 +20,12 @@ module RSpec
20
20
  end
21
21
  end
22
22
 
23
+ module InstanceMethods
24
+ def render_views?
25
+ self.class.render_views? || !@controller.class.respond_to?(:view_paths)
26
+ end
27
+ end
28
+
23
29
  # Delegates find_all to the submitted path set and then returns templates
24
30
  # with modified source
25
31
  class PathSetDelegatorResolver < ::ActionView::Resolver
@@ -46,14 +52,14 @@ module RSpec
46
52
 
47
53
  included do
48
54
  before do
49
- unless self.class.render_views?
55
+ unless render_views?
50
56
  @_path_set_delegator_resolver = PathSetDelegatorResolver.new(@controller.class.view_paths)
51
57
  @controller.class.view_paths = ::ActionView::PathSet.new.push(@_path_set_delegator_resolver)
52
58
  end
53
59
  end
54
60
 
55
61
  after do
56
- unless self.class.render_views?
62
+ unless render_views?
57
63
  @controller.class.view_paths = @_path_set_delegator_resolver.path_set
58
64
  end
59
65
  end
@@ -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.19"
8
+ s.version = "2.0.0.beta.20"
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-25}
12
+ s.date = %q{2010-08-24}
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 = [
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  ".document",
20
20
  ".gitignore",
21
21
  "Gemfile",
22
+ "Gotchas.markdown",
22
23
  "README.markdown",
23
24
  "Rakefile",
24
25
  "Upgrade.markdown",
@@ -30,13 +31,20 @@ Gem::Specification.new do |s|
30
31
  "features/controller_specs/isolation_from_views.feature",
31
32
  "features/controller_specs/readers.feature",
32
33
  "features/controller_specs/render_views.feature",
34
+ "features/helper_specs/helper_spec.feature",
33
35
  "features/mailer_specs/url_helpers.feature",
34
36
  "features/matchers/be_routable_matcher.feature",
35
37
  "features/matchers/new_record_matcher.feature",
38
+ "features/matchers/redirect_to_matcher.feature",
39
+ "features/matchers/render_template_matcher.feature",
40
+ "features/mocks/mock_model.feature",
41
+ "features/mocks/stub_model.feature",
36
42
  "features/model_specs/errors_on.feature",
37
43
  "features/model_specs/transactional_examples.feature",
44
+ "features/routing_specs/access_to_named_routes.feature",
38
45
  "features/step_definitions/model_steps.rb",
39
46
  "features/support/env.rb",
47
+ "features/view_specs/inferred_controller_path.feature",
40
48
  "features/view_specs/view_spec.feature",
41
49
  "lib/autotest/rails_rspec2.rb",
42
50
  "lib/generators/rspec.rb",
@@ -71,11 +79,13 @@ Gem::Specification.new do |s|
71
79
  "lib/rspec-rails.rb",
72
80
  "lib/rspec/rails.rb",
73
81
  "lib/rspec/rails/adapters.rb",
82
+ "lib/rspec/rails/browser_simulators.rb",
74
83
  "lib/rspec/rails/example.rb",
75
84
  "lib/rspec/rails/example/controller_example_group.rb",
76
85
  "lib/rspec/rails/example/helper_example_group.rb",
77
86
  "lib/rspec/rails/example/mailer_example_group.rb",
78
87
  "lib/rspec/rails/example/model_example_group.rb",
88
+ "lib/rspec/rails/example/rails_example_group.rb",
79
89
  "lib/rspec/rails/example/request_example_group.rb",
80
90
  "lib/rspec/rails/example/routing_example_group.rb",
81
91
  "lib/rspec/rails/example/view_example_group.rb",
@@ -90,13 +100,12 @@ Gem::Specification.new do |s|
90
100
  "lib/rspec/rails/matchers/routing_matchers.rb",
91
101
  "lib/rspec/rails/mocks.rb",
92
102
  "lib/rspec/rails/module_inclusion.rb",
93
- "lib/rspec/rails/monkey.rb",
94
- "lib/rspec/rails/monkey/action_mailer/test_case.rb",
95
103
  "lib/rspec/rails/tasks/rspec.rake",
96
104
  "lib/rspec/rails/version.rb",
97
105
  "lib/rspec/rails/view_assigns.rb",
98
106
  "lib/rspec/rails/view_rendering.rb",
99
107
  "rspec-rails.gemspec",
108
+ "spec/rspec/rails/assertion_adapter_spec.rb",
100
109
  "spec/rspec/rails/example/controller_example_group_spec.rb",
101
110
  "spec/rspec/rails/example/helper_example_group_spec.rb",
102
111
  "spec/rspec/rails/example/mailer_example_group_spec.rb",
@@ -123,7 +132,7 @@ Gem::Specification.new do |s|
123
132
  s.homepage = %q{http://github.com/rspec/rspec-rails}
124
133
  s.post_install_message = %q{**************************************************
125
134
 
126
- Thank you for installing rspec-rails-2.0.0.beta.19!
135
+ Thank you for installing rspec-rails-2.0.0.beta.20!
127
136
 
128
137
  This version of rspec-rails only works with versions of rails >= 3.0.0.beta.4.
129
138
 
@@ -133,7 +142,7 @@ Gem::Specification.new do |s|
133
142
  can access its generators and rake tasks.
134
143
 
135
144
  group :development, :test do
136
- gem "rspec-rails", ">= 2.0.0.beta.19"
145
+ gem "rspec-rails", ">= 2.0.0.beta.20"
137
146
  end
138
147
 
139
148
  Be sure to run the following command in each of your Rails apps if you're
@@ -159,9 +168,10 @@ Gem::Specification.new do |s|
159
168
  s.require_paths = ["lib"]
160
169
  s.rubyforge_project = %q{rspec}
161
170
  s.rubygems_version = %q{1.3.7}
162
- s.summary = %q{rspec-rails-2.0.0.beta.19}
171
+ s.summary = %q{rspec-rails-2.0.0.beta.20}
163
172
  s.test_files = [
164
- "spec/rspec/rails/example/controller_example_group_spec.rb",
173
+ "spec/rspec/rails/assertion_adapter_spec.rb",
174
+ "spec/rspec/rails/example/controller_example_group_spec.rb",
165
175
  "spec/rspec/rails/example/helper_example_group_spec.rb",
166
176
  "spec/rspec/rails/example/mailer_example_group_spec.rb",
167
177
  "spec/rspec/rails/example/model_example_group_spec.rb",
@@ -186,15 +196,12 @@ Gem::Specification.new do |s|
186
196
  s.specification_version = 3
187
197
 
188
198
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
189
- s.add_runtime_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
190
- s.add_runtime_dependency(%q<webrat>, [">= 0.7.2.beta.1"])
199
+ s.add_runtime_dependency(%q<rspec>, ["= 2.0.0.beta.20"])
191
200
  else
192
- s.add_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
193
- s.add_dependency(%q<webrat>, [">= 0.7.2.beta.1"])
201
+ s.add_dependency(%q<rspec>, ["= 2.0.0.beta.20"])
194
202
  end
195
203
  else
196
- s.add_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
197
- s.add_dependency(%q<webrat>, [">= 0.7.2.beta.1"])
204
+ s.add_dependency(%q<rspec>, ["= 2.0.0.beta.20"])
198
205
  end
199
206
  end
200
207