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 )