rspec-expectations 2.6.0 → 2.7.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +2 -2
- data/features/built_in_matchers/README.md +7 -5
- data/features/built_in_matchers/be.feature +1 -1
- data/features/built_in_matchers/cover.feature +1 -1
- data/features/built_in_matchers/expect_error.feature +59 -26
- data/features/built_in_matchers/have.feature +2 -2
- data/features/built_in_matchers/predicates.feature +1 -1
- data/features/step_definitions/additional_cli_steps.rb +1 -1
- data/features/support/env.rb +1 -1
- data/lib/rspec/expectations.rb +0 -2
- data/lib/rspec/expectations/deprecation.rb +6 -4
- data/lib/rspec/expectations/errors.rb +4 -7
- data/lib/rspec/expectations/extensions.rb +1 -0
- data/lib/rspec/expectations/extensions/array.rb +2 -0
- data/lib/rspec/expectations/extensions/kernel.rb +18 -44
- data/lib/rspec/expectations/{backward_compatibility.rb → extensions/object.rb} +5 -3
- data/lib/rspec/expectations/fail_with.rb +8 -5
- data/lib/rspec/expectations/version.rb +5 -4
- data/lib/rspec/matchers.rb +77 -73
- data/lib/rspec/matchers/be.rb +42 -51
- data/lib/rspec/matchers/be_within.rb +1 -1
- data/lib/rspec/matchers/change.rb +5 -13
- data/lib/rspec/matchers/dsl.rb +2 -1
- data/lib/rspec/matchers/eq.rb +3 -3
- data/lib/rspec/matchers/extensions/{instance_exec.rb → instance_eval_with_args.rb} +15 -7
- data/lib/rspec/matchers/has.rb +11 -6
- data/lib/rspec/matchers/have.rb +36 -19
- data/lib/rspec/matchers/match_array.rb +1 -1
- data/lib/rspec/matchers/matcher.rb +5 -5
- data/spec/rspec/matchers/change_spec.rb +38 -0
- data/spec/rspec/matchers/description_generation_spec.rb +32 -32
- data/spec/rspec/matchers/eq_spec.rb +2 -2
- data/spec/rspec/matchers/has_spec.rb +33 -1
- data/spec/rspec/matchers/have_spec.rb +64 -7
- data/spec/rspec/matchers/match_array_spec.rb +0 -3
- data/spec/rspec/matchers/operator_matcher_spec.rb +10 -4
- data/spec/rspec/matchers/raise_error_spec.rb +6 -6
- data/spec/support/classes.rb +21 -10
- metadata +51 -62
- data/.document +0 -5
- data/.gitignore +0 -10
- data/.travis.yml +0 -7
- data/Gemfile +0 -40
- data/Guardfile +0 -5
- data/License.txt +0 -22
- data/Rakefile +0 -81
- data/cucumber.yml +0 -10
- data/features/.nav +0 -29
- data/features/Changelog.md +0 -101
- data/rspec-expectations.gemspec +0 -27
- data/specs.watchr +0 -57
data/.document
DELETED
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
source "http://rubygems.org"
|
2
|
-
|
3
|
-
### rspec libs
|
4
|
-
%w[rspec rspec-core rspec-expectations rspec-mocks].each do |lib|
|
5
|
-
library_path = File.expand_path("../../#{lib}", __FILE__)
|
6
|
-
if File.exist?(library_path)
|
7
|
-
gem lib, :path => library_path
|
8
|
-
else
|
9
|
-
gem lib, :git => "git://github.com/rspec/#{lib}.git"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
### dev dependencies
|
14
|
-
gem "rake", "0.8.7"
|
15
|
-
gem "cucumber", "~> 0.10.2"
|
16
|
-
gem "aruba", "~> 0.3.6"
|
17
|
-
gem "rcov", "0.9.9", :platforms => :mri
|
18
|
-
gem "relish", "0.2.0"
|
19
|
-
gem "guard-rspec", "0.1.9"
|
20
|
-
gem "growl", "1.0.3"
|
21
|
-
gem "nokogiri", "1.4.4"
|
22
|
-
|
23
|
-
platforms :mri_18 do
|
24
|
-
gem 'ruby-debug'
|
25
|
-
end
|
26
|
-
|
27
|
-
platforms :mri_19 do
|
28
|
-
gem 'linecache19', '0.5.11' # 0.5.12 cannot install on 1.9.1, and 0.5.11 appears to work with both 1.9.1 & 1.9.2
|
29
|
-
gem 'ruby-debug19'
|
30
|
-
gem 'ruby-debug-base19', RUBY_VERSION == '1.9.1' ? '0.11.23' : '~> 0.11.24'
|
31
|
-
end
|
32
|
-
|
33
|
-
platforms :mri_18, :mri_19 do
|
34
|
-
gem "rb-fsevent", "~> 0.3.9"
|
35
|
-
gem "ruby-prof", "~> 0.9.2"
|
36
|
-
end
|
37
|
-
|
38
|
-
platforms :jruby do
|
39
|
-
gem "jruby-openssl"
|
40
|
-
end
|
data/Guardfile
DELETED
data/License.txt
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
(The MIT License)
|
2
|
-
|
3
|
-
Copyright (c) 2005 The RSpec Development Team
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
-
a copy of this software and associated documentation files (the
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
12
|
-
|
13
|
-
The above copyright notice and this permission notice shall be
|
14
|
-
included in all copies or substantial portions of the Software.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
20
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
21
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
22
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
Bundler.setup
|
3
|
-
Bundler::GemHelper.install_tasks
|
4
|
-
|
5
|
-
require 'rake'
|
6
|
-
require 'rake/rdoctask'
|
7
|
-
require 'rspec/core/rake_task'
|
8
|
-
require 'rspec/expectations/version'
|
9
|
-
|
10
|
-
begin
|
11
|
-
require 'cucumber/rake/task'
|
12
|
-
|
13
|
-
class Cucumber::Rake::Task::ForkedCucumberRunner
|
14
|
-
# When cucumber shells out, we still need it to run in the context of our
|
15
|
-
# bundle.
|
16
|
-
def run
|
17
|
-
sh "bundle exec #{RUBY} " + args.join(" ")
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
Cucumber::Rake::Task.new(:cucumber)
|
22
|
-
|
23
|
-
namespace :cucumber do
|
24
|
-
desc "Run cucumber features using rcov"
|
25
|
-
Cucumber::Rake::Task.new :rcov => :cleanup_rcov_files do |t|
|
26
|
-
t.cucumber_opts = %w{--format progress}
|
27
|
-
t.rcov = true
|
28
|
-
t.rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
|
29
|
-
t.rcov_opts << %[--text-report --sort coverage --aggregate coverage.data]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
rescue LoadError => e
|
34
|
-
puts "unable to load cucumber, some tasks unavailable"
|
35
|
-
task :cucumber do
|
36
|
-
#no-op
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
|
41
|
-
task :cleanup_rcov_files do
|
42
|
-
rm_rf 'coverage.data'
|
43
|
-
end
|
44
|
-
|
45
|
-
desc "Run all examples"
|
46
|
-
RSpec::Core::RakeTask.new(:spec) do |t|
|
47
|
-
t.rspec_opts = %w[--color]
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
namespace :spec do
|
52
|
-
desc "Run all examples using rcov"
|
53
|
-
RSpec::Core::RakeTask.new :rcov => :cleanup_rcov_files do |t|
|
54
|
-
t.rcov = true
|
55
|
-
t.rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
|
56
|
-
t.rcov_opts << %[--text-report --sort coverage --no-html --aggregate coverage.data]
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
task :default => [:spec, :cucumber]
|
61
|
-
|
62
|
-
Rake::RDocTask.new do |rdoc|
|
63
|
-
rdoc.rdoc_dir = 'rdoc'
|
64
|
-
rdoc.title = "rspec-expectations #{RSpec::Expectations::Version::STRING}"
|
65
|
-
rdoc.rdoc_files.include('README*')
|
66
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
67
|
-
end
|
68
|
-
|
69
|
-
desc "Push docs/cukes to relishapp using the relish-client-gem"
|
70
|
-
task :relish, :version do |t, args|
|
71
|
-
raise "rake relish[VERSION]" unless args[:version]
|
72
|
-
sh "relish push rspec/rspec-expectations:#{args[:version]}"
|
73
|
-
end
|
74
|
-
|
75
|
-
task :clobber do
|
76
|
-
rm_rf 'doc'
|
77
|
-
rm_rf 'pkg'
|
78
|
-
rm_rf 'tmp'
|
79
|
-
rm_rf 'coverage'
|
80
|
-
end
|
81
|
-
|
data/cucumber.yml
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
def tags(tag)
|
3
|
-
tags = [tag]
|
4
|
-
tags << "~@ruby-1.9" if RUBY_VERSION.to_f < 1.9
|
5
|
-
tags.join(" --tags ")
|
6
|
-
end
|
7
|
-
%>
|
8
|
-
|
9
|
-
default: --require features --tags <%= tags("~@wip") %> --format progress
|
10
|
-
wip: --require features --tags <%= tags("@wip:3") --wip features
|
data/features/.nav
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
- Upgrade.md
|
2
|
-
- Changelog.md
|
3
|
-
- customized_message.feature
|
4
|
-
- diffing.feature
|
5
|
-
- implicit_docstrings.feature
|
6
|
-
- built_in_matchers:
|
7
|
-
- be.feature
|
8
|
-
- be_within.feature
|
9
|
-
- equality.feature
|
10
|
-
- exist.feature
|
11
|
-
- expect_change.feature
|
12
|
-
- expect_error.feature
|
13
|
-
- have.feature
|
14
|
-
- include.feature
|
15
|
-
- match.feature
|
16
|
-
- operators.feature
|
17
|
-
- predicates.feature
|
18
|
-
- respond_to.feature
|
19
|
-
- satisfy.feature
|
20
|
-
- throw_symbol.feature
|
21
|
-
- types.feature
|
22
|
-
- custom_matchers:
|
23
|
-
- define_matcher.feature
|
24
|
-
- define_diffable_matcher.feature
|
25
|
-
- define_matcher_with_fluent_interface.feature
|
26
|
-
- access_running_example.feature
|
27
|
-
- define_matcher_outside_rspec.feature
|
28
|
-
- test_frameworks:
|
29
|
-
- test_unit.feature
|
data/features/Changelog.md
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
### 2.6.0 / 2011-05-12
|
2
|
-
|
3
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.5.0...v2.6.0)
|
4
|
-
|
5
|
-
* Enhancments
|
6
|
-
* `change` matcher accepts Regexps (Robert Davis)
|
7
|
-
* better descriptions for have_xxx matchers (Magnus Bergmark)
|
8
|
-
* range.should cover(*values) (Anders Furseth)
|
9
|
-
|
10
|
-
* Bug fixes
|
11
|
-
* Removed non-ascii characters that were choking rcov (Geoffrey Byers)
|
12
|
-
* change matcher dups arrays and hashes so their before/after states can be
|
13
|
-
compared correctly.
|
14
|
-
* Fix the order of inclusion of RSpec::Matchers in
|
15
|
-
Test::Unit::TestCase and MiniTest::Unit::TestCase to prevent a
|
16
|
-
SystemStackError (Myron Marston)
|
17
|
-
|
18
|
-
### 2.5.0 / 2011-02-05
|
19
|
-
|
20
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.4.0...v2.5.0)
|
21
|
-
|
22
|
-
* Enhancements
|
23
|
-
* `should exist` works with `exist?` or `exists?` (Myron Marston)
|
24
|
-
* `expect { ... }.not_to do_something` (in addition to `to_not`)
|
25
|
-
|
26
|
-
* Documentation
|
27
|
-
* improved docs for raise_error matcher (James Almond)
|
28
|
-
|
29
|
-
### 2.4.0 / 2011-01-02
|
30
|
-
|
31
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.3.0...v2.4.0)
|
32
|
-
|
33
|
-
No functional changes in this release, which was made to align with the
|
34
|
-
rspec-core-2.4.0 release.
|
35
|
-
|
36
|
-
* Enhancements
|
37
|
-
* improved RDoc for change matcher (Jo Liss)
|
38
|
-
|
39
|
-
### 2.3.0 / 2010-12-12
|
40
|
-
|
41
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.2.1...v2.3.0)
|
42
|
-
|
43
|
-
* Enhancements
|
44
|
-
* diff strings when include matcher fails (Mike Sassak)
|
45
|
-
|
46
|
-
### 2.2.0 / 2010-11-28
|
47
|
-
|
48
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.1.0...v2.2.0)
|
49
|
-
|
50
|
-
### 2.1.0 / 2010-11-07
|
51
|
-
|
52
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.1...v2.1.0)
|
53
|
-
|
54
|
-
* Enhancements
|
55
|
-
* be_within(delta).of(expected) matcher (Myron Marston)
|
56
|
-
* Lots of new Cucumber features (Myron Marston)
|
57
|
-
* Raise error if you try "should != expected" on Ruby-1.9 (Myron Marston)
|
58
|
-
* Improved failure messages from throw_symbol (Myron Marston)
|
59
|
-
|
60
|
-
* Bug fixes
|
61
|
-
* Eliminate hard dependency on RSpec::Core (Myron Marston)
|
62
|
-
* have_matcher - use pluralize only when ActiveSupport inflections are indeed
|
63
|
-
defined (Josep M Bach)
|
64
|
-
* throw_symbol matcher no longer swallows exceptions (Myron Marston)
|
65
|
-
* fix matcher chaining to avoid name collisions (Myron Marston)
|
66
|
-
|
67
|
-
### 2.0.0 / 2010-10-10
|
68
|
-
|
69
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.rc...v2.0.0)
|
70
|
-
|
71
|
-
* Enhancements
|
72
|
-
* Add match_for_should_not method to matcher DSL (Myron Marston)
|
73
|
-
|
74
|
-
* Bug fixes
|
75
|
-
* respond_to matcher works correctly with should_not with multiple methods (Myron Marston)
|
76
|
-
* include matcher works correctly with should_not with multiple values (Myron Marston)
|
77
|
-
|
78
|
-
### 2.0.0.rc / 2010-10-05
|
79
|
-
|
80
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.beta.22...v2.0.0.rc)
|
81
|
-
|
82
|
-
* Enhancements
|
83
|
-
* require 'rspec/expectations' in a T::U or MiniUnit suite (Josep M. Bach)
|
84
|
-
|
85
|
-
* Bug fixes
|
86
|
-
* change by 0 passes/fails correctly (Len Smith)
|
87
|
-
* Add description to satisfy matcher
|
88
|
-
|
89
|
-
### 2.0.0.beta.22 / 2010-09-12
|
90
|
-
|
91
|
-
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.beta.20...v2.0.0.beta.22)
|
92
|
-
|
93
|
-
* Enhancements
|
94
|
-
* diffing improvements
|
95
|
-
* diff multiline strings
|
96
|
-
* don't diff single line strings
|
97
|
-
* don't diff numbers (silly)
|
98
|
-
* diff regexp + multiline string
|
99
|
-
|
100
|
-
* Bug fixes
|
101
|
-
* should[_not] change now handles boolean values correctly
|
data/rspec-expectations.gemspec
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
3
|
-
require "rspec/expectations/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "rspec-expectations"
|
7
|
-
s.version = RSpec::Expectations::Version::STRING
|
8
|
-
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["David Chelimsky", "Chad Humphries"]
|
10
|
-
s.email = "dchelimsky@gmail.com;chad.humphries@gmail.com"
|
11
|
-
s.homepage = "http://github.com/rspec/rspec-expectations"
|
12
|
-
s.summary = "rspec-expectations-#{RSpec::Expectations::Version::STRING}"
|
13
|
-
s.description = "rspec expectations (should[_not] and matchers)"
|
14
|
-
|
15
|
-
s.rubygems_version = "1.3.7"
|
16
|
-
s.rubyforge_project = "rspec"
|
17
|
-
|
18
|
-
s.files = `git ls-files`.split("\n")
|
19
|
-
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
20
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
-
s.extra_rdoc_files = [ "README.md" ]
|
22
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
23
|
-
s.require_path = "lib"
|
24
|
-
|
25
|
-
s.add_runtime_dependency 'diff-lcs', '~> 1.1.2'
|
26
|
-
end
|
27
|
-
|
data/specs.watchr
DELETED
@@ -1,57 +0,0 @@
|
|
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
|
-
# --------------------------------------------------
|
38
|
-
# Signal Handling
|
39
|
-
# --------------------------------------------------
|
40
|
-
|
41
|
-
def no_int_for_you
|
42
|
-
@sent_an_int = nil
|
43
|
-
end
|
44
|
-
|
45
|
-
Signal.trap 'INT' do
|
46
|
-
if @sent_an_int then
|
47
|
-
puts " A second INT? Ok, I get the message. Shutting down now."
|
48
|
-
exit
|
49
|
-
else
|
50
|
-
puts " Did you just send me an INT? Ugh. I'll quit for real if you do it again."
|
51
|
-
@sent_an_int = true
|
52
|
-
Kernel.sleep 1.5
|
53
|
-
run_all_tests
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
# vim:ft=ruby
|