Class::Tangram version 1.12 =========================== 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, and Pod::Constants 0.12. 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.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