|
NAMESPOPS::Tool::DateConvert - Convert dates to objects to/from your datastoreSYNOPSIS# Class configuration with date convertion rule and metadata my $spops = { class => 'This::Class', isa => [ 'SPOPS::DBI' ], field => [ 'email', 'language', 'birthtime' ], id_field => 'email', base_table => 'test_table', rules_from => [ 'SPOPS::Tool::DateConvert' ], convert_date_field => [ 'birthtime' ], convert_date_class => 'Time::Piece', convert_date_format => '%Y-%m-%d %H:%M:%S', }; SPOPS::Initialize->process({ config => { test => $spops } }); my $item = This::Class->fetch(55); print "Birthdate field isa: ", ref( $item->{birthtime} ), "\n"; --> Birthdate field isa: Time::Piece # Format some other way print "Birthday occurred on day ", $item->{birthtime}->strftime( '%j' ), "which was a ", $item->{birthtime}->strftime( '%A' ), "\n"; # When creating a new object, just set the correct type of object as # the field value my $newborn = This::Class->new({ email => 'foo@bar.com', language => 'en', birthtime => Time::Piece->new }); $newborn->save; DESCRIPTIONThis SPOPS tool converts data coming from the database into a date object, and translates the date object into the proper format before it's put back into the database.CONFIGURATIONThis tool uses three configuration fields:convert_date_field (\@) An arrayref of fields that will be converted. If not specified or if empty no action will be taken. convert_date_class ($) Class for date object to be instantiated. Supported classes are:
If not specified, 'DateTime' will be used. convert_date_format ($) Format (in strftime format) for date conversions. All implementations will likely use this for converting the object to a string. Some implementations (like Time::Piece and DateTime) will use this for parsing the date from the database into the date object as well. If not specified, '%Y-%m-%d %H:%M:%S' will be used. IMPLEMENTATIONSDateTimeUses the DateTime::Format::Strptime and "convert_date_format" to translate the date from the database. Uses the DateTime "strftime()" method from along with "convert_date_format" configuration to translate the date into a string. Time::Piece Uses the "strptime()" method and "convert_date_format" to translate the date from the database. Uses the "strftime()" method along with "convert_date_format" configuration to translate the date into a string. Class::Date Uses the "new()" method to translate the date from the database. Uses the "strftime()" method along with "convert_date_format" configuration to translate the date into a string. TO DOIf necessary, make this a factory and refactor if clauses into subclasses for the different implementations.SEE ALSODateTimeDateTime::Format::Strptime Time::Piece Class::Date AUTHORChris Winters <chris@cwinters.com>
Visit the GSP FreeBSD Man Page Interface. |