Catmandu::Plugin::Datestamps - Automatically add datestamps to Catmandu::Store records
# Using configuration files $ cat catmandu.yml --- store: test: package: MongoDB options: database_name: test bags: data: plugins: - Datestamps $ echo '{"hello":"world"}' | catmandu import JSON to test $ catmandu export test to YAML --- _id: ADA305D8-697D-11E3-B0C3-97AD572FA7E3 date_created: 2013-12-20T13:50:25Z date_updated: 2013-12-20T13:50:25Z hello: world # Or in your Perl program my $store = Catmandu::Store::MongoDB->new( database_name => 'test' , bags => { data => { plugins => [qw(Datestamps)] } }); $store->bag->add({ '_id' => '123', 'name' => 'John Doe' }); my $obj = $store->bag->get('123'); print "%s created at %s\n" , $obj->{name} , $obj->{date_created};
The Catmandu::Plugin::Datestamps plugin automatically adds/updates datestamp fields in your records. If you add this plugin to your Catmandu::Store configuration then automatically a 'date_created' and 'date_updated' field gets added to newly ingested records.
The plugin should be set for every bag defined in your Catmandu::Store. In the examples above we've set the plugin to the default bag 'data' that is created in every Catmandu::Store.
In Catmandu::Store-s that don't have a dynamic schema (e.g. Solr, DBI) these new date fields should be predefined (e.g by changing the schema.xml or tables fields).
Field name where the creation date is stored. Defaults to 'date_created'. Also aliased as datestamp_created_field.
datestamp_created_field
Field name where the update date is stored. Defaults to 'date_updated'. Also aliased as datestamp_updated_field.
datestamp_updated_field
Use a custom strftime format. There are also 2 builtin formats, iso_date_time and iso_date_time_millis. iso_date_time is equivalent to %Y-%m-%dT%H:%M:%SZ. iso_date_time_millis is the same, but with added milliseconds.
strftime
iso_date_time
iso_date_time_millis
%Y-%m-%dT%H:%M:%SZ
my $store = Catmandu::Store::MyDB->new(bags => {book => {plugins => ['Datestamps'], datestamp_format => '%Y/%m/%d'}}); my $store = Catmandu::Store::MyDB->new(bags => {book => {plugins => ['Datestamps'], datestamp_format => 'iso_date_time_millis'}});
Catmandu::Store, Catmandu::Bag
To install Catmandu, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catmandu
CPAN shell
perl -MCPAN -e shell install Catmandu
For more information on module installation, please visit the detailed CPAN module installation guide.