Log-FreeSWITCH-Line
view release on metacpan or search on metacpan
Line/Data.pm view on Meta::CPAN
package Log::FreeSWITCH::Line::Data;
use strict;
use warnings;
use English;
use Error::Pure::Always;
use Error::Pure qw(err);
use Mo qw(builder is required);
our $VERSION = 0.08;
has date => (
'is' => 'ro',
'required' => 1,
);
has datetime_obj => (
'is' => 'ro',
'builder' => '_datetime',
);
has file => (
'is' => 'ro',
'required' => 1,
);
has file_line => (
'is' => 'ro',
'required' => 1,
);
has message => (
'is' => 'ro',
);
has raw => (
'is' => 'rw',
);
has time => (
'is' => 'ro',
'required' => 1,
);
has type => (
'is' => 'ro',
'required' => 1,
);
# Create DateTime object.
sub _datetime {
my $self = shift;
eval {
require DateTime;
};
if ($EVAL_ERROR) {
err "Cannot load 'DateTime' class.",
'Error', $EVAL_ERROR;
}
my ($year, $month, $day) = split m/-/ms, $self->date;
my ($hour, $min, $sec_mili) = split m/:/ms, $self->time;
my ($sec, $mili) = split m/\./ms, $sec_mili;
if (! defined $mili) {
$mili = 0;
}
my $dt = eval {
DateTime->new(
'year' => $year,
'month' => $month,
'day' => $day,
'hour' => $hour,
'minute' => $min,
'second' => $sec,
'nanosecond' => $mili * 1000,
);
};
if ($EVAL_ERROR) {
err 'Cannot create DateTime object.',
'Error', $EVAL_ERROR;
}
return $dt;
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
Log::FreeSWITCH::Line::Data - Data object which represents FreeSWITCH log line.
=head1 SYNOPSIS
use Log::FreeSWITCH::Line::Data;
my $obj = Log::FreeSWITCH::Line::Data->new(%params);
my $date = $obj->date;
my $datetime_o = $obj->datetime_obj;
my $file = $obj->file;
my $file_line = $obj->file_line;
my $message = $obj->message;
my $raw = $obj->raw($raw);
my $time = $obj->time;
my $type = $obj->type;
=head1 METHODS
=head2 C<new>
my $obj = Log::FreeSWITCH::Line::Data->new(%params);
Constructor.
Returns instance of object.
=over 8
=item * C<date>
( run in 0.434 second using v1.01-cache-2.11-cpan-71847e10f99 )