package # mask from CPAN?
Fake::Ohloh;
use strict;
use warnings;
use Object::InsideOut;
use base qw/ WWW::Ohloh::API /;
use Carp;
use XML::LibXML;
use WWW::Ohloh::API;
my @results_of : Field;
my @parser_of : Field;
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub parser {
my $self = shift;
return $parser_of[$$self] ||= XML::LibXML->new;
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub stash {
my $self = shift;
my ( $url, $xml ) = @_;
my $dom =
-f 't/samples/' . $xml
? $self->parser->parse_file( 't/samples/' . $xml )
: $self->parser->parse_string($xml);
push @{ $results_of[$$self] }, [ $url, $dom->findnodes('//result[1]') ];
return $self;
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub _query_server {
my $self = shift;
my $stash = shift @{ $results_of[$$self] }
or croak "no more results stashed";
return @$stash;
}
'end of FakeOhloh';