= Anise 

   http://anise.rubyforge.org



== INTRODUCTION 

Anise is an Annotations Systems for the Ruby programming language. Unlike most other annotations systems it is not a comment-based system, or a "macro" system that sits over-and-above the rest of the code. Rather, Anise is a dynamic annotations system operating at runtime. 

Anise is a spin off of the old Facets annotations.rb library. It includes the Annotations functionality, and adds a mixin, Annotator, that makes it easy to add new annotations on the fly. 


== RELEASE NOTES 

This version adds a callback method called #annotation_added. It is very basic and patterned after Ruby's other built-in callback methods. 


### 0.4.0 // 2009-05-27 

1 Major Enhancement 

  * Added annotation_added callback.



== INSTALLATION 

To install with RubyGems simply open a console and type: 

   gem install anise

To manually install you will need Setup.rb (see http://setup.rubyforge.org). Then download the tarball package and do: 

   $ tar -xvzf anise-0.2.0.tgz
   $ cd anise-0.2.0
   $ sudo setup.rb all



== USAGE 

The following example briefly demonstrates all three major features. 

   require 'anise'

   class X

     include Anise

     # Annotations

     ann :grape, :class=>String

     # Annotators

     annotator :doc

     doc "This is an entry."

     def bar
       # ...
     end

     # Annotated Attributes

     attr :baz, Integer, :max => 10

   end

Looking at the resulting annotations: 

   X.ann(:foo)  #=> {:class=>String}
   X.ann(:bar)  #=> {:doc=>"This is an entry."}
   X.ann(:baz)  #=> {:class=>Integer, :max=>10}

The Anise library can be used as a whole, per the example above, or these features can be used separately. For more details see the RDoc API documentation. 


== TESTING 

Turn is the recommended way to run Anise's test suite (http://turn.rubyforge.org). 

  $ turn test/test_*

But a script +test/suite.rb+ script is include so you can easily run the unit tests with the testrb command: 

  $ testrb -Ilib test/suite.rb

or with Ruby alone: 

  $ ruby -Ilib -rtest/unit test/suite.rb

Anise also includes Quarry specifications. These can be run via: 

  $ quarry -v spec/

See Quarry project (http://quarry.rubyforge.org) for more informaiton. 


== LICENSE 

Copyright (c) 2008 TigerOps 

This program is distributed under the terms of the LGPL License. 

Please see COPYING file for details.