Skip to content
This repository
  • 147 commits
  • 88 files changed
  • 24 comments
  • 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]
564487b
David Chelimsky Require kernel extensions (should) from block_aliases in case it is
loaded first.
e290fe3
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.
2c23be3
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
e12a2d9
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
6fe6c9f
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.
72c5dae
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.
abba439
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 ==.
3c6a81e
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.
0e79594
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.
66a2f01
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.
b94da8d
Apr 01, 2012
Justin Ko Merge pull request #128 from mirasrael/master
Fix using execution context methods in nested DSL matchers
5ffc547
Apr 02, 2012
David Chelimsky Changelog for #128
[ci skip]
ca5cc09
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.
a9bf7ab
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]
40cbc30
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
05d9853
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
2e0cdbc
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.
780655c
Myron Marston Refactor yield matchers a bit.
This allows the YieldProbe to take care of defining the probe block, and simplifies the #matches? methods.
7a0e4bb
Myron Marston 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
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 #…
…[0,3]

Pull request #135
5908107
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
e610e40
Myron Marston Update changelog.
[ci skip]
429c672
Apr 19, 2012
David Chelimsky match_unless_raises accepts multiple args
- in support of fix for rspec/rspec-rails#530
a5a58aa
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.
9fa523e
Apr 21, 2012
David Chelimsky Merge pull request #140 from jfirebaugh/rubinius
Do not require exception messages to exactly match MRI
b98f0ba
David Chelimsky Fix potential false-positive so that it will fail correctly if there …
…is a regression.

- See #140.
694cbf1
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.
d279c3b
Myron Marston Don't expose #target as a public API.
Also, fix the spelling of the class while I'm at it.
0d7ce9c
Myron Marston Add configuration API for choosing an expectation syntax.
:should, :expect or both can be chosen.
d9ab1a3
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.
309c4f0
Myron Marston Prevent operator matchers from new expect syntax. 6de81c7
May 10, 2012
Myron Marston We can't count on hash ordering.
...so use an array of tuples instead.

Closes #144.
3cf9110
May 11, 2012
Myron Marston 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
Myron Marston Add yard docs for new modules.
[ci skip]
f1b8aa2
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.
f00de57
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.
5626043
May 16, 2012
Su Zhang 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
Justin Ko Merge pull request #145 from zhangsu/master
Fix confusing error message in `be_within`
d186bf8
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.
38b247a
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.
a465f14
David Chelimsky Fix some cukes broken by the previous matcher refactoring (messages c…
…hanged)
b396938
Myron Marston Merge pull request #119 from rspec/expect_syntax
Add support for `expect(value)` syntax.
71a2c8d
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
089aca4
Jun 04, 2012
Myron Marston Add more docs on syntax configuration.
Closes #149.
5dd161e
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
7847016
Jun 14, 2012
Myron Marston Add `should` and `should_not` to BasicObject on 1.9.
For #114.
4325717
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.
a954586
Myron Marston Update changelog.
[ci skip]
6a8c932
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)
49dc451
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 relishapp.com 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
1d2cc1f
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.
9814ab2
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.
2c2fdb6
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
3b4f60c
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
d51bf72
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.
3cacdde
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 {
  user.emailed!
}.to change{user.last_emailed_at}.from(nil).to be_within(1.second).of(Time.zone.now)

Closes #161.
d427bac
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
f4d4cd0
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.
b0d5007
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
a8d9014
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.
cafef45
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.
aa4530d
Sep 04, 2012
Myron Marston Fix and deprecate `expect { }.should` syntax.
Fixes #170.
b89b8c5
Myron Marston Add missing changelog entry I forgot to add.
This was fixed in d427bac.
016aece
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
works.
5763f91
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