Search-GIN

 view release on metacpan or  search on metacpan

lib/Search/GIN/Extract/Class.pm  view on Meta::CPAN

use strict;
use warnings;
package Search::GIN::Extract::Class;

our $VERSION = '0.11';

use Moose;
use MRO::Compat;
use namespace::autoclean;

with qw(
    Search::GIN::Extract
    Search::GIN::Keys::Deep
);

sub extract_values {
    my ( $self, $obj, @args ) = @_;

    my $class = ref $obj;

    my $isa = $class->mro::get_linear_isa();

    my $meta = Class::MOP::get_metaclass_by_name($class);
    my @roles = $meta && $meta->can("calculate_all_roles") ? ( map { $_->name } $meta->calculate_all_roles ) : ();

    return $self->process_keys({
        blessed => $class,
        class   => $isa,
        does    => \@roles,
    });
}

__PACKAGE__->meta->make_immutable;

1;



( run in 0.241 second using v1.01-cache-2.11-cpan-a5abf4f5562 )