| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
HTML::FormFu::Constraint::DateTime - DateTime constraint
---
elements:
- type: Text
name: start_date
constraints:
- type: DateTime
parser:
strptime: '%d-%m-%Y'
- type: Text
name: end_time
constraints:
- type: DateTime
parser:
regex: !!perl/regexp '^(\d{2}) - (\d{2}) - (\d{4})$'
params: [day, month, year]
An example of using the same parser declaration for both a DateTime constraint and a DateTime inflator, using YAML references:
---
elements:
- type: Text
name: date
constraints:
- type: DateTime
parser: &PARSER
strptime: '%d-%m-%Y'
inflators:
- type: DateTime
parser: *PARSER
Ensure input can later be inflated to a DateTime object.
Arguments: \%args
Required. Define the expected input string, so DateTime::Format::Builder knows how to turn it into a DateTime object.
Accepts arguments to be passed to parser in DateTime::Format::Builder.
Carl Franks, cfranks@cpan.org
This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
package HTML::FormFu::Constraint::DateTime; use Moose; extends 'HTML::FormFu::Constraint'; use DateTime::Format::Builder; has _builder => ( is => 'rw', default => sub { DateTime::Format::Builder->new }, lazy => 1, ); sub parser { my $self = shift; $self->_builder->parser(@_); return $self; } sub constrain_value { my ( $self, $value ) = @_; return 1 if !defined $value || $value eq ''; my $dt = $self->_builder->parse_datetime($value); return 1; } sub clone { my $self = shift; my $clone = $self->SUPER::clone(@_); $clone->_builder( $self->_builder->clone ); return $clone; } __PACKAGE__->meta->make_immutable; 1; __END__