CPAN-Testers-Metabase-MongoDB
view release on metacpan or search on metacpan
lib/CPAN/Testers/Metabase/MongoDB.pm view on Meta::CPAN
use strict;
use warnings;
package CPAN::Testers::Metabase::MongoDB;
# ABSTRACT: Metabase backend on MongoDB
our $VERSION = '0.001'; # VERSION
use Moose;
use Metabase::Archive::MongoDB 1.000;
use Metabase::Index::MongoDB 1.000;
use Metabase::Librarian 1.000;
use namespace::autoclean;
with 'Metabase::Gateway';
has 'db_prefix' => (
is => 'ro',
isa => 'Str',
required => 1,
);
has 'host' => (
is => 'ro',
isa => 'Str',
required => 1,
);
sub _build_fact_classes { return [qw/CPAN::Testers::Report/] }
sub _build_public_librarian { return $_[0]->__build_librarian("public") }
sub _build_private_librarian { return $_[0]->__build_librarian("private") }
sub __build_librarian {
my ($self, $subspace) = @_;
my $db_prefix = $self->db_prefix;
return Metabase::Librarian->new(
archive => Metabase::Archive::MongoDB->new(
db_name => "${db_prefix}_${subspace}",
host => $self->host,
),
index => Metabase::Index::MongoDB->new(
db_name => "${db_prefix}_${subspace}",
host => $self->host,
),
);
}
__PACKAGE__->meta->make_immutable;
1;
=pod
=head1 NAME
CPAN::Testers::Metabase::MongoDB - Metabase backend on MongoDB
=head1 VERSION
version 0.001
=head1 SYNOPSIS
=head2 Direct usage
use CPAN::Testers::Metabase::MongoDB;
my $mb = CPAN::Testers::Metabase::MongoDB->new(
db_prefix => "my_metabase",
( run in 0.590 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )