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 )