Cikl
view release on metacpan or search on metacpan
lib/Cikl/EventBuilder.pm view on Meta::CPAN
package Cikl::EventBuilder;
use strict;
use warnings;
use Cikl::Models::Event;
use Cikl::AddressBuilder qw/address_from_protoevent/;
use Mouse;
use namespace::autoclean;
use Try::Tiny;
use DateTime;
use Cikl::Util::TimeHelpers qw/normalize_timestamp create_strptime_parser create_default_timestamp_parser/;
has 'default_event_data' => (
is => 'rw',
isa => 'HashRef',
required => 1,
default => sub { return {}; }
);
has 'refresh' => (
is => 'rw',
isa => 'Bool',
default => 0,
required => 1
);
has 'detecttime_format' => (
is => 'rw',
isa => 'Maybe[Str]',
required => 0
);
has 'detecttime_zone' => (
is => 'rw',
isa => 'Maybe[Str]',
required => 0
);
has 'detecttime_parser' => (
is => 'ro',
init_arg => undef,
isa => 'CodeRef',
lazy => 1,
builder => '_build_detecttime_parser'
);
sub _build_detecttime_parser {
my $self = shift;
if (defined($self->detecttime_format)) {
return create_strptime_parser(
$self->detecttime_format, $self->detecttime_zone);
}
return create_default_timestamp_parser();
}
has 'not_before' => (
is => 'rw',
isa => 'Int',
required => 1,
default => sub {
return DateTime->now()->subtract(days => 3)->epoch();
}
);
has '_now' => (
is => 'ro',
default => sub { time() },
init_arg => undef
);
( run in 1.910 second using v1.01-cache-2.11-cpan-98e64b0badf )