{
$Hubot::Response::VERSION = '0.0.1';
}
use Moose;
has 'robot' => (
is => 'ro',
isa => 'Hubot::Robot',
);
has 'message' => (
is => 'ro',
isa => 'Hubot::Message',
);
has 'match' => (
is => 'rw',
isa => 'ArrayRef'
);
sub send {
my ( $self, @strings ) = @_;
$self->robot->adapter->send( $self->message->user, @strings );
}
sub topic {
my ( $self, @strings ) = @_;
$self->robot->adapter->topic( $self->message->user, @strings );
}
sub reply {
my ( $self, @strings ) = @_;
$self->robot->adapter->reply( $self->message->user, @strings );
}
sub random {
my ( $self, @items ) = @_;
return $items[ srand( scalar(@items) ) ];
}
sub finish {
my $self = shift;
$self->message->finish();
}
sub http {
my ( $self, $url ) = @_;
return $self->robot->http($url);
}
__PACKAGE__->meta->make_immutable;
1;
=pod
=encoding utf-8
=head1 NAME
Hubot::Response
=head1 SYNOPSIS
## generally Hubot::Response used to Hubot::Script::* callback.
## assume this is a callback subroutine.
$robot->hear(
qr/echo (.+)/i,
sub {
my $res = shift;
$res->reply($res->match->[0]); # aanoaa> echo 123
# hubot> aanoaa: 123
}
);
=head1 DESCRIPTION
Interface between C<Hubot::Script::*> callback and C<Hubot::Adapter::*>
=head1 AUTHOR
Hyungsuk Hong <hshong@perl.kr>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Hyungsuk Hong.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut