Bot-IRC
view release on metacpan or search on metacpan
lib/Bot/IRC.pm view on Meta::CPAN
}
sub register {
my $self = shift;
$self->{loaded}{$_} = time for (@_);
return $self;
}
sub vars {
my ( $self, $name ) = @_;
( $name = lc( substr( ( caller() )[0], length(__PACKAGE__) + 2 ) ) ) =~ s/::/\-/g unless ($name);
return ( defined $self->{vars}{$name} ) ? $self->{vars}{$name} : {};
}
sub settings {
my ( $self, $name ) = @_;
return ( defined $name ) ? $self->{$name} : { %$self };
}
sub reply {
my ( $self, $message ) = @_;
lib/Bot/IRC/Store.pm view on Meta::CPAN
LoadFile( $self->{file} );
}
};
die qq{Unable to use "$self->{file}" for YAML storage in the Bot::IRC::Store plugin\n} if ($@);
return $self;
}
sub get {
my ( $self, $key ) = @_;
return LoadFile( $self->{file} )->{ ( caller() )[0] }{$key};
}
sub set {
my ( $self, $key, $value ) = @_;
my $data = LoadFile( $self->{file} );
$data->{ ( caller() )[0] }{$key} = $value;
DumpFile( $self->{file}, $data );
return $self;
}
1;
__END__
=pod
lib/Bot/IRC/Store/SQLite.pm view on Meta::CPAN
)
}) unless ($pre_exists);
$self->{json} = JSON::XS->new->ascii;
return $self;
}
sub get {
my ( $self, $key ) = @_;
my $namespace = ( caller() )[0];
my $value;
try {
my $sth = $self->{dbh}->prepare_cached(q{
SELECT value FROM bot_store WHERE namespace = ? AND key = ?
});
$sth->execute( $namespace, $key ) or die $self->{dbh}->errstr;
$value = $sth->fetchrow_array;
$sth->finish;
}
lib/Bot/IRC/Store/SQLite.pm view on Meta::CPAN
if ($value) {
$value = $self->{json}->decode($value) || undef;
$value = $value->{value} if ( ref $value eq 'HASH' and exists $value->{value} );
}
return $value;
}
sub set {
my ( $self, $key, $value ) = @_;
my $namespace = ( caller() )[0];
try {
$self->{dbh}->prepare_cached(q{
DELETE FROM bot_store WHERE namespace = ? AND key = ?
})->execute( $namespace, $key ) or die $self->{dbh}->errstr;
$self->{dbh}->prepare_cached(q{
INSERT INTO bot_store ( namespace, key, value ) VALUES ( ?, ?, ? )
})->execute(
$namespace,
( run in 0.325 second using v1.01-cache-2.11-cpan-0f795438458 )