Bot-BasicBot-Pluggable
view release on metacpan or search on metacpan
lib/App/Bot/BasicBot/Pluggable.pm view on Meta::CPAN
package App::Bot::BasicBot::Pluggable;
$App::Bot::BasicBot::Pluggable::VERSION = '1.30';
use Moose;
use Config::Find;
use Bot::BasicBot::Pluggable;
use Bot::BasicBot::Pluggable::Store;
use Moose::Util::TypeConstraints;
use List::MoreUtils qw(any uniq);
use Try::Tiny;
use Log::Log4perl;
with 'MooseX::Getopt::Dashes';
with 'MooseX::SimpleConfig';
use Module::Pluggable
sub_name => '_available_stores',
search_path => 'Bot::BasicBot::Pluggable::Store';
subtype 'App::Bot::BasicBot::Pluggable::Channels'
=> as 'ArrayRef'
## Either it's an empty ArrayRef or all channels start with #
=> where { @{$_} ? any { /^#/ } @{$_} : 1 };
coerce 'App::Bot::BasicBot::Pluggable::Channels'
=> from 'ArrayRef'
=> via { [ map { /^#/ ? $_ : "#$_" } @{$_} ] };
subtype 'App::Bot::BasicBot::Pluggable::Store'
=> as 'Bot::BasicBot::Pluggable::Store';
MooseX::Getopt::OptionTypeMap->add_option_type_to_map(
'App::Bot::BasicBot::Pluggable::Store' => '=s%'
);
coerce 'App::Bot::BasicBot::Pluggable::Store'
=> from 'Str'
=> via { Bot::BasicBot::Pluggable::Store->new_from_hashref({ type => 'Str' }) };
coerce 'App::Bot::BasicBot::Pluggable::Store'
=> from 'HashRef'
=> via { Bot::BasicBot::Pluggable::Store->new_from_hashref( shift ) };
has server => ( is => 'rw', isa => 'Str', default => 'localhost' );
has nick => ( is => 'rw', isa => 'Str', default => 'basicbot' );
has charset => ( is => 'rw', isa => 'Str', default => 'utf8' );
has channel => (
is => 'rw',
isa => 'App::Bot::BasicBot::Pluggable::Channels',
coerce => 1,
default => sub { [] }
);
has password => ( is => 'rw', isa => 'Str' );
has port => ( is => 'rw', isa => 'Int', default => 6667 );
has useipv6 => ( is => 'rw', isa => 'Bool', default => 1 );
has localaddr => ( is => 'rw', isa => 'Str' );
has bot_class =>
( is => 'rw', isa => 'Str', default => 'Bot::BasicBot::Pluggable' );
has list_modules => ( is => 'rw', isa => 'Bool', default => 0 );
has list_stores => ( is => 'rw', isa => 'Bool', default => 0 );
has store => (
is => 'rw',
isa => 'App::Bot::BasicBot::Pluggable::Store',
coerce => 1,
builder => '_create_store'
);
has settings => (
metaclass => 'NoGetopt',
( run in 1.436 second using v1.01-cache-2.11-cpan-5b529ec07f3 )