NAME
SPOPS::Tool::DateConvert - Convert dates to objects to/from your datastore
SYNOPSIS
# 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);
"Birthdate field isa: "
,
ref
(
$item
->{birthtime} ),
"\n"
;
--> Birthdate field isa: Time::Piece
# Format some other way
"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({
=>
'foo@bar.com'
,
language
=>
'en'
,
birthtime
=> Time::Piece->new });
$newborn
->save;
DESCRIPTION
This 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.
CONFIGURATION
This 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:
DateTime (along with supporting parse class DateTime::Format::Strptime)
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.
IMPLEMENTATIONS
Uses 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.
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.
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 DO
If necessary, make this a factory and refactor if clauses into subclasses for the different implementations.
SEE ALSO
AUTHOR
Chris Winters <chris@cwinters.com>