Hailo
view release on metacpan or search on metacpan
lib/Hailo/Storage/MySQL.pm view on Meta::CPAN
package Hailo::Storage::MySQL;
our $AUTHORITY = 'cpan:AVAR';
$Hailo::Storage::MySQL::VERSION = '0.75';
use v5.10.0;
use Moose;
use MooseX::StrictConstructor;
use List::MoreUtils qw< all >;
use namespace::clean -except => 'meta';
extends 'Hailo::Storage';
with qw(Hailo::Role::Arguments Hailo::Role::Storage);
sub _build_dbd { return 'mysql' };
override _build_dbd_options => sub {
return {
%{ super() },
mysql_enable_utf8 => 1,
};
};
sub _build_dbi_options {
my ($self) = @_;
my $dbd = $self->dbd;
my $dbd_options = $self->dbd_options;
my $args = $self->arguments;
my $conn_line = "dbi:$dbd";
$conn_line .= ":database=$args->{database}" if exists $args->{database};
$conn_line .= ";host=$args->{host}" if exists $args->{host};
$conn_line .= ";port=$args->{port}" if exists $args->{port};
my @options = (
$conn_line,
($args->{username} || ''),
($args->{password} || ''),
$dbd_options,
);
return \@options;
}
sub ready {
my ($self) = @_;
return all { exists $self->arguments->{$_} } qw(database username password);
}
__PACKAGE__->meta->make_immutable;
=encoding utf8
=head1 NAME
Hailo::Storage::MySQL - A storage backend for L<Hailo|Hailo> using
L<DBD::mysql|DBD::mysql>
=head1 SYNOPSIS
As a module:
my $hailo = Hailo->new(
storage_class => 'mysql',
storage_args => {
database => 'hailo',
host => 'localhost',
port => '3306',
username => 'hailo',
password => 'hailo'
},
);
$hailo->train("hailo.trn");
From the command line:
hailo --train hailo.trn \
--storage mysql \
--storage-args database=hailo \
( run in 1.085 second using v1.01-cache-2.11-cpan-140bd7fdf52 )