= RSpec Changelog

== Version 0.6.2
This release fixes a couple of regressions with the rake task that were introduced in the previous version (0.6.1)

* Fixed [#5518] ruby -w: warnings in 0.6.1
* Applied [#5525] fix rake task path to spec tool for gem-installed rspec (patch from Riley Lynch)
* Fixed a teensey regression with the rake task - introduced in 0.6.1. The spec command is now quoted so it works on windows.

== Version 0.6.1
This is the "fix the most annoying bugs release" of RSpec. There are 9 bugfixes this time.
Things that may break backwards compatibility:
1) Spec::Rake::SpecTask no longer has the options attribute. Use ruby_opts, spec_opts and rcov_opts instead.

* Fixed [#4891] RCOV task failing on windows
* Fixed [#4896] Shouldn't modify user's $LOAD_PATH (Tip from Gavin Sinclair)
* Fixed [#5369] ruby -w: warnings in RSpec 0.5.16 (Tip from Suraj Kurapati)
* Applied [#5141] SpecMatcher doesn't escape strings before matching (Patch from Nikolai Weibull).
* Fixed [#5224] Move 'require diff-lcs' from test_helper.rb to diff_test.rb (Tip from Chris Roos)
* Applied [#5449] Rake stats for specs (Patch from Nick Sieger)
* Applied [#5468, #5058] Fix spec runner to correctly run controller specs (Patch from Daniel Siemssen)
* Applied fixes to rails_spec_runner to improve its ability to run several times. (Patch from Daniel Siemssen)
* Changed RCov::VerifyTask to fail if the coverage is above the threshold. This is to ensure it gets bumped when coverage improves.

== Version 0.6.0
This release makes an official commitment to underscore_syntax (with no more support for dot.syntax)

* Fixed bug (5292) that caused mock argument matching to fail
* Converted ALL tests to use underscore syntax
* Fixed all remaining problems with underscores revealed by converting all the tests to underscores
* Enhanced sugar to support combinations of methods (i.e. once.and_return) 
* Simplified helper structure taking advantage of dot/underscore combos (i.e. should.be.an_instance_of, which can be expressed as should_be_an_instance_of)
* Added support for at_most in mocks
* Added support for should_not_receive(:msg) (will be removing should_receive(:msg).never some time soon)
* Added support for should_have_exactly(5).items_in_collection

== Version 0.5.16
This release improves Rails support and test2spec translation.

* Fixed underscore problems that occurred when RSpec was used in Rails
* Simplified the Rails support by packaging it as a plugin instead of a generator gem.
* Fixed [#5063] 'rspec_on_rails' require line in spec_helper.rb
* Added pre_commit rake task to reduce risk of regressions. Useful for rspec developers and patchers.
* Added failure_message to RSpec Rake task
* test2spec now defines converted helper methods outside of the setup block (bug #5057).

== Version 0.5.15
This release removes a prematurely added feature that shouldn't have been added.

* Removed support for differences that was added in 0.5.14. The functionality is not aligned with RSpec's vision.

== Version 0.5.14
This release introduces better ways to extend specs, improves some of the core API and
a experimental support for faster rails specs.

* Added proc methods for specifying differences (increments and decrements). See difference_test.rb
* Methods can now be defined alongside specs. This obsoletes the need for defining methods in setup. (Patch #5002 from Brian Takita)
* Sugar (underscores) now works correctly with should_be_a_kind_of and should_be_an_instance_of
* Added support for include and inherit in contexts. (Patch #4971 from Brian Takita)
* Added rails_spec and rails_spec_runner for faster specs on rails (still buggy - help needed)
* Fixed bug that caused should_render to break if given a :symbol (in Rails)
* Added support for comparing exception message in should_raise and should_not_raise

== Version 0.5.13
This release fixes some subtle bugs in the mock API.

* Use fully-qualified class name of Exceptions in failure message. Easier to debug that way.
* Fixed a bug that caused mocks to yield a one-element array (rather than the element) when one yield arg specified.
* Mocks not raise AmbiguousReturnError if an explicit return is used at the same time as an expectation block.
* Blocks passed to yielding mocks can now raise without causing mock verification to fail.

== Version 0.5.12
This release adds diff support for failure messages, a HTML formatter plus some other
minor enhancements.

* Added HTML formatter.
* Added fail_on_error option to spectask.
* Added support for diffing, using the diff-lcs Rubygem (#2648).
* Remove RSpec on Rails files from backtrace (#4694).
* All of RSpec's own tests run successfully after translation with test2spec.
* Added --verbose mode for test2spec - useful for debugging when classes fail to translate.
* Output of various formatters is now flushed - to get more continuous output.

== Version 0.5.11
This release makes test2spec usable with Rails (with some manual steps). 
See http://rspec.rubyforge.org/tools/rails.html for more details

* test2spec now correctly translates bodies of helper methods (non- test_*, setup and teardown ones).
* Added more documentation about how to get test2spec to work with Rails.

== Version 0.5.10
This version features a second rewrite of test2spec - hopefully better than the previous one.

* Improved test2spec's internals. It now transforms the syntax tree before writing out the code.

== Version 0.5.9
This release improves test2spec by allowing more control over the output

* Added --template option to test2spec, which allows for custom output driven by ERB
* Added --quiet option to test2spec
* Removed unnecessary dependency on RubyToC

== Version 0.5.8
This release features a new Test::Unit to RSpec translation tool.
Also note that the RubyGem of the previous release (0.5.7) was corrupt.
We're close to being able to translate all of RSpec's own Test::Unit
tests and have them run successfully!

* Updated test2spec documentation.
* Replaced old test2rspec with a new test2spec, which is based on ParseTree and RubyInline.

== Version 0.5.7
This release changes examples and documentation to recommend underscores rather than dots,
and addresses some bugfixes and changes to the spec commandline.

* spec DIR now works correctly, recursing down and slurping all *.rb files
* All documentation and examples are now using '_' instead of '.'
* Custom external formatters can now be specified via --require and --format.

== Version 0.5.6
This release fixes a bug in the Rails controller generator

* The controller generator did not write correct source code (missing 'do'). Fixed.

== Version 0.5.5
This release adds initial support for Ruby on Rails in the rspec_generator gem.

* [Rails] Reorganised Lachie's original code to be a generator packaged as a gem rather than a plugin.
* [Rails] Imported code from http://lachie.info/svn/projects/rails_plugins/rspec_on_rails (Written by Lachie Cox)
* Remove stack trace lines from TextMate's Ruby bundle
* Better error message from spectask when no spec files are found.

== Version 0.5.4
The "the tutorial is ahead of the gem" release

* Support for running a single spec with --spec
* Exitcode is now 1 unless all specs pass, in which case it's 0.
* -v, --version now both mean the same thing
* For what was verbose output (-v), use --format specdoc or -f s
* --format rdoc always runs in dry-run mode
* Removed --doc and added --format and --dry-run
* Refactored towards more pluggable formatters
* Use webgen's execute tag when generating website (more accurate)
* Fixed incorrect quoting of spec_opts in SpecTask
* Added patch to enable underscored shoulds like 1.should_equal(1) - patch from Rich Kilmer
* Removed most inherited instance method from Mock, making more methods mockable.
* Made the RCovVerify task part of the standard toolset.
* Documented Rake task and how to use it with Rcov
* Implemented <ruby></ruby> tags for website (hooking into ERB, RedCloth and syntax)
* RSpec Rake task now takes spec_opts and out params so it can be used for doc generation
* RCov integration for RSpec Rake task (#4058)
* Group all results instead of printing them several times (#4057)
* Mocks can now yield
* Various improvements to error reporting (including #4191)
* backtrace excludes rspec code - use -b to include it
* split examples into examples (passing) and failing_examples

== Version 0.5.3
The "hurry up, CoR is in two days" release.

* Don't run rcov by default
* Make separate task for running tests with RCov
* Added Rake task to fail build if coverage drops below a certain threshold
* Even more failure output cleanup (simplification)
* Added duck_type constraint for mocks

== Version 0.5.2
This release has minor improvements to the commandline and fixes some gem warnings

* Readded README to avoid RDoc warnings
* Added --version switch to commandline
* More changes to the mock API

== Version 0.5.1
This release is the first release of RSpec with a new website. It will look better soon.

* Added initial documentation for API
* Added website based on webgen
* Modified test task to use rcov
* Deleted unused code (thanks, rcov!)
* Various changes to the mock API,
* Various improvements to failure reporting

== Version 0.5.0
This release introduces a new API and obsolesces previous versions.

* Moved source code to separate subfolders
* Added new DSL runner based on instance_exec
* Added spike for testdox/rdoc generation
* merge Astels' and Chelimsky's work on ShouldHelper
* this would be 0.5.0 if I updated the documentation
* it breaks all of your existing specifications.  We're not sorry.

== Version 0.3.2

The "srbaker is an idiot" release.

* also forgot to update the path to the actual Subversion repository
* this should be it

== Version 0.3.1

This is just 0.3.0, but with the TUTORIAL added to the documentation list.

* forgot to include TUTORIAL in the documentation

== Version 0.3.0

It's been a while since last release, lots of new stuff is available.  For instance:

* improvements to the runners
* addition of should_raise expectation (thanks to Brian Takita)
* some documentation improvements
* RSpec usable as a DSL

== Version 0.2.0

This release provides a tutorial for new users wishing to get started with
RSpec, and many improvements.

* improved reporting in the spec runner output
* update the examples to the new mock api
* added TUTORIAL, a getting started document for new users of RSpec

== Version 0.1.7

This release improves installation and documentation, mock integration and error reporting.

* Comparison errors now print the class name too.
* Mocks now take an optional +options+ parameter to specify behaviour.
* Removed __expects in favour of should_receive
* Added line number reporting in mock error messages for unreceived message expectations.
* Added should_match and should_not_match.
* Added a +mock+ method to Spec::Context which will create mocks that autoverify (no need to call __verify).
* Mocks now require names in the constructor to ensure sensible error messages.
* Made 'spec' executable and updated usage instructions in README accordingly.
* Made more parts of the Spec::Context API private to avoid accidental usage.
* Added more RDoc to Spec::Context.

== Version 0.1.6

More should methods.

* Added should_match and should_not_match.

== Version 0.1.5

Included examples and tests in gem.

== Version 0.1.4

More tests on block based Mock expectations.

== Version 0.1.3

Improved mocking:

* block based Mock expectations.

== Version 0.1.2

This release adds some improvements to the mock API and minor syntax improvements

* Added Mock.should_expect for a more consistent DSL.
* Added MockExpectation.and_returns for a better DSL.
* Made Mock behave as a null object after a call to Mock.ignore_missing
* Internal syntax improvements.
* Improved exception trace by adding exception class name to error message.
* Renamed some tests for better consistency.

== Version 0.1.1

This release adds some shoulds and improves error reporting

* Added should_be_same_as and should_not_be_same_as.
* Improved error reporting for comparison expectations.

== Version 0.1.0

This is the first preview release of RSpec, a Behaviour-Driven Development library for Ruby 

* Added Rake script with tasks for gems, rdoc etc.
* Added an XForge task to make release go easier.
