- Add support for using named (keyword) arguments in place of positional arguments in stubs. [#47](https://github.com/icy-arctic-fox/spectator/issues/47)
- Defining a custom matcher outside of the `Spectator` namespace no longer produces a compilation error. [#46](https://github.com/icy-arctic-fox/spectator/issues/46)
-`-e` (`--example`) CLI option performs a partial match instead of exact match. [#71](https://gitlab.com/arctic-fox/spectator/-/issues/71) [#45](https://github.com/icy-arctic-fox/spectator/issues/45)
- Overhauled mock and double system. [#63](https://gitlab.com/arctic-fox/spectator/-/issues/63)
- Testing if `exit` is called no longer is done with stubs and catching the `Spectator::SystemExit` exception should be caught. [#29](https://github.com/icy-arctic-fox/spectator/issues/29)
- Support multiple block arguments in `sample` block (`Hash#each`). [#41](https://github.com/icy-arctic-fox/spectator/issues/41#issuecomment-1010192486)
- Fix `Spectator.configure` block calls to `filter_run_excluding` and `filter_run_including`. [#61](https://gitlab.com/arctic-fox/spectator/-/issues/61)
- Fix shard version constant creation when lib is in a directory with spaces in the path. [#33](https://gitlab.com/arctic-fox/spectator/-/merge_requests/33) Thanks @toddsundsted !
- Examples without a test block are marked as pending. [#37](https://gitlab.com/arctic-fox/spectator/-/issues/37)
- Examples can be skipped during execution by using `skip` or `pending` in the example block. [#17](https://gitlab.com/arctic-fox/spectator/-/issues/17)
- Examples with failures or skipped during execution will report the location of that result. [#57](https://gitlab.com/arctic-fox/spectator/-/issues/57)
- Add HTML formatter. Operates the same as the JUnit formatter. Specify `--html_output=DIR` to use. [#22](https://gitlab.com/arctic-fox/spectator/-/issues/22) [#3](https://github.com/icy-arctic-fox/spectator/issues/3)
-`pending` blocks will behave differently in v0.11.0. They will mimic RSpec in that they _compile and run_ the block expecting it to fail. Use a `skip` (or `xit`) block instead to prevent compiling the example.
- Allow types stored in variables or returned by methods in `be_a` (and variants), not just type literals. [#25](https://github.com/icy-arctic-fox/spectator/issues/25)
- Allow filtering examples by using any line in the example block. [#19](https://github.com/icy-arctic-fox/spectator/issues/19) Thanks @matthewmcgarvey !
- Fix misaligned line numbers when referencing examples and groups.
## [0.9.30] - 2020-12-23
### Fixed
- Fix issue caused by additions from 0.9.29.
### Changed
- Improve the `contain`, `contain_elements`, `have`, and `have_elements` to show missing items in output.
## [0.9.29] - 2020-12-23
### Added
- Add variants `contain_elements` and `have_elements`, which behave like `contain` and `have` matchers except that they take an array (or any enumerable type) instead of a parameter list or splat.
## [0.9.28] - 2020-11-07
### Added
- Add `return_type` option to method stubs.
## [0.9.27] - 2020-10-01
### Added
- Add syntax for stubbing operator-style methods, such as `[]`.
## [0.9.26] - 2020-09-27
### Fixed
- Fix issue with yielding in stubbed mocks.
## [0.9.25] - 2020-09-26
### Fixed
- Fix issue with splatting values for failed match data. This prevented the use of "description" and "failure_message" in some matches like `respond_to`.
## [0.9.24] - 2020-09-17
### Changed
- Allow some forms of string interpolation in group and example descriptions.
## [0.9.23] - 2020-08-30
### Fixed
- Allow the use of `object_id` and other possibly conflicting method names via `let`. [#53](https://gitlab.com/arctic-fox/spectator/-/issues/53)
## [0.9.22] - 2020-08-11
### Changed
- Handle splat in macro for matcher DSL. [#8](https://github.com/icy-arctic-fox/spectator/issues/8)
## [0.9.21] - 2020-07-27
### Added
- Display random seed when using `-r` or `--seed` options. [#7](https://github.com/icy-arctic-fox/spectator/issues/7)
## [0.9.20] - 2020-05-29
### Fixed
- Fix bug when using multiple short-hand block expects in one test.
## [0.9.19] - 2020-05-28
### Fixed
- Fix issue with `match_array` and `contain_exactly` matchers not working with immutable collections.
## [0.9.18] - 2020-04-26
### Fixed
- Fix `describe_class.new` when using a generic type.
## [0.9.17] - 2020-04-23
### Fixed
- Fix issue when using deferred syntax with `receive` matcher. [#48](https://gitlab.com/arctic-fox/spectator/-/issues/48)
## [0.9.16] - 2020-04-06
### Fixed
- Silence warnings from Crystal 0.34
## [0.9.15] - 2020-04-03
### Fixed
- Fix issues with `match_array().in_any_order` and `contain_exactly().in_any_order`. [#47](https://gitlab.com/arctic-fox/spectator/-/issues/47)
### Changed
- Improve usability when actual value does not respond to methods needed to verify it.
For instance, `expect(nil).to contain_exactly(:foo)` would not compile.
This has been changed so that it compiles and raises an error at runtime with a useful message.
## [0.9.14] - 2020-04-01
### Fixed
- Fix using nil with `be` matcher. [#45](https://gitlab.com/arctic-fox/spectator/-/issues/45)
## [0.9.13] - 2020-03-28
### Fixed
- Fix arguments not found in default stubs for mocks. [#44](https://gitlab.com/arctic-fox/spectator/-/issues/44)
## [0.9.12] - 2020-03-20
### Fixed
- Fix issue when mocking modules. Thanks @watzon !
## [0.9.11] - 2020-03-04
### Fixed
- Fix issue when describing constants. [#40](https://gitlab.com/arctic-fox/spectator/-/issues/40) [#41](https://gitlab.com/arctic-fox/spectator/-/issues/41)
## [0.9.10] - 2020-03-03
### Changed
- Smarter behavior when omitting the block argument to the `around_each` hook.
## [0.9.9] - 2020-02-22
### Fixed
- Fix implicit subject when used with a module. [#6](https://github.com/icy-arctic-fox/spectator/issues/6)
- Add "any order" modifier for `contains_exactly` and `match_array`.
- Add `change` matcher and its variations.
- Add `all` matcher.
- Variation of `let` syntax that takes an assignment.
### Changed
- Rewrote matcher class structure.
- Improved tracking of actual and expected values and their labels.
- Matcher values are only produced when the match fails, instead of always.
### Fixed
- Fix malformed code generated by macros not working in latest Crystal version.
## [0.7.2] - 2019-06-01
### Fixed
- Reference types used in `subject` and `let` were recreated between hooks and the test block. [#11](https://gitlab.com/arctic-fox/spectator/-/issues/11)
## [0.7.1] - 2019-05-21
### Fixed
- Fixed an issue where named subjects could crash the compiler.
## [0.7.0] - 2019-05-16
### Added
- Added `be_between` matcher.
### Changed
- The `be_within` matcher behaves like RSpec's.
## [0.6.0] - 2019-05-08
### Changed
- Introduced reference matcher and changed `be` matcher to use it instead of the case matcher.
### Removed
- Removed regex matcher, the case matcher is used instead.
## [0.5.3] - 2019-05-08
### Fixed
- Updated the `expect_raises` matcher to accept an optional second argument to mimic `raise_error`. [#4](https://gitlab.com/arctic-fox/spectator/-/issues/4)
## [0.5.2] - 2019-04-22
### Fixed
- Fix `after_all` hooks not running with fail-fast enabled. [#2](https://gitlab.com/arctic-fox/spectator/-/issues/2)
## [0.5.1] - 2019-04-18
### Added
- Note in README regarding repository mirror.
### Fixed
- Change protection on expectation partial to work with Crystal 0.28 and "should" syntax.
- Change references to `Time.now` to `Time.utc` in docs.