App-Midgen
view release on metacpan or search on metacpan
lib/App/Midgen/Role/Eval.pm view on Meta::CPAN
package App::Midgen::Role::Eval;
use constant {NONE => q{}, TWO => 2,};
use Moo::Role;
requires
qw( ppi_document debug verbose format xtest _process_found_modules develop meta2 );
use Try::Tiny;
use Data::Printer {caller_info => 1,};
use List::MoreUtils qw(any firstidx);
# Load time and dependencies negate execution time
# use namespace::clean -except => 'meta';
our $VERSION = '0.34';
$VERSION = eval $VERSION; ## no critic
#######
# composed method - xtests_eval
#######
sub xtests_eval {
my $self = shift;
my $phase_relationship = shift || NONE;
my @modules;
my @version_strings;
#PPI::Document
# PPI::Statement::Sub
# PPI::Token::Word 'sub'
# PPI::Token::Whitespace ' '
# PPI::Token::Word '_assert_ssl'
# PPI::Token::Whitespace ' '
# PPI::Structure::Block { ... }
# PPI::Token::Whitespace '\n'
# PPI::Token::Whitespace '\t\t'
# PPI::Statement
# PPI::Token::Word 'eval'
# PPI::Token::Whitespace ' '
# PPI::Structure::Block { ... }
# PPI::Token::Whitespace ' '
# PPI::Statement::Include
# PPI::Token::Word 'require'
# PPI::Token::Whitespace ' '
# PPI::Token::Word 'IO::Socket::SSL'
# PPI::Token::Structure ';'
# PPI::Token::Whitespace ' '
# PPI::Statement
# PPI::Token::Word 'IO::Socket::SSL'
# PPI::Token::Operator '->'
# PPI::Token::Word 'VERSION'
# PPI::Structure::List ( ... )
# PPI::Statement::Expression
# PPI::Token::Number::Float '1.44'
# PPI::Token::Whitespace ' '
# PPI::Token::Structure ';'
# PPI::Token::Whitespace '\n'
try {
my @chunks3 = @{$self->ppi_document->find('PPI::Statement::Sub')};
foreach my $chunk (@chunks3) {
if (
$chunk->find(
sub {
$_[1]->isa('PPI::Token::Word')
and $_[1]->content =~ m{\A(?:sub)\z};
( run in 0.701 second using v1.01-cache-2.11-cpan-5fbc6bb55f2 )