Benchmark-Perl-Formance-Cargo
view release on metacpan or search on metacpan
share/PerlCritic/Critic/Policy/NamingConventions/Capitalization.pm view on Meta::CPAN
@violations,
$self->_check_capitalization(
symbol_without_sigil($name),
$name,
'file_lexical_variable',
$elem,
);
}
else {
if ( _is_directly_in_scope_block($elem) ) {
push
@violations,
$self->_check_capitalization(
symbol_without_sigil($name),
$name,
'scoped_lexical_variable',
$elem,
);
}
else {
push
@violations,
$self->_check_capitalization(
symbol_without_sigil($name),
$name,
'local_lexical_variable',
$elem,
);
}
}
}
}
return @violations;
}
sub _subroutine_capitalization {
my ($self, $elem) = @_;
# These names are fixed and you've got no choice what to call them.
return if $elem->isa('PPI::Statement::Scheduled');
my $name = $elem->name();
$name =~ s{ .* :: }{}smx; # Allow for "sub Some::Package::foo {}"
return $self->_check_capitalization($name, $name, 'subroutine', $elem);
}
sub _constant_capitalization {
my ($self, $elem, $name) = @_;
return $self->_check_capitalization(
symbol_without_sigil($name), $name, 'constant', $elem,
);
}
sub _package_capitalization {
my ($self, $elem) = @_;
my $namespace = $elem->namespace();
my @components = split m/::/xms, $namespace;
foreach my $component (@components) {
my $violation =
$self->_check_capitalization(
$component, $namespace, 'package', $elem,
);
return $violation if $violation;
}
return;
}
sub _foreach_variable_capitalization {
my ($self, $elem) = @_;
my $type;
my $symbol;
my $second_element = $elem->schild(1);
return if not $second_element;
if ($second_element->isa('PPI::Token::Word')) {
$type = $second_element->content();
$symbol = $second_element->snext_sibling();
} else {
$type = 'my';
$symbol = $second_element;
}
return if not $symbol;
return if not $symbol->isa('PPI::Token::Symbol');
my $name = $symbol->symbol();
if ($type eq 'local') {
# Fully qualified names are exempt because we can't be responsible
# for other people's sybols.
return if $name =~ m/$PACKAGE_REGEX/xms;
return if is_perl_global($name);
return $self->_check_capitalization(
symbol_without_sigil($name), $name, 'global_variable', $elem,
);
}
elsif ($type eq 'our') {
return $self->_check_capitalization(
symbol_without_sigil($name), $name, 'global_variable', $elem,
);
}
# Got my or state: treat as local lexical variable
return $self->_check_capitalization(
symbol_without_sigil($name), $name, 'local_lexical_variable', $elem,
);
}
sub _label_capitalization {
my ($self, $elem, $name) = @_;
return if _is_not_real_label($elem);
( my $label = $elem->content() ) =~ s< \s* : \z ><>xms;
( run in 0.748 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )