Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: rspec/rspec-expectations
...
head fork: rspec/rspec-expectations
This comparison is big! We're only showing the most recent 250 commits
Commits on Sep 30, 2011
@dchelimsky dchelimsky copy instance_eval_with_args from rspec-core (a bit cleaner) 2102bcd
Commits on Oct 04, 2011
@dchelimsky dchelimsky ci: bump the aruba timeout for jruby e175d8a
Commits on Oct 06, 2011
@dchelimsky dchelimsky Change matcher dups Enumerable before the action, supporting custom
Enumerable types like CollectionProxy in Rails.

- Closes rspec/rspec-rails#411
ea01a6f
@dchelimsky dchelimsky ci: fix travis png url b8bafca
Commits on Oct 09, 2011
@dchelimsky dchelimsky ignore .rbx (rubinius-generated files) 2487077
@dchelimsky dchelimsky bump to 2.7.0.rc1 13cc663
@dchelimsky dchelimsky bump relish version to ~> 0.5.0 40d5ba9
Commits on Oct 16, 2011
@dchelimsky dchelimsky cleanup and add some rdoc 4638609
@dchelimsky dchelimsky update changelog for 2.7.0 release 32f2439
@dchelimsky dchelimsky bump version to 2.7.0 cf9e77f
@dchelimsky dchelimsky fix formatting problems in the changelog 73606f7
Commits on Oct 17, 2011
@dchelimsky dchelimsky move eq matcher to a class e8e4e5f
@dchelimsky dchelimsky move eql matcher to a class 14142dc
@dchelimsky dchelimsky move include matcher to a class and start to extract a base matcher c…
…lass
fc64e47
Commits on Oct 19, 2011
@dchelimsky dchelimsky add benchmark showing improvement by moving from DSL to classes
"x.should eq(5)" is over 200x faster using a class than the dsl in ruby
1.9.2, with similar results in other rubies

=========================================

3 runs of 1000 times for each example running ruby/1.8.7
passing examples: 5.should eq(5)
* using the DSL
  0.340000   0.000000   0.340000 (  0.342052)
  0.330000   0.010000   0.340000 (  0.340618)
  0.340000   0.000000   0.340000 (  0.339149)

* using a class
  0.000000   0.000000   0.000000 (  0.003762)
  0.010000   0.000000   0.010000 (  0.004192)
  0.000000   0.000000   0.000000 (  0.003791)

failing examples: 5.should eq(3)
* using the DSL
  0.380000   0.000000   0.380000 (  0.384415)
  0.380000   0.010000   0.390000 (  0.381604)
  0.370000   0.000000   0.370000 (  0.380255)

* using a class
  0.040000   0.000000   0.040000 (  0.034528)
  0.030000   0.000000   0.030000 (  0.032021)
  0.060000   0.010000   0.070000 (  0.067579)

3 runs of 1000 times for each example running ruby/1.9.2
passing examples: 5.should eq(5)
* using the DSL
  0.250000   0.010000   0.260000 (  0.249692)
  0.250000   0.000000   0.250000 (  0.253856)
  0.230000   0.000000   0.230000 (  0.232787)

* using a class
  0.000000   0.000000   0.000000 (  0.001069)
  0.000000   0.000000   0.000000 (  0.001041)
  0.000000   0.000000   0.000000 (  0.001023)

failing examples: 5.should eq(3)
* using the DSL
  0.370000   0.000000   0.370000 (  0.377139)
  0.360000   0.010000   0.370000 (  0.358379)
  0.370000   0.000000   0.370000 (  0.373795)

* using a class
  0.060000   0.010000   0.070000 (  0.073325)
  0.050000   0.000000   0.050000 (  0.053562)
  0.070000   0.000000   0.070000 (  0.075382)

3 runs of 1000 times for each example running ruby/1.9.3
passing examples: 5.should eq(5)
* using the DSL
    0.210000   0.000000   0.210000 (  0.219539)
   0.220000   0.010000   0.230000 (  0.217905)
   0.220000   0.000000   0.220000 (  0.219657)

* using a class
    0.000000   0.000000   0.000000 (  0.001054)
   0.000000   0.000000   0.000000 (  0.001048)
   0.000000   0.000000   0.000000 (  0.001035)

failing examples: 5.should eq(3)
* using the DSL
    0.350000   0.000000   0.350000 (  0.351742)
   0.360000   0.000000   0.360000 (  0.362456)
   0.340000   0.010000   0.350000 (  0.351098)

* using a class
    0.080000   0.000000   0.080000 (  0.079964)
   0.080000   0.000000   0.080000 (  0.076579)
   0.070000   0.000000   0.070000 (  0.080587)

3 runs of 1000 times for each example running rbx/1.8.7
passing examples: 5.should eq(5)
* using the DSL
  1.926107   0.009784   1.935891 (  1.629354)
  0.583860   0.004390   0.588250 (  0.580396)
  0.868571   0.003510   0.872081 (  0.796644)

* using a class
  0.002652   0.000013   0.002665 (  0.002679)
  0.001845   0.000016   0.001861 (  0.001848)
  0.002656   0.000010   0.002666 (  0.001823)

failing examples: 5.should eq(3)
* using the DSL
  0.694148   0.002006   0.696154 (  0.648551)
  1.063773   0.004653   1.068426 (  0.998837)
  0.643594   0.001356   0.644950 (  0.638358)

* using a class
  0.020139   0.000036   0.020175 (  0.020161)
  0.097540   0.000575   0.098115 (  0.084680)
  0.058366   0.000269   0.058635 (  0.044372)

3 runs of 1000 times for each example running jruby/1.8.7
passing examples: 5.should eq(5)
* using the DSL
  0.355000   0.000000   0.355000 (  0.355000)
  0.261000   0.000000   0.261000 (  0.261000)
  0.242000   0.000000   0.242000 (  0.242000)

* using a class
  0.007000   0.000000   0.007000 (  0.007000)
  0.004000   0.000000   0.004000 (  0.004000)
  0.001000   0.000000   0.001000 (  0.001000)

failing examples: 5.should eq(3)
* using the DSL
  0.507000   0.000000   0.507000 (  0.507000)
  0.468000   0.000000   0.468000 (  0.468000)
  0.476000   0.000000   0.476000 (  0.476000)

* using a class
  0.259000   0.000000   0.259000 (  0.259000)
  0.521000   0.000000   0.521000 (  0.521000)
  0.244000   0.000000   0.244000 (  0.244000)
d9e6258
@dchelimsky dchelimsky move equal matcher to class 6ef7b16
Commits on Oct 20, 2011
@dchelimsky dchelimsky make BaseMatcher a module 175873e
@dchelimsky dchelimsky be_true matcher from dsl to class 747c364
@dchelimsky dchelimsky generalize a few more bits to the base matcher 83db538
@dchelimsky dchelimsky be_[true|false|nil] matchers are all classes now 276888f
Commits on Oct 21, 2011
@dchelimsky dchelimsky Fix broken be_true and equal matchers. 17054d5
@dchelimsky dchelimsky exist matcher from dsl to class 4fc2207
@dchelimsky dchelimsky fix the failure message for exist matcher db5d616
@dchelimsky dchelimsky be_kind_of matcher to class 2953622
@dchelimsky dchelimsky be instance of matcher to class (and restore better failure messages …
…for be a kind of)
93f6ac4
@dchelimsky dchelimsky be_within matcher to class 148192b
@dchelimsky dchelimsky move the rest of the built-in matchers to classes 55a6939
@dchelimsky dchelimsky move the matchers back to the files with their classes for now b9cd7f5
@dchelimsky dchelimsky fix cover matcher failure messages 7a0abc1
@dchelimsky dchelimsky add rdoc for a few matchers 79648bd
@dchelimsky dchelimsky changelog a4f0fb5
Commits on Oct 24, 2011
@dchelimsky dchelimsky rdoc 3feb655
@dchelimsky dchelimsky rdoc 29d56b9
Commits on Oct 25, 2011
@justinko justinko Set default order to :random 0b61472
Commits on Oct 30, 2011
@dchelimsky dchelimsky add -w flag to rake spec f852ee1
@dchelimsky dchelimsky eliminate warnings 4ef2397
@dchelimsky dchelimsky dev: fix ruby-debug version (and deps) for 1.9.2 806b14b
@mvz mvz Eliminate remaining warnings.
- Closes #94.
0081b13
@dchelimsky dchelimsky changelog for #94 3c7b0f5
@dchelimsky dchelimsky changelog tweaks 2e85c85
Commits on Nov 06, 2011
@dchelimsky dchelimsky changelog b53e358
@dchelimsky dchelimsky bump to 2.8.0.rc1 09d9dff
Commits on Nov 09, 2011
@dchelimsky dchelimsky update License and/or authors in gemspec c5afc28
@dchelimsky dchelimsky update email addy and homepage in gemspec 3f23693
@dchelimsky dchelimsky fix changelog formatting 3a931ab
Commits on Nov 20, 2011
@dchelimsky dchelimsky dev: clobber docs 9cd937b
Commits on Nov 23, 2011
@dchelimsky dchelimsky add changelog to rdoc 36f2c5d
@dchelimsky dchelimsky Revert "add changelog to rdoc"
Accidentally included some stuff I was in the middle of.

This reverts commit 36f2c5d.
ed98a22
@dchelimsky dchelimsky Add changelog to rdoc (again) 1707be8
Commits on Nov 24, 2011
@dchelimsky dchelimsky dev: add warning with solution for ruby-debug19 issues when installin…
…g the bundle on ruby-1.9.3
e61595a
@dchelimsky dchelimsky add match_unless_raises to BaseMatcher 94591f2
@dchelimsky dchelimsky store the exception rescued in match_against_raises 88d6ecf
Commits on Nov 25, 2011
@dchelimsky dchelimsky BaseMatcher#== delegates to matches? 4499f53
@dchelimsky dchelimsky dev: hack the Gemfile to print instructions for ruby-debug-base19 and…
… linecache19 on ruby-1.9.3
1b2f6bd
@dchelimsky dchelimsky format 678ce01
@dchelimsky dchelimsky ci: don't warn about ruby-debug-base19 and linecache19 in ci 82eba3f
Commits on Nov 26, 2011
@dchelimsky dchelimsky self-less 7ae080e
@dchelimsky dchelimsky remove unused file f776aca
@dchelimsky dchelimsky dev: move dev-env gems to Gemfile-custom.sample d67083c
@dchelimsky dchelimsky ignore Gemfile-custom 213f60c
Commits on Nov 28, 2011
@coreyhaines coreyhaines create one matcher object rather than one-per-call d3e5310
@dchelimsky dchelimsky document methods in the matcher DSL 17c04aa
Commits on Dec 02, 2011
@dchelimsky dchelimsky add license to gemspec (and consequently the gem) f9f1b5b
Commits on Dec 04, 2011
@dchelimsky dchelimsky use github-flavored-markdown in the readme f574614
Commits on Dec 16, 2011
@dchelimsky dchelimsky add note explaining why you can't say actual.should != expected a6c4788
Commits on Dec 20, 2011
@dchelimsky dchelimsky prep for 2.8.0.rc2 28ca577
Commits on Dec 28, 2011
@spicycode spicycode Merge pull request #60 from pcreux/master
Better diff output for Hash
2447ef6
Commits on Dec 29, 2011
@dchelimsky dchelimsky Changelog for last merge 6db8a2a
@dchelimsky dchelimsky make include matcher diffable 119e018
Commits on Jan 04, 2012
@exviva exviva Fix warning in matchers/dsl.rb
lib/rspec/matchers/dsl.rb:10: warning: `*' interpreted as argument prefix
9b8aeb9
@dchelimsky dchelimsky Merge pull request #102 from exviva/fix_warning_splat_interpreted_as_…
…argument_prefix

Fix warning in matchers/dsl.rb
43b0918
@dchelimsky dchelimsky Diff single line and multiline strings differently 1273d4d
@dchelimsky dchelimsky Changelog for #102 [ci skip] b525e69
Commits on Jan 05, 2012
@dchelimsky dchelimsky bump to 2.8.0 04e55a8
Commits on Jan 06, 2012
@dchelimsky dchelimsky Align respond_to? and method_missing in Matchers generated by DSL.
- Fixes #103.
d7db5d0
@dchelimsky dchelimsky changelog for #103 3d89aec
@dchelimsky dchelimsky bump some dev dep versions and move them to gemspec 73c6b68
@dchelimsky dchelimsky clean up file listings for rdoc, yard, and gemspec b41b82f
@dchelimsky dchelimsky ci: need the development group now 034084e
@dchelimsky dchelimsky add README.md to .document file [ci skip] d03388f
Commits on Jan 09, 2012
@dchelimsky dchelimsky remove unnecessary (and unused) custom error classes e031971
Commits on Jan 12, 2012
@dchelimsky dchelimsky Move all the matcher classes to the RSpec::Matchers::BuiltIn module (so
they don't cloud the Matchers namespace)
536cf9e
@dchelimsky dchelimsky dev: tweak Guardfile b7f6dde
@dchelimsky dchelimsky autoload matcher classes to reduce startup time a0f5026
@dchelimsky dchelimsky benchmark improvement using autoload a5b7368
@dchelimsky dchelimsky Changelog for #105 [ci skip] 867260b
@dchelimsky dchelimsky fix test for cover fb36160
@dchelimsky dchelimsky fix cuke that includes fully qualified name of a class that moved 19c64a5
@dchelimsky dchelimsky it's cover? (with a ?) 95bf234
@dchelimsky dchelimsky Clear out user-defined instance variables between invocations of DSL-…
…defined matchers.

- Fixes #104.
f4efada
@dchelimsky dchelimsky ruby 1.8 uses strings, 1.9 symbols 0102504
@myronmarston myronmarston Perf: Set#include? is O(1); Array#include? is O(N).
See the included benchmarks for actual benchmarks against a collection of 7 values like we have here.
40f83a9
Commits on Jan 24, 2012
@dchelimsky dchelimsky Dup the instance of a DSL generated matcher so its state is not changed
by subsequent invocations.

- Fixes #112.
65d3c4d
Commits on Jan 28, 2012
@dchelimsky dchelimsky Remove relative links from README, since they can't work correctly on
github and rubydoc.info.

- Fixes #113.
17325de
Commits on Feb 06, 2012
@dchelimsky dchelimsky Treat expected args consistently across positive and negative expecta…
…tions.

- Fixes #115.
044b0a6
@dchelimsky dchelimsky Changlog for #115 503ed29
Commits on Mar 12, 2012
@dchelimsky dchelimsky bump to 2.9.0.rc1 f923b28
@dchelimsky dchelimsky Fix file list in gemspec.
- Fixes #121
ddf0502
@dchelimsky dchelimsky bump to 2.9.0.rc2 a60766b
Commits on Mar 17, 2012
@dchelimsky dchelimsky bump to 2.9.0 fb77fca
@dchelimsky dchelimsky dev: add a script to download ruby-debug-base19-0.11.26.gem and linec…
…ache19-0.5.13.gem to a local cache

[ci skip]
564487b
@dchelimsky dchelimsky Require kernel extensions (should) from block_aliases in case it is
loaded first.
e290fe3
@dchelimsky dchelimsky fix bug diffing single strings with multiline strings 07dd19c
@dchelimsky dchelimsky Revert "fix bug diffing single strings with multiline strings"
This reverts commit 07dd19c.
2c23be3
@dchelimsky dchelimsky better fix for bug when diffing multiline strings e4d8dcb
@dchelimsky dchelimsky formatting tweaks in the changelog 0492d87
Commits on Mar 22, 2012
@justinko justinko Remove unnecessary "else" clause. 584e764
Commits on Mar 23, 2012
@justinko justinko Provide a helpful message if the diff between two objects is empty. F…
…ixes #123
e12a2d9
Commits on Mar 25, 2012
@dchelimsky dchelimsky Changelog for #125 [ci skip] 0458ac1
Commits on Mar 27, 2012
@myronmarston myronmarston Started working on yield matchers. 99456da
Commits on Mar 29, 2012
@myronmarston myronmarston Rename helper methods for yield matcher specs. eb9d327
mirasrael Fix error with using custom matchers inside other custom matcher rspe… 77243d9
@dchelimsky dchelimsky Merge pull request #126 from mirasrael/master
Fix for error with using custom matchers inside other custom matchers
6fe6c9f
@dchelimsky dchelimsky changelog for #126 8f822b0
@dchelimsky dchelimsky tweak docstring #126 [ci skip] e5cd722
Commits on Mar 30, 2012
@myronmarston myronmarston Match yielded args with == or ===.
Previously, this expectation failed:

  expect { |b| _yield_with_args(String, Fixnum, &b) }.to yield_with_args(String, Fixnum)

...because Class=== returns false when given itself.
72c5dae
@myronmarston myronmarston Provide better message for negative yield_with_args matcher failure. f3923dd
@myronmarston myronmarston Group the yield examples by matcher. 1b106c4
mirasrael Fix using execution context methods in nested DSL matchers
- Fixes #127.
abba439
Commits on Mar 31, 2012
@myronmarston myronmarston Add yield_successive_args matcher. 23f5acb
mirasrael Fix RSpec::Matchers::DSL#define for compatibility with 1.8.x 21752df
mirasrael Fix naming 70dd175
@myronmarston myronmarston Fix typo: "yields", not "yeilds". 1897250
@myronmarston myronmarston Remove diffability from yield matchers for now.
I'm not sure it makes sense given that they don't match strictly but instead match using === or ==.
3c6a81e
@myronmarston myronmarston Fix yield matchers to handle instance_eval.
It's debatable if instance_eval'ing a block can be considered yielding, but it's important that we use local variables in the lambdas rather than instance variables, because we don't want to modify the state of the receiver of #instance_eval.
0e79594
@myronmarston myronmarston Raise an error if a yield matcher is used w/ an expect block that acc…
…epts no args.

The expect block must accept an arg, and pass it on to the method-under-test as a block, in order for these yield matchers to work properly.  Since this is atypical for an expect block, this error will help guide people when they use these matchers incorrectly.
66a2f01
@myronmarston myronmarston Add description to all yield matchers. e969284
Commits on Apr 01, 2012
@myronmarston myronmarston Add API docs for yield matchers.
Cukes are still to come.
b94da8d
@justinko justinko Merge pull request #128 from mirasrael/master
Fix using execution context methods in nested DSL matchers
5ffc547
Commits on Apr 02, 2012
@dchelimsky dchelimsky Changelog for #128
[ci skip]
ca5cc09
@dchelimsky dchelimsky Change the be_within matcher to be inclusive of the delta.
- Fixes #131.
- This changes the way the matcher behaves, which is something we would
  generally avoid in anything but a major release, however we believe
  that this is the correct behavior and that this change is very unlikely
  to impact anybody negatively. Specifically:

  1. 17.4.should be_within(0.5).of(17) # used to pass and continues to pass
  2. 17.5.should be_within(0.5).of(17) # used to fail due to lack of inclusivity, but passes after this change
  3. 17.6.should be_within(0.5).of(17) # used to fail and continues to fail
  4. 17.4.should_not be_within(0.5).of(17) # used to fail and continues to fail
  5. 17.5.should_not be_within(0.5).of(17) # used to pass due to lack of inclusivity, but fails after this change
  6. 17.6.should_not be_within(0.5).of(17) # used to fail and continues to fail

  Scenario 2 used to fail, so it's unlikely to be present.
  Scenario 5 will result in new failures, but we believe that it is very unlikely to be used.
a9bf7ab
Commits on Apr 03, 2012
@dchelimsky dchelimsky bump to 2.9.1 f31ae96
@dchelimsky dchelimsky fix changelog 2cfed80
Commits on Apr 04, 2012
@dchelimsky dchelimsky need relish in the Gemfile to push relish docs 6fe2bca
@dchelimsky dchelimsky add doc files to .yardopts
[ci skip]
40cbc30
Commits on Apr 08, 2012
@jeremywadsack jeremywadsack Added start_with and end_with matchers for String 77a9ecc
@jeremywadsack jeremywadsack Added start_with and end_with support for Array 9b9946c
@jeremywadsack jeremywadsack Handle case when expected can't be indexed ab1d055
@jeremywadsack jeremywadsack Rdoc for new matchers d5fdf35
@jeremywadsack jeremywadsack Fix up whitespace 5f367d9
Commits on Apr 09, 2012
@dchelimsky dchelimsky Merge pull request #135 from jeremywadsack/start_with_end_with
Add matchers start_with end_with
05d9853
Commits on Apr 10, 2012
@myronmarston myronmarston Add cukes for yield matchers. 24335ee
@dchelimsky dchelimsky Change start_with and end_with matchers to take varargs.
- Clean up rdoc, features, and specs.
- Refactor the two matchers a bit.
- Add changelog.
- #135
2e0cdbc
@dchelimsky dchelimsky add start_with and end_with matchers to README [ci skip] 35d98aa
@myronmarston myronmarston Raise an error if expect block arg isn't passed on as a block.
Otherwise, the matcher is unable to detect anything about if the method-under-test yields, and the user may get false positives.
780655c
@myronmarston myronmarston Refactor yield matchers a bit.
This allows the YieldProbe to take care of defining the probe block, and simplifies the #matches? methods.
7a0e4bb
@myronmarston myronmarston Raise an error if a single-yield matcher is used with a multi-yield m…
…ethod.

Only the yield_successive_args matcher is designed for the multi-yield case.
f8c3c01
Commits on Apr 11, 2012
@myronmarston myronmarston Update the yield cukes with a few more/better examples. d020cfe
Commits on Apr 17, 2012
@jeremywadsack jeremywadsack Added more helpful message when actual has #[] but does not support #…
…[0,3]

Pull request #135
5908107
@dchelimsky dchelimsky align usage of expect/to 3591cd2
@dchelimsky dchelimsky can't use 1.9 hash syntax in specs (still support 1.8) - #135 5bdf4b8
Commits on Apr 19, 2012
@myronmarston myronmarston Merge pull request #129 from rspec/yield_matchers
Yield matchers
e610e40
@myronmarston myronmarston Update changelog.
[ci skip]
429c672
Commits on Apr 20, 2012
@dchelimsky dchelimsky match_unless_raises accepts multiple args
- in support of fix for rspec/rspec-rails#530
a5a58aa
@jfirebaugh jfirebaugh Do not require exception messages to exactly match MRI
Different Ruby implementations deserve latitude in the error
messages, e.g. to provide more precise diagnostics than MRI.

In particular, do not rely on the fact that RuntimeError generated
by MRI when calling bare `raise` without a current exception has
an empty message. That is not the case on Rubinius; it is arguably
a bug in MRI.

Following this commit, all test pass on Rubinius head.
9fa523e
Commits on Apr 21, 2012
@dchelimsky dchelimsky Merge pull request #140 from jfirebaugh/rubinius
Do not require exception messages to exactly match MRI
b98f0ba
@dchelimsky dchelimsky Fix potential false-positive so that it will fail correctly if there …
…is a regression.

- See #140.
694cbf1
@dchelimsky dchelimsky Changlog for #140 780d4c2
@dchelimsky dchelimsky eliminate 'not initialized' warning on @matcher_execution_context 7c76204
@dchelimsky dchelimsky ci: run against rbx 1fdaedb
@dchelimsky dchelimsky Fix Changelog formatting [ci skip] 20c7a3c
@dchelimsky dchelimsky Changelog [ci skip] f93ce4c
Commits on Apr 22, 2012
@dchelimsky dchelimsky shorten file extension f315020
@dchelimsky dchelimsky align config files across rspec projects fe40efd
@dchelimsky dchelimsky silence more warnings 5d8a233
@dchelimsky dchelimsky dev: align Gemfiles across rspec projects 15d96b8
Commits on May 01, 2012
@dchelimsky dchelimsky update yard to 0.8 97b5e0c
Commits on May 04, 2012
@dchelimsky dchelimsky update changelog for 2.10 release 77e1a09
@dchelimsky dchelimsky bump to 2.10.0 2e348ff
Commits on May 09, 2012
@myronmarston myronmarston Add support for `expect(value)` syntax.
Note: there's more to do here (documentation, etc); this is just a starting point for discussion and comments.
d279c3b
@myronmarston myronmarston Don't expose #target as a public API.
Also, fix the spelling of the class while I'm at it.
0d7ce9c
@myronmarston myronmarston Add configuration API for choosing an expectation syntax.
:should, :expect or both can be chosen.
d9ab1a3
@myronmarston myronmarston Don't redefine should or expect when re-configured. ad2a757
Commits on May 10, 2012
@myronmarston myronmarston Refactor enabling/disabling of expectation syntaxes.
* Fix build on JRuby. Our sandboxing via forking didn't work
  on JRuby since fork isn't available. On JRuby we just
  re-enable all syntaxes at the end of each sandboxed example.
* Testing this revealed that the way I was restoring a disabled
  syntax didn't always work. Based on the random order, sometimes
  spec/rspec/matchers/be_spec.rb:427 would fail with
  "TypeError: bind argument must be an instance of Kernel".
* Refactored main logic into new syntax module, that can add
  the syntaxes to any class or module. Kernel/RSpec::Matcher
  defaults are provided for convenience. This also fixes the
  bind failure, by redefining the methods anew rather than
  re-binding the old ones.
309c4f0
@myronmarston myronmarston Prevent operator matchers from new expect syntax. 6de81c7
Commits on May 11, 2012
@myronmarston myronmarston We can't count on hash ordering.
...so use an array of tuples instead.

Closes #144.
3cf9110
@myronmarston myronmarston Cleanup code a bit.
- Remove bang from method...as @justinko rightly pointed out, there's no corresponding bangless method so it didn't really follow convention here.
- Use an early guarded return.
8567ac6
Commits on May 12, 2012
@myronmarston myronmarston Add yard docs for new modules.
[ci skip]
f1b8aa2
@myronmarston myronmarston Add match_array matcher method for the old =~ array matcher.
This is needed because we've decided not to support operator matchers off of `expect(value).to`, and `match_array` is the best name we've come up with for it.
f00de57
Commits on May 13, 2012
@dchelimsky dchelimsky Remove obsolete spec
- it wasn't running because it was dynamically bound to classes that
  were no longer being found.
- it was specifying an age-old protocol that isn't used by
  rspec-expectations, so it would never be used.
5626043
Commits on May 17, 2012
@zhangsu zhangsu Fix confusing error message in `be_within`
This is a patch for the following issue:

#92

It is possible to have duck typing for numerical operations, but the minus
sign is often used for other operations as well such as the set
difference that Array#- performs. In that case, even if it does not fail
on the :- method, it will probably fail on the subsequent :abs and :<=
calls.
675115d
@justinko justinko Merge pull request #145 from zhangsu/master
Fix confusing error message in `be_within`
d186bf8
@justinko justinko Clearer error message for previous commit. d55d9a8
@justinko justinko Make "validation" methods for the be_within matcher class private. 1cac6bc
@justinko justinko changelog 605a520
Commits on May 21, 2012
@dchelimsky dchelimsky dev: update Guardfile to run everything when matchers change c450e3d
@dchelimsky dchelimsky refactor BeWithin to be more self-contained.
More explicit and consistent in dealing with instance variables rather
than relying on knowledge of how BaseMatcher handles them.
38b247a
@dchelimsky dchelimsky minor refactoring: use implicit return 123169e
Commits on May 22, 2012
@dchelimsky dchelimsky dev: --backtrace 4c4c8dc
@dchelimsky dchelimsky refactor built-in matchers
Removed default initialize and matches? from the BaseMatcher and added
explicit initialization where needed.
a465f14
@dchelimsky dchelimsky Fix some cukes broken by the previous matcher refactoring (messages c…
…hanged)
b396938
@myronmarston myronmarston Merge pull request #119 from rspec/expect_syntax
Add support for `expect(value)` syntax.
71a2c8d
@myronmarston myronmarston Update changelog. f9574db
@myronmarston myronmarston More changelog updates. 9793323
Commits on May 25, 2012
@brynary brynary Add Code Climate badge 99fb8ce
@dchelimsky dchelimsky Merge pull request #146 from brynary/codeclimate-badge
Add Code Climate badge
089aca4
Commits on Jun 05, 2012
@myronmarston myronmarston Add more docs on syntax configuration.
Closes #149.
5dd161e
Commits on Jun 07, 2012
@justinko justinko Use `eq` instead of `==` for built-in matcher failure message. 43526ec
Commits on Jun 14, 2012
@dchelimsky dchelimsky put the rdoc for should, should_not, and expect where yard can pick i…
…t up
7847016
Commits on Jun 15, 2012
@myronmarston myronmarston Add `should` and `should_not` to BasicObject on 1.9.
For #114.
4325717
@myronmarston myronmarston Add #add_should_and_should_not to configuration API.
This allows users to manually add these methods to proxy objects that do not have them.

Closes #114.
a954586
@myronmarston myronmarston Update changelog.
[ci skip]
6a8c932
Commits on Jun 20, 2012
@dchelimsky dchelimsky refactor matchers to use BaseMatcher's initialize and matches? methods 4024344
Commits on Jun 23, 2012
@dchelimsky dchelimsky Change BaseMatcher to a class.
It was a module, but it was really acting as a base class (it was even
in the name).

Very slightly more efficient (see benchmarks/include_v_superclass.rb)
49dc451
Commits on Jun 25, 2012
@dchelimsky dchelimsky ensure the eq matcher sends :== to actual (not expected) a3e2839
Commits on Jul 07, 2012
@dchelimsky dchelimsky add travis badge to README adaaa9b
@dchelimsky dchelimsky space, the final frontier b394f47
@dchelimsky dchelimsky bump to 2.11.0 45161a7
@dchelimsky dchelimsky improve automation for publishing to relishapp.com 705ddc5
Commits on Jul 08, 2012
@dchelimsky dchelimsky Constrain `actual` in `be_within` matcher to values that respond to `-`
instead of requiring a specific type.

- `Time`, for example, is a legit alternative.
- Fixes issue introduced by #145
1d2cc1f
@dchelimsky dchelimsky changelog for 2.11.1 release c6da0f6
@dchelimsky dchelimsky loosen time constraint for be_within example 79febad
Commits on Jul 10, 2012
@dchelimsky dchelimsky enhance rdoc for expect syntax ebd8a4c
@dchelimsky dchelimsky tweak README (expect syntax) d5417f9
Commits on Jul 13, 2012
@myronmarston myronmarston Remove the hacky search for should_not in backtrace.
It wasn't working for the `expect { .. }.to` syntax, anyway.
9814ab2
@myronmarston myronmarston Loosen error message constraints for raise_error matcher specs.
This is in prep for #59--once I had some backtrace info, all of these would fail since they are doing exact string matches.
2c2fdb6
Commits on Jul 17, 2012
@alexcoplan alexcoplan add support for coloured diffs dbe5aa3
@alexcoplan alexcoplan fixed coloring, added tests for colored diff 54b9e98
@alexcoplan alexcoplan tests now stub color config, removed setter in config 505db9f
@alexcoplan alexcoplan no magic nums, yellow->green for insertions 477fac1
@alexcoplan alexcoplan fixed chr grabbing for older rb implementations 83cdba4
Commits on Jul 18, 2012
@myronmarston myronmarston Merge pull request #157 from alexcoplan/color_diffs
Colored Diffs
3b4f60c
@myronmarston myronmarston Update changelog. 067f13d
Commits on Jul 19, 2012
@dchelimsky dchelimsky move post-2.11.1 enhancements in changelog 024002c
Commits on Jul 25, 2012
@ggilder ggilder #159: Revise should(_not) to work with MacRuby 9c9619b
@myronmarston myronmarston Merge pull request #160 from ggilder/master
#159: Revise should(_not) to work with MacRuby
d51bf72
@myronmarston myronmarston Add change log entry for #160. 147f710
@alindeman alindeman Be defensive about resolving `Object`
It'd be pretty crazy for there to be an `RSpec::Object` or
`RSpec::Expectations::Object,` but 1) Ruby's constant resolution rules
have changed and I don't always remember them and 2) We were originally
defensive about it.
3cacdde
Commits on Jul 26, 2012
@myronmarston myronmarston Cherry-pick 2.11.2 release stuff from 2-11-maint branch. c897a47
Commits on Jul 27, 2012
@myronmarston myronmarston Ensure #== is defined on build in matchers so that they can be composed.
For example:

expect {
  user.emailed!
}.to change{user.last_emailed_at}.from(nil).to be_within(1.second).of(Time.zone.now)

Closes #161.
d427bac
Commits on Aug 25, 2012
@alexcoplan alexcoplan use same color config method as core 94fce05
@alexcoplan alexcoplan improve diff coloring code 248004e
@alexcoplan alexcoplan revert to using static color methods 7cdd88b
@myronmarston myronmarston Merge pull request #169 from alexcoplan/better_diff_coloring
Better diff coloring
f4d4cd0
Commits on Aug 26, 2012
@myronmarston myronmarston Run all specs together and in isolation for build.
We want them to be able to pass when run in isolation w/o bundler being loaded.
b0d5007
@myronmarston myronmarston Fix ruby warnings.
/Users/myron/code/rspec-dev/repos/rspec-expectations/lib/rspec/matchers/dsl.rb:8: warning: method redefined; discarding old ignore
/Users/myron/code/rspec-dev/repos/rspec-expectations/lib/rspec/matchers/dsl.rb:8: warning: previous definition of ignore was here
a8d9014
@myronmarston myronmarston Improve how we find the path to the rspec exe.
On travis, it found `/home/travis/builds/rspec/exe/rspec`,
and that didn't exist. I'm not sure why it didn't find the
one in rspec-core, but I think this'll fix it.
cafef45
@myronmarston myronmarston Revert recent build change -- it's not working on Travis CI.
I need to head to bed in a bit and I don't want to leave the build
broken. I'll put this in a branch and play with it there to
get it to work.

- Revert "Improve how we find the path to the rspec exe."
  This reverts commit cafef45.
- Revert "Run all specs together and in isolation for build."
  This reverts commit b0d5007.
aa4530d
Commits on Sep 05, 2012
@myronmarston myronmarston Fix and deprecate `expect { }.should` syntax.
Fixes #170.
b89b8c5
@myronmarston myronmarston Add missing changelog entry I forgot to add.
This was fixed in d427bac.
016aece
@myronmarston myronmarston Add 2.11.3 release info. cf6cf5d
Commits on Sep 06, 2012
@myronmarston myronmarston Fix full changelog URL. d5e6e36
Commits on Sep 08, 2012
@dchelimsky dchelimsky run should_clean gem (it "does ... v it "should ...) 3c0e7ea
Commits on Sep 10, 2012
@myronmarston myronmarston Fix and re-enable the test_all build.
I had previously attempted to add this in b0d5007 but find_path_to_rspec_exe wasn't quite right.

Travis installs rspec-core as a :git gem so the path is `.../rspec-core-<sha>/lib`, not `.../rspec-core/lib`.
46d5347
@myronmarston myronmarston Use stub_const rather than hand-rolled const mutation.
This also fixes a warning I was getting on the 1.8.7 build:

rspec-expectations/spec/rspec/matchers/have_spec.rb:13: warning: redefine pluralize
d0773b1
Commits on Sep 12, 2012
David Chelimsky whitespace 60a58ec
David Chelimsky update Gemfile-custom 66ad37c
David Chelimsky more custom Gemfile updates d3d8672
Commits on Sep 14, 2012
@rentalcustard rentalcustard indicative docstrings
This was a pull request (#71) from Tom Stuart that I didn't merge until several
months later, so I had to address some merge conflicts. In addition, the
original intent was to offer the end user a configuration option for the
"voice" of the message (e.g. "should be x" vs "is x"), but I made it check if
the matcher responds to new methods docstring_for_should or
docstring_for_should_not and use those. This way all the internal matchers do
the right thing, but external matchers will still work without rspec trying to
convert the mode of it's docstring.
2f0d105
@dchelimsky dchelimsky fix cuke for rubinius a5c6f41