rspec-rails 2.0.0.beta.4 → 2.0.0.beta.5

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/Rakefile CHANGED
@@ -5,6 +5,14 @@ $:.unshift File.expand_path(File.join(File.dirname(__FILE__),'lib'))
5
5
 
6
6
  require 'rake/rdoctask'
7
7
  require 'rspec/rails/version'
8
+ require 'rspec'
9
+ require 'rspec/core/rake_task'
10
+ require 'cucumber/rake/task'
11
+
12
+ Rspec::Core::RakeTask.new(:spec)
13
+ Cucumber::Rake::Task.new(:cucumber) do |t|
14
+ t.cucumber_opts = %w{--format progress}
15
+ end
8
16
 
9
17
  begin
10
18
  require 'jeweler'
@@ -59,8 +67,10 @@ end
59
67
 
60
68
  namespace :generate do
61
69
  desc "generate a fresh app with rspec installed"
62
- task :app => ["rails:clone", :clobber_app] do |t|
63
- ruby "./tmp/rails/railties/bin/rails tmp/example_app --dev -m example_app_template.rb"
70
+ task :app => ["rails:clone"] do |t|
71
+ unless File.directory?('./tmp/example_app')
72
+ ruby "./tmp/rails/railties/bin/rails tmp/example_app --dev -m example_app_template.rb"
73
+ end
64
74
  end
65
75
 
66
76
  desc "generate a bunch of stuff with generators"
@@ -71,8 +81,26 @@ namespace :generate do
71
81
  end
72
82
  end
73
83
 
84
+ namespace :db do
85
+ task :migrate do
86
+ Dir.chdir("./tmp/example_app/") do
87
+ sh "rake db:migrate"
88
+ end
89
+ end
90
+
91
+ namespace :test do
92
+ task :prepare do
93
+ Dir.chdir("./tmp/example_app/") do
94
+ sh "rake db:test:prepare"
95
+ end
96
+ end
97
+ end
98
+ end
99
+
100
+
101
+
74
102
  desc "run a variety of specs against the generated app"
75
- task :run_specs do
103
+ task :smoke do
76
104
  Dir.chdir("./tmp/example_app/") do
77
105
  sh "rake rails:template LOCATION='../../templates/run_specs.rb'"
78
106
  end
@@ -87,5 +115,5 @@ task :clobber_app do
87
115
  rm_rf "tmp/example_app"
88
116
  end
89
117
 
90
- task :default => ["generate:app", "generate:stuff", :run_specs]
118
+ task :default => [:clobber_app, "generate:app", "generate:stuff", :spec, :cucumber, :smoke]
91
119
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0.beta.4
1
+ 2.0.0.beta.5
@@ -0,0 +1,25 @@
1
+ Feature: be_a_new matcher
2
+
3
+ The be_a_new matcher accepts a class and passes if the subject is an instance
4
+ of that class that returns true to new_record?
5
+
6
+ Scenario: example spec with four possibilities
7
+ Given a file named "spec/models/widget_spec.rb" with:
8
+ """
9
+ require "spec_helper"
10
+
11
+ describe Widget do
12
+ context "when initialized" do
13
+ subject { Widget.new }
14
+ it { should be_a_new(Widget) }
15
+ it { should_not be_a_new(String) }
16
+ end
17
+ context "when saved" do
18
+ subject { Widget.create }
19
+ it { should_not be_a_new(Widget) }
20
+ it { should_not be_a_new(String) }
21
+ end
22
+ end
23
+ """
24
+ When I run "rspec spec/models/widget_spec.rb"
25
+ Then I should see "4 examples, 0 failures"
@@ -0,0 +1,78 @@
1
+ Feature: transactional examples
2
+
3
+ Scenario: run in transactions (default)
4
+ Given a file named "spec/models/widget_spec.rb" with:
5
+ """
6
+ require "spec_helper"
7
+
8
+ describe Widget do
9
+ it "has none to begin with" do
10
+ Widget.count.should == 0
11
+ end
12
+
13
+ it "has one after adding one" do
14
+ Widget.create
15
+ Widget.count.should == 1
16
+ end
17
+
18
+ it "has none after one was created in a previous example" do
19
+ Widget.count.should == 0
20
+ end
21
+ end
22
+ """
23
+ When I run "rspec spec/models/widget_spec.rb"
24
+ Then I should see "3 examples, 0 failures"
25
+
26
+ Scenario: run in transactions (explicit)
27
+ Given a file named "spec/models/widget_spec.rb" with:
28
+ """
29
+ require "spec_helper"
30
+
31
+ Rspec.configure do |c|
32
+ c.use_transactional_examples = true
33
+ end
34
+
35
+ describe Widget do
36
+ it "has none to begin with" do
37
+ Widget.count.should == 0
38
+ end
39
+
40
+ it "has one after adding one" do
41
+ Widget.create
42
+ Widget.count.should == 1
43
+ end
44
+
45
+ it "has none after one was created in a previous example" do
46
+ Widget.count.should == 0
47
+ end
48
+ end
49
+ """
50
+ When I run "rspec spec/models/widget_spec.rb"
51
+ Then I should see "3 examples, 0 failures"
52
+
53
+ Scenario: disable transactions (explicit)
54
+ Given a file named "spec/models/widget_spec.rb" with:
55
+ """
56
+ require "spec_helper"
57
+
58
+ Rspec.configure do |c|
59
+ c.use_transactional_examples = false
60
+ end
61
+
62
+ describe Widget do
63
+ it "has none to begin with" do
64
+ Widget.count.should == 0
65
+ end
66
+
67
+ it "has one after adding one" do
68
+ Widget.create
69
+ Widget.count.should == 1
70
+ end
71
+
72
+ it "has one after one was created in a previous example" do
73
+ Widget.count.should == 1
74
+ end
75
+ end
76
+ """
77
+ When I run "rspec spec/models/widget_spec.rb"
78
+ Then I should see "3 examples, 0 failures"
@@ -0,0 +1,3 @@
1
+ Given /a (\w+) model/ do |model_class_name|
2
+ puts eval(model_class_name)
3
+ end
@@ -0,0 +1,37 @@
1
+ require "aruba"
2
+ require "rspec/expectations"
3
+
4
+ unless File.directory?('./tmp/example_app')
5
+ system "rake generate:app generate:stuff"
6
+ end
7
+
8
+ def aruba_path(file_or_dir)
9
+ File.expand_path("../../../#{file_or_dir.sub('example_app','aruba')}", __FILE__)
10
+ end
11
+
12
+ def example_app_path(file_or_dir)
13
+ File.expand_path("../../../#{file_or_dir}", __FILE__)
14
+ end
15
+
16
+ def write_symlink(file_or_dir)
17
+ source = example_app_path(file_or_dir)
18
+ target = aruba_path(file_or_dir)
19
+ system "ln -s #{source} #{target}"
20
+ end
21
+
22
+ Before do
23
+ steps %Q{
24
+ Given a directory named "spec"
25
+ }
26
+
27
+ Dir['tmp/example_app/*'].each do |file_or_dir|
28
+ unless file_or_dir =~ /spec$/
29
+ write_symlink(file_or_dir)
30
+ end
31
+ end
32
+
33
+ ["spec/spec_helper.rb"].each do |file_or_dir|
34
+ write_symlink("tmp/example_app/#{file_or_dir}")
35
+ end
36
+
37
+ end
@@ -17,4 +17,8 @@ Rspec.configure do |config|
17
17
  # config.mock_with :flexmock
18
18
  # config.mock_with :rr
19
19
  config.mock_with :rspec
20
+
21
+ # If you'd prefer not to run each of your examples within a transaction,
22
+ # uncomment the following line.
23
+ # config.use_transactional_examples false
20
24
  end
@@ -7,8 +7,6 @@ describe <%= class_name %> do
7
7
  @expected.to = "to@example.org"
8
8
  @expected.from = "from@example.com"
9
9
  @expected.body = read_fixture("<%= action %>")
10
-
11
- @expected.should == <%= class_name %>.<%= action %>
12
10
  end
13
11
 
14
12
  <% end -%>
@@ -66,7 +66,7 @@ describe <%= controller_class_name %>Controller do
66
66
  it "re-renders the 'new' template" do
67
67
  <%= stub! orm_class.build(class_name) %> { <%= mock_file_name(:save => false) %> }
68
68
  post :create, :<%= file_name %> => {}
69
- response.should render_template('new')
69
+ response.should render_template(:new)
70
70
  end
71
71
  end
72
72
 
@@ -104,7 +104,7 @@ describe <%= controller_class_name %>Controller do
104
104
  it "re-renders the 'edit' template" do
105
105
  <%= stub! orm_class.find(class_name) %> { <%= mock_file_name(:update_attributes => false) %> }
106
106
  put :update, :id => "1"
107
- response.should render_template('edit')
107
+ response.should render_template(:edit)
108
108
  end
109
109
  end
110
110
 
@@ -14,7 +14,12 @@ module ControllerExampleGroupBehaviour
14
14
  include ActionDispatch::Integration::Runner
15
15
  include Webrat::Matchers
16
16
  include Webrat::Methods
17
- include Rspec::Rails::Matchers
17
+ include Rspec::Matchers
18
+
19
+ def self.setup(*args); end
20
+ def self.teardown(*args); end
21
+
22
+ include ActionController::TemplateAssertions
18
23
 
19
24
  def self.included(mod)
20
25
  mod.before do
@@ -6,7 +6,7 @@ module RequestExampleGroupBehaviour
6
6
  include ActionDispatch::Integration::Runner
7
7
  include Webrat::Matchers
8
8
  include Webrat::Methods
9
- include Rspec::Rails::Matchers
9
+ include Rspec::Matchers
10
10
 
11
11
  def self.included(mod)
12
12
  mod.before do
@@ -8,10 +8,22 @@ module ViewExampleGroupBehaviour
8
8
  attr_accessor :controller_path
9
9
  end
10
10
 
11
+ module ViewExtension
12
+ def protect_against_forgery?; end
13
+ def method_missing(selector, *args)
14
+ if Rails.application.routes.named_routes.helpers.include?(selector)
15
+ controller.__send__(selector, *args)
16
+ else
17
+ super
18
+ end
19
+ end
20
+ end
21
+
11
22
  def view
12
23
  @view ||= begin
13
24
  view = ActionView::Base.new(ActionController::Base.view_paths, assigns, controller)
14
- view.extend(Module.new { def protect_against_forgery?; end })
25
+ view.extend(ActionController::PolymorphicRoutes)
26
+ view.extend(ViewExtension)
15
27
  view
16
28
  end
17
29
  end
@@ -11,30 +11,15 @@ rescue LoadError
11
11
  end
12
12
  end
13
13
 
14
- module Rspec
15
- module Rails
16
- module Matchers
17
- include Rspec::Matchers
18
-
19
- def redirect_to(destination)
20
- running_example = self
21
- Matcher.new :redirect_to, destination do |destination_|
22
- match_unless_raises Test::Unit::AssertionFailedError do |_|
23
- running_example.assert_redirected_to destination_
24
- end
25
- end
26
- end
27
-
28
- def render_template(options={}, message=nil)
29
- running_example = self
30
- Matcher.new :render_template, options, message do |options_, message_|
31
- match_unless_raises Test::Unit::AssertionFailedError do |_|
32
- running_example.assert_template options_, message_
33
- end
34
- end
35
- end
14
+ Rspec::Matchers.define :redirect_to do |destination|
15
+ match_unless_raises Test::Unit::AssertionFailedError do |_|
16
+ assert_redirected_to destination
17
+ end
18
+ end
36
19
 
37
- end
20
+ Rspec::Matchers.define :render_template do |options, message|
21
+ match_unless_raises Test::Unit::AssertionFailedError do |_|
22
+ assert_template options, message
38
23
  end
39
24
  end
40
25
 
@@ -20,25 +20,25 @@ module Rspec
20
20
  derived_name = "#{model_class.name}_#{id}"
21
21
  m = mock(derived_name, options_and_stubs)
22
22
  m.__send__(:__mock_proxy).instance_eval <<-CODE
23
- def @target.as_new_record
23
+ def @object.as_new_record
24
24
  self.stub(:id) { nil }
25
25
  self.stub(:to_param) { nil }
26
26
  self.stub(:new_record?) { true }
27
27
  self
28
28
  end
29
- def @target.is_a?(other)
29
+ def @object.is_a?(other)
30
30
  #{model_class}.ancestors.include?(other)
31
31
  end
32
- def @target.kind_of?(other)
32
+ def @object.kind_of?(other)
33
33
  #{model_class}.ancestors.include?(other)
34
34
  end
35
- def @target.instance_of?(other)
35
+ def @object.instance_of?(other)
36
36
  other == #{model_class}
37
37
  end
38
- def @target.class
38
+ def @object.class
39
39
  #{model_class}
40
40
  end
41
- def @target.to_s
41
+ def @object.to_s
42
42
  "#{model_class.name}_#{id}"
43
43
  end
44
44
  CODE
@@ -8,15 +8,19 @@ module Rspec
8
8
  defined?(::ActiveRecord) && !::ActiveRecord::Base.configurations.blank?
9
9
  end
10
10
 
11
- def transactional_protection_start
12
- return unless active_record_configured?
11
+ def use_transactional_examples?
12
+ active_record_configured? && Rspec.configuration.use_transactional_examples?
13
+ end
14
+
15
+ def setup_transactional_examples
16
+ return unless use_transactional_examples?
13
17
 
14
18
  ::ActiveRecord::Base.connection.increment_open_transactions
15
19
  ::ActiveRecord::Base.connection.begin_db_transaction
16
20
  end
17
21
 
18
- def transactional_protection_cleanup
19
- return unless active_record_configured?
22
+ def teardown_transactional_examples
23
+ return unless use_transactional_examples?
20
24
 
21
25
  if ::ActiveRecord::Base.connection.open_transactions != 0
22
26
  ::ActiveRecord::Base.connection.rollback_db_transaction
@@ -32,7 +36,7 @@ end
32
36
 
33
37
  Rspec.configure do |c|
34
38
  c.include Rspec::Rails::TransactionalDatabaseSupport
35
- c.before { transactional_protection_start }
36
- c.after { transactional_protection_cleanup }
39
+ c.before { setup_transactional_examples }
40
+ c.after { teardown_transactional_examples }
37
41
  end
38
42
 
@@ -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.4"
8
+ s.version = "2.0.0.beta.5"
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-03-15}
12
+ s.date = %q{2010-04-04}
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 = [
@@ -21,6 +21,10 @@ Gem::Specification.new do |s|
21
21
  "Rakefile",
22
22
  "VERSION",
23
23
  "example_app_template.rb",
24
+ "features/matchers/new_record_matcher.feature",
25
+ "features/model_specs/transactional_examples.feature",
26
+ "features/step_definitions/model_steps.rb",
27
+ "features/support/env.rb",
24
28
  "lib/generators/rspec.rb",
25
29
  "lib/generators/rspec/controller/controller_generator.rb",
26
30
  "lib/generators/rspec/controller/templates/controller_spec.rb",
@@ -63,13 +67,19 @@ Gem::Specification.new do |s|
63
67
  "lib/rspec/rails/transactional_database_support.rb",
64
68
  "lib/rspec/rails/version.rb",
65
69
  "rspec-rails.gemspec",
70
+ "spec/rspec/rails/matchers/be_a_new_spec.rb",
71
+ "spec/rspec/rails/matchers/redirect_to_spec.rb",
72
+ "spec/rspec/rails/matchers/render_template_spec.rb",
73
+ "spec/rspec/rails/transactional_database_support_spec.rb",
74
+ "spec/spec_helper.rb",
75
+ "specs.watchr",
66
76
  "templates/generate_stuff.rb",
67
77
  "templates/run_specs.rb"
68
78
  ]
69
79
  s.homepage = %q{http://github.com/rspec/rspec-rails}
70
80
  s.post_install_message = %q{**************************************************
71
81
 
72
- Thank you for installing rspec-rails-2.0.0.beta.4!
82
+ Thank you for installing rspec-rails-2.0.0.beta.5!
73
83
 
74
84
  This version of rspec-rails only works with
75
85
  versions of rails >= 3.0.0.pre.
@@ -84,21 +94,28 @@ Gem::Specification.new do |s|
84
94
  s.require_paths = ["lib"]
85
95
  s.rubyforge_project = %q{rspec}
86
96
  s.rubygems_version = %q{1.3.6}
87
- s.summary = %q{rspec-rails-2.0.0.beta.4}
97
+ s.summary = %q{rspec-rails-2.0.0.beta.5}
98
+ s.test_files = [
99
+ "spec/rspec/rails/matchers/be_a_new_spec.rb",
100
+ "spec/rspec/rails/matchers/redirect_to_spec.rb",
101
+ "spec/rspec/rails/matchers/render_template_spec.rb",
102
+ "spec/rspec/rails/transactional_database_support_spec.rb",
103
+ "spec/spec_helper.rb"
104
+ ]
88
105
 
89
106
  if s.respond_to? :specification_version then
90
107
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
91
108
  s.specification_version = 3
92
109
 
93
110
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
94
- s.add_runtime_dependency(%q<rspec>, ["= 2.0.0.beta.4"])
111
+ s.add_runtime_dependency(%q<rspec>, ["= 2.0.0.beta.5"])
95
112
  s.add_runtime_dependency(%q<webrat>, [">= 0.7.0"])
96
113
  else
97
- s.add_dependency(%q<rspec>, ["= 2.0.0.beta.4"])
114
+ s.add_dependency(%q<rspec>, ["= 2.0.0.beta.5"])
98
115
  s.add_dependency(%q<webrat>, [">= 0.7.0"])
99
116
  end
100
117
  else
101
- s.add_dependency(%q<rspec>, ["= 2.0.0.beta.4"])
118
+ s.add_dependency(%q<rspec>, ["= 2.0.0.beta.5"])
102
119
  s.add_dependency(%q<webrat>, [">= 0.7.0"])
103
120
  end
104
121
  end
@@ -0,0 +1,39 @@
1
+ require "spec_helper"
2
+
3
+ describe "be_a_new matcher" do
4
+ context "new record" do
5
+ let(:record) do
6
+ Class.new do
7
+ def new_record?; true; end
8
+ end.new
9
+ end
10
+ context "right class" do
11
+ it "passes" do
12
+ record.should be_a_new(record.class)
13
+ end
14
+ end
15
+ context "wrong class" do
16
+ it "fails" do
17
+ record.should_not be_a_new(String)
18
+ end
19
+ end
20
+ end
21
+
22
+ context "existing record" do
23
+ let(:record) do
24
+ Class.new do
25
+ def new_record?; false; end
26
+ end.new
27
+ end
28
+ context "right class" do
29
+ it "fails" do
30
+ record.should_not be_a_new(record.class)
31
+ end
32
+ end
33
+ context "wrong class" do
34
+ it "fails" do
35
+ record.should_not be_a_new(String)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,8 @@
1
+ require "spec_helper"
2
+
3
+ describe "redirect_to" do
4
+ it "delegates to assert_redirected_to" do
5
+ self.should_receive(:assert_redirected_to).with("destination")
6
+ "response".should redirect_to("destination")
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require "spec_helper"
2
+
3
+ describe "render_template" do
4
+ it "delegates to assert_template" do
5
+ self.should_receive(:assert_template).with({:this => "hash"}, "this message")
6
+ "response".should render_template({:this => "hash"}, "this message")
7
+ end
8
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rspec::Rails::TransactionalDatabaseSupport do
4
+
5
+ let(:connection) { double('connection', :open_transactions => 1) }
6
+ let(:test_bed) do
7
+ Class.new do
8
+ include Rspec::Rails::TransactionalDatabaseSupport
9
+ def active_record_configured?; true; end
10
+ end.new
11
+ end
12
+
13
+ before { ::ActiveRecord::Base.stub(:connection) { connection } }
14
+
15
+ describe "#setup_transactional_examples" do
16
+ context 'when running with examples with transactions' do
17
+ it "opens a new transaction" do
18
+ test_bed.stub(:use_transactional_examples?) { true }
19
+ connection.should_receive(:increment_open_transactions)
20
+ connection.should_receive(:begin_db_transaction)
21
+ test_bed.setup_transactional_examples
22
+ end
23
+ end
24
+
25
+ context 'with transactionless examples' do
26
+ it "doesn't open a transaction" do
27
+ test_bed.stub(:use_transactional_examples?) { false }
28
+ connection.should_not_receive(:increment_open_transactions)
29
+ connection.should_not_receive(:begin_db_transaction)
30
+ test_bed.setup_transactional_examples
31
+ end
32
+ end
33
+ end
34
+
35
+ describe "#teardown_transactional_examples" do
36
+ context 'when running with examples with transactions' do
37
+ it "opens a new transaction" do
38
+ test_bed.stub(:use_transactional_examples?) { true }
39
+ connection.should_receive(:rollback_db_transaction)
40
+ connection.should_receive(:decrement_open_transactions)
41
+ test_bed.teardown_transactional_examples
42
+ end
43
+ end
44
+
45
+ context 'with transactionless examples' do
46
+ it "doesn't close an open transaction" do
47
+ test_bed.stub(:use_transactional_examples?) { false }
48
+ connection.should_not_receive(:decrement_open_transactions)
49
+ connection.should_not_receive(:rollback_db_transaction)
50
+ test_bed.teardown_transactional_examples
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,23 @@
1
+ %w(actionmailer actionpack activemodel activerecord activeresource activesupport railties).each do |directory|
2
+ $LOAD_PATH.unshift File.expand_path( File.join(File.dirname(__FILE__), "..", "tmp", "rails", directory, "lib") )
3
+ end
4
+
5
+ require 'i18n'
6
+ require 'rack'
7
+ require 'rack/mock'
8
+ require 'rack/mime'
9
+ require 'active_support'
10
+ require 'active_support/core_ext'
11
+ require 'action_dispatch'
12
+ require 'action_controller'
13
+ require 'active_record'
14
+ require 'rspec/rails'
15
+
16
+ def in_editor?
17
+ ENV.has_key?('TM_MODE') || ENV.has_key?('EMACS') || ENV.has_key?('VIM')
18
+ end
19
+
20
+ Rspec.configure do |c|
21
+ c.color_enabled = !in_editor?
22
+ end
23
+
@@ -0,0 +1,59 @@
1
+ # Run me with:
2
+ #
3
+ # $ watchr specs.watchr
4
+
5
+ # --------------------------------------------------
6
+ # Convenience Methods
7
+ # --------------------------------------------------
8
+ def all_test_files
9
+ Dir['spec/**/*_spec.rb']
10
+ end
11
+
12
+ def run_test_matching(thing_to_match)
13
+ matches = all_test_files.grep(/#{thing_to_match}/i)
14
+ if matches.empty?
15
+ puts "Sorry, thanks for playing, but there were no matches for #{thing_to_match}"
16
+ else
17
+ run matches.join(' ')
18
+ end
19
+ end
20
+
21
+ def run(files_to_run)
22
+ puts("Running: #{files_to_run}")
23
+ system("clear;rspec -cfs #{files_to_run}")
24
+ no_int_for_you
25
+ end
26
+
27
+ def run_all_tests
28
+ run(all_test_files.join(' '))
29
+ end
30
+
31
+ # --------------------------------------------------
32
+ # Watchr Rules
33
+ # --------------------------------------------------
34
+ watch('^spec/(.*)_spec\.rb') { |m| run_test_matching(m[1]) }
35
+ watch('^lib/(.*)\.rb') { |m| run_test_matching(m[1]) }
36
+ watch('^spec/spec_helper\.rb') { run_all_tests }
37
+ watch('^spec/support/.*\.rb') { run_all_tests }
38
+
39
+ # --------------------------------------------------
40
+ # Signal Handling
41
+ # --------------------------------------------------
42
+
43
+ def no_int_for_you
44
+ @sent_an_int = nil
45
+ end
46
+
47
+ Signal.trap 'INT' do
48
+ if @sent_an_int then
49
+ puts " A second INT? Ok, I get the message. Shutting down now."
50
+ exit
51
+ else
52
+ puts " Did you just send me an INT? Ugh. I'll quit for real if you do it again."
53
+ @sent_an_int = true
54
+ Kernel.sleep 1.5
55
+ run_all_tests
56
+ end
57
+ end
58
+
59
+ # vim:ft=ruby
@@ -6,3 +6,5 @@ generate('model thing name:string')
6
6
  generate('observer widget')
7
7
  generate('scaffold widget name:string')
8
8
 
9
+ run('rake db:migrate')
10
+ run('rake db:test:prepare')
@@ -1,5 +1,3 @@
1
- run('rake db:migrate')
2
- run('rake db:test:prepare')
3
1
  run('rspec spec -cfdoc')
4
2
  run('rake spec')
5
3
  run('rake spec:requests')
metadata CHANGED
@@ -7,8 +7,8 @@ version: !ruby/object:Gem::Version
7
7
  - 0
8
8
  - 0
9
9
  - beta
10
- - 4
11
- version: 2.0.0.beta.4
10
+ - 5
11
+ version: 2.0.0.beta.5
12
12
  platform: ruby
13
13
  authors:
14
14
  - David Chelimsky
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-03-15 00:00:00 -05:00
20
+ date: 2010-04-04 00:00:00 -03:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -32,8 +32,8 @@ dependencies:
32
32
  - 0
33
33
  - 0
34
34
  - beta
35
- - 4
36
- version: 2.0.0.beta.4
35
+ - 5
36
+ version: 2.0.0.beta.5
37
37
  type: :runtime
38
38
  version_requirements: *id001
39
39
  - !ruby/object:Gem::Dependency
@@ -64,6 +64,10 @@ files:
64
64
  - Rakefile
65
65
  - VERSION
66
66
  - example_app_template.rb
67
+ - features/matchers/new_record_matcher.feature
68
+ - features/model_specs/transactional_examples.feature
69
+ - features/step_definitions/model_steps.rb
70
+ - features/support/env.rb
67
71
  - lib/generators/rspec.rb
68
72
  - lib/generators/rspec/controller/controller_generator.rb
69
73
  - lib/generators/rspec/controller/templates/controller_spec.rb
@@ -106,6 +110,12 @@ files:
106
110
  - lib/rspec/rails/transactional_database_support.rb
107
111
  - lib/rspec/rails/version.rb
108
112
  - rspec-rails.gemspec
113
+ - spec/rspec/rails/matchers/be_a_new_spec.rb
114
+ - spec/rspec/rails/matchers/redirect_to_spec.rb
115
+ - spec/rspec/rails/matchers/render_template_spec.rb
116
+ - spec/rspec/rails/transactional_database_support_spec.rb
117
+ - spec/spec_helper.rb
118
+ - specs.watchr
109
119
  - templates/generate_stuff.rb
110
120
  - templates/run_specs.rb
111
121
  has_rdoc: true
@@ -115,7 +125,7 @@ licenses: []
115
125
  post_install_message: |
116
126
  **************************************************
117
127
 
118
- Thank you for installing rspec-rails-2.0.0.beta.4!
128
+ Thank you for installing rspec-rails-2.0.0.beta.5!
119
129
 
120
130
  This version of rspec-rails only works with
121
131
  versions of rails >= 3.0.0.pre.
@@ -152,6 +162,10 @@ rubyforge_project: rspec
152
162
  rubygems_version: 1.3.6
153
163
  signing_key:
154
164
  specification_version: 3
155
- summary: rspec-rails-2.0.0.beta.4
156
- test_files: []
157
-
165
+ summary: rspec-rails-2.0.0.beta.5
166
+ test_files:
167
+ - spec/rspec/rails/matchers/be_a_new_spec.rb
168
+ - spec/rspec/rails/matchers/redirect_to_spec.rb
169
+ - spec/rspec/rails/matchers/render_template_spec.rb
170
+ - spec/rspec/rails/transactional_database_support_spec.rb
171
+ - spec/spec_helper.rb