join the dots so server starts on reload_config
[scpubgit/Clifton.git] / lib / App / Clifton / Chain.pm
1 package App::Clifton::Chain;
2
3 use Moo;
4
5 extends 'App::Clifton::Component';
6
7 has jabber_user => (is => 'ro', required => 1);
8 has irc_channel => (is => 'ro', required => 1);
9
10 has jabber_tower => (is => 'ro', required => 1);
11 has irc_tower => (is => 'ro', required => 1, weak_ref => 1);
12
13 sub handle_xmpp_message {
14   my ($self, $msg) = @_;
15   $self->irc_tower->send_irc_message({
16     to => $self->irc_channel,
17     text => $msg->body
18   });
19 }
20
21 sub handle_irc_message {
22   my ($self, $message, $hints) = @_;
23   $self->jabber_tower->send_xmpp_message({
24     to => $self->jabber_user,
25     body => join(': ', $hints->{prefix_name}, $hints->{text})
26   });
27 }
28
29 1;