= 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,2009 Thomas Sawyer
Unless otherwise provided for by the originating author, this
program is distributed under the terms of the LGPL v3 license.
See COPYING file for details.