Business-CompanyDesignator
view release on metacpan or search on metacpan
lib/Business/CompanyDesignator/SplitResult.pm view on Meta::CPAN
package Business::CompanyDesignator::SplitResult;
use Moose;
use utf8;
use warnings qw(FATAL utf8);
use Carp;
use namespace::autoclean;
has [ qw(before after designator designator_std) ] =>
( is => 'ro', isa => 'Str', required => 1 );
has 'records' => ( is => 'ro', isa => 'ArrayRef', required => 1 );
sub short_name {
my $self = shift;
return $self->before || $self->after // '';
}
sub extra {
my $self = shift;
return $self->before ? ($self->after // '') : '';
}
__PACKAGE__->meta->make_immutable;
1;
=head1 NAME
Business::CompanyDesignator::SplitResult - class for modelling
L<Business::CompanyDesignator::split_designator> result records
=head1 SYNOPSIS
# Returned by split_designator in scalar context
$bcd = Business::CompanyDesignator->new;
$res = $bcd->split_designator("Open Fusion Pty Ltd (Australia)");
# Accessors
say $res->designator; # Pty Ltd (designator as found in input string)
say $res->designator_std; # Pty. Ltd. (standardised version of designator)
say $res->before; # Open Fusion (trimmed text before designator)
say $res->after; # (Australia) (trimmed text after designator)
say $res->short_name; # Open Fusion ($res->before || $res->after)
say $res->extra; # (Australia) ($res->before ? $res->after : '')
# Designator records arrayref (since designator might be ambiguous and map to multiple)
foreach (@{ $res->records }) {
say join ", ", $_->long, $_->lang;
}
=head1 ACCESSORS
=head2 designator()
If a designator is found, returns the matched designator as it exists in
the input string. Otherwise returns an empty string ('').
say $res->designator;
=head2 designator_std()
If a designator is found, returns the standardised version of the designator
as it exists in the company designator dataset. This may or may not match
$res->designator().
say $res->designator_std;
( run in 0.566 second using v1.01-cache-2.11-cpan-99c4e6809bf )