%# #% %# You can read this document in its full glory by #% %# opening ./doc/index.html in your favorite Web browser. #% %# #%

%#—————————————————————————- %| project_summary %#—————————————————————————-

Dfect is an assertion testing library for Ruby that emphasizes a simple
assertion vocabulary, instant debuggability of failures, and flexibility in
composing tests.

%#—————————————————————————- %| paragraph “Resources” %#—————————————————————————-

* <%= xref "History", "What's new?" %> ---
  release notes and project history.

* [Issue tracker](<%= issue_tracker_url %>) ---
  report bugs, request features, or ask for help.

* [Source code](<%= source_code_url %>) ---
  browse online or obtain using <%= source_code_tool %>

* [API reference](<%= api_reference_url %>) ---
  documentation for source code.

* [Project home](<%= Dfect::WEBSITE %>) ---
  the official project home page.

%#—————————————————————————- %| section “Features” %#—————————————————————————-

Dfect is exciting because:

* There are only 5 methods to remember:  D F E C T.

* It lets you debug assertion failures interactively.

* It keeps a detailed report of assertion failures.

* It lets you nest tests and execution hooks.

* Its core consists of a mere <%= `sloccount lib/dfect.rb`[/^\d+/] %> lines
  of code.

%#—————————————————————————- %| section “Etymology” %#—————————————————————————-

Dfect is named after the D F E C T methods it provides.

The name is also play on the word "defect", whereby the intentional
misspelling of "defect" as "dfect" is a defect in itself! ;-)

This wordplay is similar to [Mnesia][1]'s play on the word "amnesia",
whereby the intentional omission of the letter "A" indicates
forgetfulness---the key characteristic of having amnesia.  Clever!

[1]: http://www.erlang.org/doc/apps/mnesia/index.html

%#—————————————————————————- %| section “License” %#—————————————————————————-

%# See the file named "LICENSE" for details.
%< "LICENSE"

%#—————————————————————————- %| section “Credits” %#—————————————————————————-

Dfect is made possible by <%= xref "History",
"contributions" %> from users like you:

%# See the file named "CREDITS" for details.
%< "CREDITS"

%#—————————————————————————- %| section “Related works” %#—————————————————————————-

* [assert{ 2.0 }](http://assert2.rubyforge.org)
* [Bacon](http://chneukirchen.org/repos/bacon/README)
* [Context](http://github.com/jeremymcanally/context)
* [minitest](http://blog.zenspider.com/minitest)
* [RSpec](http://rspec.info)
* [Shoulda](http://thoughtbot.com/projects/shoulda)
* [test-spec](http://test-spec.rubyforge.org/test-spec)
* [Test::Unit](http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/)
* [Testy](http://github.com/ahoward/testy/tree/master)
* [Verify](http://www.ruby-forum.com/topic/183354)