App-Test-Generator
view release on metacpan or search on metacpan
- Fix strict_pod=fatal false positive: $class and $self are always treated
as invocants and never reported as undocumented code parameters,
regardless of method name.
- Fix _extract_pod_before accumulating multiple adjacent POD blocks; it
now stops after the first pod token so class-level POD separated by
=cut does not bleed into a method's specific POD context.
- Fix generated tests dying without done_testing() when an input parameter
has type arrayref or array; both types are now handled in the mandatory-
argument setup block in Template.pm.
- Fix extract-schemas creating spurious schema files for Perl special blocks
(BEGIN, END, DESTROY, AUTOLOAD, CHECK, INIT, UNITCHECK); these are now
skipped in _find_methods.
- Fix extract-schemas failing to emit new: ~ for instance methods that use
the my $self = $_[0] direct-index invocant style and call other instance
methods via $self->method() but do not dereference $self directly;
_detect_instance_method now recognises $_[0] as explicit_self (high
confidence), and _needs_object_instantiation now promotes methods that
call instance methods on $self even when no hash/array dereference is
present.
- Fix --strict-pod false positive for methods using the my $self = $_[0]
calling style: add direct-index style recognition to
lib/App/Test/Generator/SchemaExtractor.pm view on Meta::CPAN
my ($self, $document) = @_;
my $subs = $document->find('PPI::Statement::Sub') || [];
my $sub_decls = $document->find('PPI::Statement') || [];
my @methods;
foreach my $sub (@$subs) {
my $name = $sub->name();
next unless defined $name; # Skip anonymous routines
next if $name =~ /^(BEGIN|END|DESTROY|AUTOLOAD|CHECK|INIT|UNITCHECK)$/;
# Skip private methods unless explicitly included, or they're special
if ($name =~ /^_/ && $name !~ /^_(new|init|build)/) {
next unless $self->{include_private};
}
# Get the POD before this sub
my $pod = $self->_extract_pod_before($sub);
push @methods, {
( run in 1.099 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )