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 )