thanks again for this, svilen. i took what you posted, plus the followups from jsiracusa, and got something going. your code was very helpful.
i made some slight adjustments, notably calling $class->freeze/thaw in the methodmaker, and implementing those as class methods there. that allowed me to do something like: package My::MethodMaker::Serialized::JSON; use base 'My::MethodMaker::Serialized'; use JSON; sub freeze { JSON->new->objToJson($_[1]) } sub thaw { JSON->new(skipinvalid => 1)->jsonToObj($_[1]) } 1; package My::MethodMaker::Serialized::YAML; use base 'My::MethodMaker::Serialized'; use YAML::Syck(); sub freeze { YAML::Syck::Dump($_[1]) } sub thaw { YAML::Syck::Load($_[1]) } 1; package My::MethodMaker::Serialized::Storable; use base 'My::MethodMaker::Serialized'; use Storable(); sub freeze { Storable::freeze($_[1]) } sub thaw { Storable::thaw($_[1]) } 1; add some little My::Column::Serialized::* wrappers to do the method_maker_class/type bits, plus this in My::MetaData __PACKAGE__->column_type_class(serialized_storable => 'Plex::RDBO::_serialized_storable_column'); __PACKAGE__->column_type_class(serialized_yaml => 'Plex::RDBO::_serialized_yaml_column'); __PACKAGE__->column_type_class(serialized_json => 'Plex::RDBO::_serialized_json_column'); and now i can __PACKAGE__->meta->setup( table => 'user', columns => [ ... payload => { type => 'serialized_yaml' }, ], ... and things are working great! regards, michael. On Jun 19, 2007, at 10:43 PM, Svilen Ivanov wrote: > Michael, > > Check this thread: > http://www.mail-archive.com/rose-db-object@lists.sourceforge.net/ > msg00260.html > > I hope that helps > > 2007/6/20, Michael Reece <[EMAIL PROTECTED]>: >> >> i am looking to freeze/thaw (or yaml, doesn't really matter..) >> unblessed data structures into a mysql column. >> >> has anyone already written a Column class that handles this >> transparently? >> >> --- >> michael reece :: software engineer :: [EMAIL PROTECTED] >> >> >> >> --------------------------------------------------------------------- >> ---- >> This SF.net email is sponsored by DB2 Express >> Download DB2 Express C - the FREE version of DB2 express and take >> control of your XML. No limits. Just data. Click to get it now. >> http://sourceforge.net/powerbar/db2/ >> _______________________________________________ >> Rose-db-object mailing list >> Rose-db-object@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/rose-db-object >> > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Rose-db-object mailing list > Rose-db-object@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rose-db-object --- michael reece :: software engineer :: [EMAIL PROTECTED] ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Rose-db-object mailing list Rose-db-object@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rose-db-object