[ANN] RDL 1.0.0 release - contracts for Ruby

I'm pleased to announce the release of RDL, a lightweight system for adding
contracts to Ruby. Comments, questions, suggestions, and complaints are all
welcome! Email me or post on the forum.

Jeff

### Coordinates

* code/docs: https://github.com/plum-umd/rdl
* gem: https://rubygems.org/gems/rdl
* install: gem install rdl
* forum: https://groups.google.com/d/forum/rdl-users

### What is RDL?

A contract decorates a method with assertions about the method inputs (a
precondition) and outputs (a postcondition). For example, ignoring complex
numbers, we can write:

require 'rdl'

pre { |x| x > 0 } # input x must be positive
post { |r,x| r > 0 } # return value r must be positive
def sqrt(x)
  # return the square root of x
end

RDL intercepts calls to contracted methods and checks their preconditions
when the method is called, and their postconditions when the method returns.

RDL also has extensive support for contracts that are types. For example:

require 'rdl'

type '(Fixnum, Fixnum) -> String'
def m(x,y) ... end

This will check that m's x and y arguments are Fixnums and its return value
is a String. (Note: these are contracts, so the checking only occurs at
method entry and exit; there is no static analysis here that reasons about
the method body.)

### License

BSD 3-Clause