Skip to content
This repository
  • 147 commits
  • 88 files changed
  • 11 contributors
Mar 17, 2012
David Chelimsky 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]
David Chelimsky Require kernel extensions (should) from block_aliases in case it is
loaded first.
David Chelimsky fix bug diffing single strings with multiline strings 07dd19c
David Chelimsky Revert "fix bug diffing single strings with multiline strings"
This reverts commit 07dd19c.
David Chelimsky better fix for bug when diffing multiline strings e4d8dcb
David Chelimsky formatting tweaks in the changelog 0492d87
Mar 22, 2012
Justin Ko Remove unnecessary "else" clause. 584e764
Justin Ko Provide a helpful message if the diff between two objects is empty. F…
…ixes #123
Mar 24, 2012
David Chelimsky Changelog for #125 [ci skip] 0458ac1
Mar 26, 2012
Myron Marston Started working on yield matchers. 99456da
Mar 28, 2012
Myron Marston Rename helper methods for yield matcher specs. eb9d327
Mar 29, 2012
Fix error with using custom matchers inside other custom matcher rspe… 77243d9
David Chelimsky Merge pull request #126 from mirasrael/master
Fix for error with using custom matchers inside other custom matchers
David Chelimsky changelog for #126 8f822b0
David Chelimsky tweak docstring #126 [ci skip] e5cd722
Myron Marston 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.
Myron Marston Provide better message for negative yield_with_args matcher failure. f3923dd
Myron Marston Group the yield examples by matcher. 1b106c4
Mar 30, 2012
Fix using execution context methods in nested DSL matchers
- Fixes #127.
Myron Marston Add yield_successive_args matcher. 23f5acb
Myron Marston Fix typo: "yields", not "yeilds". 1897250
Myron Marston 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 ==.
Myron Marston 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.
Myron Marston 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.
Mar 31, 2012
Fix RSpec::Matchers::DSL#define for compatibility with 1.8.x 21752df
Fix naming 70dd175
Myron Marston Add description to all yield matchers. e969284
Myron Marston Add API docs for yield matchers.
Cukes are still to come.
Apr 01, 2012
Justin Ko Merge pull request #128 from mirasrael/master
Fix using execution context methods in nested DSL matchers
Apr 02, 2012
David Chelimsky Changelog for #128
[ci skip]
David Chelimsky 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.
Apr 03, 2012
David Chelimsky bump to 2.9.1 f31ae96
David Chelimsky fix changelog 2cfed80
Apr 04, 2012
David Chelimsky need relish in the Gemfile to push relish docs 6fe2bca
David Chelimsky add doc files to .yardopts
[ci skip]
Apr 08, 2012
Jeremy Wadsack Added start_with and end_with matchers for String 77a9ecc
Jeremy Wadsack Added start_with and end_with support for Array 9b9946c
Jeremy Wadsack Handle case when expected can't be indexed ab1d055
Jeremy Wadsack Rdoc for new matchers d5fdf35
Jeremy Wadsack Fix up whitespace 5f367d9
David Chelimsky Merge pull request #135 from jeremywadsack/start_with_end_with
Add matchers start_with end_with
Apr 09, 2012
Myron Marston Add cukes for yield matchers. 24335ee
David Chelimsky 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
David Chelimsky add start_with and end_with matchers to README [ci skip] 35d98aa
Apr 10, 2012
Myron Marston 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.
Myron Marston Refactor yield matchers a bit.
This allows the YieldProbe to take care of defining the probe block, and simplifies the #matches? methods.
Myron Marston Raise an error if a single-yield matcher is used with a multi-yield m…

Only the yield_successive_args matcher is designed for the multi-yield case.
Apr 11, 2012
Myron Marston Update the yield cukes with a few more/better examples. d020cfe
Apr 17, 2012
Jeremy Wadsack Added more helpful message when actual has #[] but does not support #…

Pull request #135
David Chelimsky align usage of expect/to 3591cd2
David Chelimsky can't use 1.9 hash syntax in specs (still support 1.8) - #135 5bdf4b8
Apr 18, 2012
Myron Marston Merge pull request #129 from rspec/yield_matchers
Yield matchers
Myron Marston Update changelog.
[ci skip]
Apr 19, 2012
David Chelimsky match_unless_raises accepts multiple args
- in support of fix for rspec/rspec-rails#530
John Firebaugh 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.
Apr 21, 2012
David Chelimsky Merge pull request #140 from jfirebaugh/rubinius
Do not require exception messages to exactly match MRI
David Chelimsky Fix potential false-positive so that it will fail correctly if there …
…is a regression.

- See #140.
David Chelimsky Changlog for #140 780d4c2
David Chelimsky eliminate 'not initialized' warning on @matcher_execution_context 7c76204
David Chelimsky ci: run against rbx 1fdaedb
David Chelimsky Fix Changelog formatting [ci skip] 20c7a3c
David Chelimsky Changelog [ci skip] f93ce4c
Apr 22, 2012
David Chelimsky shorten file extension f315020
David Chelimsky align config files across rspec projects fe40efd
David Chelimsky silence more warnings 5d8a233
David Chelimsky dev: align Gemfiles across rspec projects 15d96b8
Apr 30, 2012
David Chelimsky update yard to 0.8 97b5e0c
May 03, 2012
David Chelimsky update changelog for 2.10 release 77e1a09
David Chelimsky bump to 2.10.0 2e348ff
May 08, 2012
Myron Marston 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.
Myron Marston Don't expose #target as a public API.
Also, fix the spelling of the class while I'm at it.
Myron Marston Add configuration API for choosing an expectation syntax.
:should, :expect or both can be chosen.
Myron Marston Don't redefine should or expect when re-configured. ad2a757
May 09, 2012
Myron Marston 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.
Myron Marston Prevent operator matchers from new expect syntax. 6de81c7
May 10, 2012
Myron Marston We can't count on hash ordering. use an array of tuples instead.

Closes #144.
May 11, 2012
Myron Marston Cleanup code a bit.
- Remove bang from @justinko rightly pointed out, there's no corresponding bangless method so it didn't really follow convention here.
- Use an early guarded return.
Myron Marston Add yard docs for new modules.
[ci skip]
Myron Marston 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.
May 13, 2012
David Chelimsky 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.
May 16, 2012
Su Zhang Fix confusing error message in `be_within`
This is a patch for the following issue:


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 :<=
Justin Ko Merge pull request #145 from zhangsu/master
Fix confusing error message in `be_within`
May 17, 2012
Justin Ko Clearer error message for previous commit. d55d9a8
Justin Ko Make "validation" methods for the be_within matcher class private. 1cac6bc
Justin Ko changelog 605a520
May 21, 2012
David Chelimsky dev: update Guardfile to run everything when matchers change c450e3d
David Chelimsky 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.
David Chelimsky minor refactoring: use implicit return 123169e
David Chelimsky dev: --backtrace 4c4c8dc
David Chelimsky refactor built-in matchers
Removed default initialize and matches? from the BaseMatcher and added
explicit initialization where needed.
David Chelimsky Fix some cukes broken by the previous matcher refactoring (messages c…
Myron Marston Merge pull request #119 from rspec/expect_syntax
Add support for `expect(value)` syntax.
Myron Marston Update changelog. f9574db
Myron Marston More changelog updates. 9793323
May 25, 2012
Bryan Helmkamp Add Code Climate badge 99fb8ce
David Chelimsky Merge pull request #146 from brynary/codeclimate-badge
Add Code Climate badge
Jun 04, 2012
Myron Marston Add more docs on syntax configuration.
Closes #149.
Jun 06, 2012
Justin Ko Use `eq` instead of `==` for built-in matcher failure message. 43526ec
Jun 13, 2012
David Chelimsky put the rdoc for should, should_not, and expect where yard can pick i…
…t up
Jun 14, 2012
Myron Marston Add `should` and `should_not` to BasicObject on 1.9.
For #114.
Myron Marston 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.
Myron Marston Update changelog.
[ci skip]
Jun 19, 2012
David Chelimsky refactor matchers to use BaseMatcher's initialize and matches? methods 4024344
Jun 23, 2012
David Chelimsky 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)
Jun 24, 2012
David Chelimsky ensure the eq matcher sends :== to actual (not expected) a3e2839
Jul 07, 2012
David Chelimsky add travis badge to README adaaa9b
David Chelimsky space, the final frontier b394f47
David Chelimsky bump to 2.11.0 45161a7
David Chelimsky improve automation for publishing to 705ddc5
Jul 08, 2012
David Chelimsky 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
David Chelimsky changelog for 2.11.1 release c6da0f6
David Chelimsky loosen time constraint for be_within example 79febad
Jul 10, 2012
David Chelimsky enhance rdoc for expect syntax ebd8a4c
David Chelimsky tweak README (expect syntax) d5417f9
Jul 12, 2012
Myron Marston Remove the hacky search for should_not in backtrace.
It wasn't working for the `expect { .. }.to` syntax, anyway.
Myron Marston 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.
Jul 17, 2012
Alex Coplan add support for coloured diffs dbe5aa3
Alex Coplan fixed coloring, added tests for colored diff 54b9e98
Alex Coplan tests now stub color config, removed setter in config 505db9f
Alex Coplan no magic nums, yellow->green for insertions 477fac1
Alex Coplan fixed chr grabbing for older rb implementations 83cdba4
Myron Marston Merge pull request #157 from alexcoplan/color_diffs
Colored Diffs
Myron Marston Update changelog. 067f13d
Jul 18, 2012
David Chelimsky move post-2.11.1 enhancements in changelog 024002c
Jul 24, 2012
Gabriel Gilder #159: Revise should(_not) to work with MacRuby 9c9619b
Jul 25, 2012
Myron Marston Merge pull request #160 from ggilder/master
#159: Revise should(_not) to work with MacRuby
Myron Marston Add change log entry for #160. 147f710
Andy Lindeman 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.
Myron Marston Cherry-pick 2.11.2 release stuff from 2-11-maint branch. c897a47
Jul 26, 2012
Myron Marston Ensure #== is defined on build in matchers so that they can be composed.
For example:

expect {
}.to change{user.last_emailed_at}.from(nil).to be_within(1.second).of(

Closes #161.
Aug 25, 2012
Alex Coplan use same color config method as core 94fce05
Alex Coplan improve diff coloring code 248004e
Alex Coplan revert to using static color methods 7cdd88b
Myron Marston Merge pull request #169 from alexcoplan/better_diff_coloring
Better diff coloring
Myron Marston 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.
Myron Marston 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
Myron Marston 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.
Myron Marston 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.
Sep 04, 2012
Myron Marston Fix and deprecate `expect { }.should` syntax.
Fixes #170.
Myron Marston Add missing changelog entry I forgot to add.
This was fixed in d427bac.
Myron Marston Add 2.11.3 release info. cf6cf5d
Sep 05, 2012
Myron Marston Fix full changelog URL. d5e6e36
Sep 08, 2012
David Chelimsky run should_clean gem (it "does ... v it "should ...) 3c0e7ea
Sep 09, 2012
Myron Marston Revert "Revert recent build change -- it's not working on Travis CI."
This reverts commit aa4530d.

I'm going to try the modified travis build in a branch to see how it
Myron Marston Debugging output for travis. 4b6a16e
Myron Marston Attempt to fix find_path_to_rspec_exe. 8cf506d
Myron Marston Try fixing travis build once more. c6b3530