Class::Tangram version 1.13
===========================

Class::Tangram serves to provide a base class for deriving Tangram
objects from.

In some ways, it is similar to Class::Contract, but it allows
finer-grained specification of the types of attributes.  This is
particularly useful if you are using Tangram, but consider it an
"alternate approach" to Class::Contract, that supports persistence
without using Data::Dumper/Storable.

If you want to know what this is all about, first go to Sound Object
Logic's web site at http://www.tangram-persistence.org/, and read the
"Guided Tour" of Tangram.

INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

This module requires Set::Object 1.02 or higher.  You may also want to
install Tangram 2.03 or later.

Test::Simple 0.18 and Date::Manip 0.32 is also required to run the
test suite.

UPGRADING FROM 1.12

1.13 is a minor release, to remove a mostly unnecessary dependancy on
Pod::Constants; whilst some of what Pod::Constants achieves is a noble
effort, it has far too much run-time overhead to be practical.

UPGRADING FROM 1.11

The biggest change is that previously, if you wanted to override what
happens when you get or set an attribute, you should have defined
set() and get() functions in your derived class.  Now, you are going
to have to define methods called get_attribute() and/or
set_attribute().  attribute() is a virtual method that calls
get_attribute() or set_attribute() - depending on the number of
arguments given - so don't override that unless you understand the
consequences.

The semantics for specifying an object's fields has changed slightly;
instead of defining $YourClass::schema, you should define
$YourClass::fields, which should contain what
$YourClass::schema->{fields} used to contain.  The module still looks
in the old location, so don't fret about changing your modules too
much :-).

UPGRADING FROM 1.09

There is only a very minor source incompatible change, that would
affect people who used tied values for their init_default attribute
options.  ie, it should not affect anyone.  e-mail me if the new
behaviour is not what you want!

UPGRADING FROM 1.07

There are no backwards-incompatibile changes in this release, unless
you have another Tangram::Type that provides the tangram type
"transient".

UPGRADING FROM 1.06

Most users should be able to install the new version without problems.

However, there are a few small places where slight changes could
affect your code.

   1. If you have an attribute that is an array or a flat array, and
      you evaluate it in list context, it now returns the contents of
      the array rather than a reference to the array.  This is keeping
      in line with the way Set::Object attributes work.

   2. If you were using the bogus "time" or "timestamp" types, you
      will need to switch to "rawtime", "rawdatetime" or "dmdatetime".

COPYRIGHT AND LICENCE

Copyright (C) 2001, 2002 Sam Vilain.  All Rights Reserved.  This
module is free software. It may be used, redistributed and/or modified
under the terms of the Perl Artistic License

