# QED v1.1.0 released

**URL:** <https://www.ruby-forum.com/t/qed-v1-1-0-released/175014>\
**Category:** Ruby\
**Created:** [September 5, 2009, 9:44pm UTC](https://www.ruby-forum.com/t/qed-v1-1-0-released/175014 "2009-09-05T21:44:52Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [September 5, 2009, 9:44pm UTC](https://www.ruby-forum.com/t/qed-v1-1-0-released/175014/1 "2009-09-05T21:44:52Z")

</div>

= Ruby Q.E.D.

```
  homepage: http://proutils.rubyforge.org/qed

```

mailing list: [http://groups.google.com/group/tigerops-community](http://groups.google.com/group/tigerops-community)  
development: [http://github.com/proutils/qed/tree/master](http://github.com/proutils/qed/tree/master)

== Introduction

Q.E.D. stands for Quality Enhanced Demos. QED is an easy to use quality  
assurance and documentation system for Ruby Developers. QED sits between  
lower-level testing tools like Test Unit and grand requirements  
specifications tools like Cucumber. It is designed to address  
_API-Driven Devleopment_, which is especailly useful when designing  
reusble libraries.

== Features

- Demos can be RDoc, Markdown or any other conforming text format.
- Uses excellent Assertive Expressive library for assertion system.
- Helpers are easily loaded relative to running document.
- Table macro allows large sets of data to be run by the same code.
- Documentation tool provides nice output with jQuery-based TOC.

== Synopsis

=== Assertion Syntax

QED uses AE (Assertive Expressions) libary to provide an elegant means  
of express behaviors. To give a quck overview, you can use code such as:

```
4.assert == 5

```

In this example, because 4 != 5, this expression will raise an Assertion  
exception. QED’s Runner class is thus just a means of running and  
capturing code block containing these assertions.

You can learn more about AE at [http://proutils.rubyforge/ae](http://proutils.rubyforge/ae).

=== Document Structure

QED documents are simply text files --thus a practice of literal  
programming. For example:

```
= Example

Shows that the number 5 does not equal 4.

    5.assert! == 4

But in fact equals 5.

    5.assert == 5

```

As you can see, we used RDoc for this document. Almost any text format  
can be used. The only neccesary distinction is that desciption text be  
align to the left margin and all code be indented. However QED  
recognizes RDoc and Markdown style headers, so any format that supports  
this style (which covers many markup formats in use today) will work a  
bit better. While strictly speaking QED does not need to recognize  
headers, it does improve console output.

Give this design some thought. It should become clear that this approach  
is especially fruitful in that it allows _documentation_ and  
_specification_ to seemlessly merge into a unified _demonstration_.

=== Running Demonstrations

If we were to run the above document through QED in verbatim mode the  
output would be identical (assuming we did not make a typo and the  
assertions passed). If there were errors or failures, we would see  
information detaling each.

To run a document through QED, simply use the +qed+ command.

$ qed -v demo/01\_example.rdoc

The -v option specifies verbatim mode, which outputs the entire  
document.

Notice we placed the QED document in the demo directory, this is the  
concial place that has been designated for them, though you can put them  
elsewhre in your project if you prefer. Also notice the 01\_ in front of  
the name. While this is not necessary, it helps order the documents  
properly with generating QED documentation (QEDocs).

To generate documentation from QED documents, use the +qedoc+ command.

$ qed --output doc/qedoc --title “Example” demo/\*.rdoc

When documenting QED recognizes the format by the file extension and  
treats it accordingly. An extension of .qed is treated the same  
as .rdoc.

Use the –help options on each command to get more inforamtion  
on the use of these commands.

== Requirements

QED depends on the following external libraries:

- AE - Assertions Framework
- ANSI - ANSI Color Codes
- Facets - Core Extensions

These will be automatically installed when installing QED via RubyGems,  
if they are not already installed.

== Copyright and License

Q.E.D.

Copyright (c) 2007,2009 Thomas S.

Unless otherwise permitted by the author, QED is distributed under the  
terms of the GPL version 3 or greater. See COPYING file for details.

This program is free software; you can redistribute it and/or modify it  
under the terms of the GNU General Public License as published by the  
Free Software Foundation; either version 2 of the License, or (at your  
option) any later version.

This program is distributed in the hope that it will be useful, but  
WITHOUT ANY WARRANTY; without even the implied warranty of  
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  
General Public License for more details.

You should have received a copy of the GNU General Public License along  
with this program; if not, write to the Free Software Foundation, Inc.,  
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [September 5, 2009, 10:20pm UTC](https://www.ruby-forum.com/t/qed-v1-1-0-released/175014/2 "2009-09-05T22:20:34Z")

</div>

On Sep 5, 3:41 pm, removed\_email\_address@domain.invalid wrote:

> $ qed --output doc/qedoc --title “Example” demo/\*.rdoc

Should read

$ qedoc --output doc/qedoc --title “Example” demo/\*.rdoc

Trans.
