= Assertive Expressive
* http://proutils.rubyforge.org/ae/
== DESCRIPTION
Assertive Expressive (AE) is an assertions framework
intended for reuse by any TDD, BDD or similar system.
== FEATURES/ISSUES
* Clear, simple and concise syntax.
* Uses higher-order functions and fluid notation.
* Reusable core extensions ease assertion construction.
* Core extensions are standardized around Ruby Facets.
* Facets is an optional dependency; extensions are built-in.
* Easily extensible allowing for alternate notations.
* Eats it's own dog food.
== RELEASE NOTES
Please see HISTORY file.
== SYNOPSIS
AE defines the method +assert+. It's is compatible with the method
as defined by Test::Unit and minitest, which verifies truth of a
single argument (and can accept an optional failure message).
assert(true)
In addition AE's +assert+ method has been extended to accept a block,
the result of which is likewise verified.
assert{true}
But the real power the AE's +assert+ method lies in it's use
without argument or block. In that case it returns an instance of
+Assertor+. An +Assertor+ is an Assertions Functor, or
Higher-Order Function. It is a function that operates on
another function. With it, we can make assertions like so:
x.assert == y
a.assert.include? e
StandardError.assert.raised? do
...
end
And so forth. Any method can be used in conjunction with +assert+
to make an assertion. Eg.
class String
def daffy?
/daffy/i =~ self
end
end
"Daffy Duck".assert.daffy?
Please have a look at the QEDocs and RDocs to learn more.
== HOW TO INSTALL
=== Gem Installs
AE releases it's gems via Gemcutter. If you don't have Gemcutter
installed do:
$ gem install gemcutter
$ gem tumble
Then you can install AE with:
$ gem install ae
=== Site Installs
Local installation requires Setup.rb.
$ gem install setup
Then download the tarball package from GitHub (under pack/ directory)
and do:
$ tar -xvzf ae-1.0.0.tgz
$ cd ae-1.0.0.tgz
$ sudo setup.rb all
Windows users use 'ruby setup.rb all'.
== COPYRIGHTS & LICENSE
Copyright (c) 2008 Thomas Sawyer
Unless otherwise provided for by the originating author, this
program is distributed under the terms of the MIT license.
See LICENSE file for details.