Data-Record-Serialize

 view release on metacpan or  search on metacpan

lib/Data/Record/Serialize/Role/Default.pm  view on Meta::CPAN

package Data::Record::Serialize::Role::Default;

# ABSTRACT:  Default methods for Data::Record::Serialize

use v5.12;
use Moo::Role;

our $VERSION = '2.03';

use Hash::Util qw[ hv_store ];
use Ref::Util  qw[ is_coderef ];

use Data::Record::Serialize::Error { errors => ['fields'] }, -all;

use namespace::clean;





















## no critic( Subroutines::ProhibitBuiltinHomonyms )

# provide default if not already defined
sub send {
    my $self = shift;

    $self->_needs_eol
      ? $self->say( $self->encode( @_ ) )
      : $self->print( $self->encode( @_ ) );
}

# just in case they're not defined in preceding roles
sub setup      { }
sub finalize   { }
sub _map_types { }
sub _needs_eol { 1 }

around 'setup' => sub {
    my ( $orig, $self, $data ) = @_;

    $self->setup_from_record( $data );

    $orig->( $self );

    $self->_set__run_setup( 0 );
};

before 'close' => sub {
    my ( $self, @args ) = @_;
    $self->finalize( @args );
};

before 'send' => sub {
    my ( $self, $data ) = @_;



( run in 1.290 second using v1.01-cache-2.11-cpan-39bf76dae61 )