AnyEvent-Git-Wrapper
view release on metacpan or search on metacpan
lib/AnyEvent/Git/Wrapper.pm view on Meta::CPAN
elsif(! ref $arg) { $args = { dir => $arg } }
else { die "Singlearg must be hashref, scalar or stringify-able object" }
}
else
{
my($dir, %opts) = @_;
$dir = "$dir" if blessed $dir;
$args = { dir => $dir, %opts };
}
my $cache_version = delete $args->{cache_version};
my $self = $class->SUPER::new($args);
$self->{ae_cache_version} = $cache_version;
$self;
}
sub RUN
{
my($self) = shift;
my $cv;
if(ref($_[-1]) eq 'CODE')
{
$cv = AE::cv;
$cv->cb(pop);
}
elsif(eval { $_[-1]->isa('AnyEvent::CondVar') })
{
$cv = pop;
}
else
{
return $self->SUPER::RUN(@_);
}
my $cmd = shift;
my $customize;
$customize = pop if ref($_[-1]) eq 'CODE';
my ($parts, $in) = Git::Wrapper::_parse_args( $cmd, @_ );
my @out;
my @err;
lib/AnyEvent/Git/Wrapper.pm view on Meta::CPAN
{
$cv = AE::cv;
$cv->cb(pop);
}
elsif(eval { $_[-1]->isa('AnyEvent::CondVar') })
{
$cv = pop;
}
else
{
return $self->SUPER::status(@_);
}
my $opt = ref $_[0] eq 'HASH' ? shift : {};
$opt->{porcelain} = 1;
$self->RUN('status' => $opt, @_, sub {
my $out = shift->recv;
my $stat = Git::Wrapper::Statuses->new;
for(@$out)
lib/AnyEvent/Git/Wrapper.pm view on Meta::CPAN
{
$cv = AE::cv;
$cv->cb(pop);
}
elsif(eval { $_[-1]->isa('AnyEvent::CondVar') })
{
$cv = pop;
}
else
{
return $self->SUPER::log(@_);
}
my $cb;
if(ref($_[-1]) eq 'CODE')
{
$cb = pop;
}
my $opt = ref $_[0] eq 'HASH' ? shift : {};
$opt->{no_color} = 1;
lib/AnyEvent/Git/Wrapper.pm view on Meta::CPAN
$cv->cb(pop);
}
elsif(eval { $_[-1]->isa('AnyEvent::CondVar') })
{
$cv = pop;
}
else
{
if($self->{ae_cache_version} && $self->{ae_version})
{ return $self->{ae_version} }
$self->{ae_version} = $self->SUPER::version(@_);
return $self->{ae_version};
}
if($self->{ae_cache_version} && $self->{ae_version})
{
$cv->send($self->{ae_version});
}
else
{
$self->RUN('version', sub {
( run in 1.216 second using v1.01-cache-2.11-cpan-49f99fa48dc )