App-GitFind
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
} # get_perl_filename()
# }}}1
# Makefile customization (MY) {{{1
{ package MY;
# dist_core: make `dist` a :: target rather than a : target,
# and add distcheck and yapp before dist.
sub dist_core {
my $self = shift;
my $text = $self->SUPER::dist_core(@_);
$text =~ s/^dist\h*:[^:]/dist:: distcheck $CMDLINE_TO /m;
return $text;
} # MY::dist_core
# Generate README.md; add uninstall target and other test targets
sub postamble { # TODO also handle Windows nmake syntax (SET vs. export)
# Note: pod2markdown is marked with a hyphen so that `make` can
# succeed and generate META files even if Pod::Markdown is not yet
lib/App/GitFind/PathClassMicro.pm view on Meta::CPAN
#use App::GitFind::PathClassMicro::Dir;
# In the same file and has no import() - don't need to `use` it
use parent -norequire, qw(App::GitFind::PathClassMicro::Entity);
#use Carp;
sub croak { require Carp; goto &Carp::croak; }
use IO::File ();
sub new {
my $self = shift->SUPER::new;
my $file = pop();
my @dirs = @_;
my ($volume, $dirs, $base) = $self->_spec->splitpath($file);
if (length $dirs) {
push @dirs, $self->_spec->catpath($volume, $dirs, '');
}
$self->{dir} = @dirs ? $self->dir_class->new(@dirs) : undef;
$self->{file} = $base;
return $self;
}
sub dir_class { "App::GitFind::PathClassMicro::Dir" }
sub as_foreign {
my ($self, $type) = @_;
local $App::GitFind::PathClassMicro::Foreign = $self->_spec_class($type);
my $foreign = ref($self)->SUPER::new;
$foreign->{dir} = $self->{dir}->as_foreign($type) if defined $self->{dir};
$foreign->{file} = $self->{file};
return $foreign;
}
sub stringify {
my $self = shift;
return $self->{file} unless defined $self->{dir};
return $self->_spec->catfile($self->{dir}->stringify, $self->{file});
}
lib/App/GitFind/PathClassMicro.pm view on Meta::CPAN
#use File::Path ();
#use File::Temp ();
use Scalar::Util ();
# updir & curdir on the local machine, for screening them out in
# children(). Note that they don't respect 'foreign' semantics.
my $Updir = __PACKAGE__->_spec->updir;
my $Curdir = __PACKAGE__->_spec->curdir;
sub new {
my $self = shift->SUPER::new();
# If the only arg is undef, it's probably a mistake. Without this
# special case here, we'd return the root directory, which is a
# lousy thing to do to someone when they made a mistake. Return
# undef instead.
return if @_==1 && !defined($_[0]);
my $s = $self->_spec;
my $first = (@_ == 0 ? $s->curdir :
lib/App/GitFind/PathClassMicro.pm view on Meta::CPAN
sub file_class { "App::GitFind::PathClassMicro::File" }
sub is_dir { 1 }
sub as_foreign {
my ($self, $type) = @_;
my $foreign = do {
local $self->{file_spec_class} = $self->_spec_class($type);
$self->SUPER::new;
};
# Clone internal structure
$foreign->{volume} = $self->{volume};
my ($u, $fu) = ($self->_spec->updir, $foreign->_spec->updir);
$foreign->{dirs} = [ map {$_ eq $u ? $fu : $_} @{$self->{dirs}}];
return $foreign;
}
sub stringify {
lib/App/GitFind/cmdline.pm view on Meta::CPAN
# }}}1
sub new {
my($class)=shift;
ref($class)
and $class=ref($class);
my($self)=$class->SUPER::new( yyversion => '1.21',
yystates =>
[
{#State 0
ACTIONS => {
'REV' => 11,
'TEST' => 10,
'SWITCH' => 5,
'LPAREN' => 4,
'NOT' => 2,
'ACTION' => 3
( run in 1.064 second using v1.01-cache-2.11-cpan-49f99fa48dc )