App-ElasticSearch-Utilities
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/App/ElasticSearch/Utilities/QueryString/Plugin.pm view on Meta::CPAN
package App::ElasticSearch::Utilities::QueryString::Plugin;
# ABSTRACT: Moo::Role for implementing QueryString Plugins
use v5.16;
use warnings;
our $VERSION = '8.8'; # VERSION
use Hash::Merge::Simple qw(clone_merge);
use Moo::Role;
use Ref::Util qw(is_arrayref is_hashref);
use Types::Standard qw( HashRef Str Int );
# Attributes
has name => (
is => 'lazy',
isa => Str,
);
sub _build_name {
my $self = shift;
my $class = ref $self;
return (split /::/, $class)[-1];
}
has priority => (
is => 'lazy',
isa => Int,
);
sub _build_priority { 50; }
has fields_meta => (
is => 'rw',
isa => HashRef,
default => sub { {} },
);
requires qw(handle_token);
around 'handle_token' => sub {
my $orig = shift;
my $self = shift;
my $refs = $orig->($self,@_);
if( defined $refs ) {
if( is_arrayref($refs) ) {
foreach my $doc (@{ $refs }) {
$doc->{_by} = $self->name;
}
}
elsif( is_hashref($refs) ) {
$refs->{_by} = $self->name;
}
return $refs;
}
else {
return;
}
};
# Handle Build Args
sub BUILDARGS {
my($class,%in) = @_;
my @search = map { $_ => lc $_ } ($class,(split /::/, $class)[-1]);
my $options = exists $in{options} ? delete $in{options} : {};
view all matches for this distributionview release on metacpan - search on metacpan
( run in 2.040 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-48ebf85a1963 )