           SPELL=trans-simple
         VERSION=1.4.0
          SOURCE="transaction-simple-${VERSION}.tar.gz"
   SOURCE_URL[0]=http://rubyforge.org/frs/download.php/17141/${SOURCE}
     SOURCE_HASH=sha512:258fd9e28b09673b1822e319e253eb332d0482627a45a9c41b0560e54cda8986f0230ecee4faceb192a794834cde8e3249e74df57af35f4e84baf74121cb6532
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/transaction-simple-${VERSION}"
        WEB_SITE="http://trans-simple.rubyforge.org/transaction-simple/
rubyforge.org/projects/trans-simple/"
      LICENSE[0]=BSD
         ENTERED=20080114
           SHORT="Transaction::Simple object transactions"
cat << EOF
Transaction::Simple for Ruby Transaction::Simple provides a generic way to add
active transaction support to objects. The transaction methods added by this
module will work with most objects, excluding those that cannot be Marshal-ed
(bindings, procedure objects, IO instances, or singleton objects).  The
transactions supported by Transaction::Simple are not associated with any sort
of data store. They are "live" transactions occurring in memory on the object
itself. This is to allow "test" changes to be made to an object before making
the changes permanent.  Transaction::Simple can handle an "infinite" number of
transaction levels (limited only by memory). If I open two transactions, commit
the second, but abort the first, the object will revert to the original version.
Transaction::Simple supports "named" transactions, so that multiple levels of
transactions can be committed, aborted, or rewound by referring to the
appropriate name of the transaction. Names may be any object except nil.
Transaction groups are also supported. A transaction group is an object wrapper
that manages a group of objects as if they were a single object for the purpose
of transaction management. All transactions for this group of objects should be
performed against the transaction group object, not against individual objects
in the group.
EOF
