From: Charles McGarvey Date: Wed, 4 Jan 2012 02:34:03 +0000 (-0700) Subject: add model for interacting with meteord X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fchatty;a=commitdiff_plain;h=429699124ffcdd7a426b8db4223602639b9163ee add model for interacting with meteord --- diff --git a/lib/Chatty/Model/Meteor.pm b/lib/Chatty/Model/Meteor.pm new file mode 100644 index 0000000..75d90b3 --- /dev/null +++ b/lib/Chatty/Model/Meteor.pm @@ -0,0 +1,57 @@ +package Chatty::Model::Meteor; +use Moose; +use namespace::autoclean; + +use IO::Socket; + +extends 'Catalyst::Model'; + +# TODO: does not reconnect to cometd if connection is broken +has 'cnx' => ( + is => 'ro', + lazy => 1, + required => 1, + default => sub { + IO::Socket::INET->new( + PeerAddr => 'localhost', + PeerPort => 4671, + Proto => 'tcp' + ); + }, +); + +=head1 NAME + +Chatty::Model::Meteor - Catalyst Model + +=head1 DESCRIPTION + +Handles interaction with the meteor comet server. + +=head1 METHODS + +=head2 addMessage + +Post a message to the server. + +=cut + +sub addMessage { + my ($self, $channel, $message) = @_; + my $cnx = $self->cnx; + print $cnx "ADDMESSAGE $channel $message\n"; +} + +=head1 AUTHOR + +Charles McGarvey + +=head1 LICENSE + +This library is free software. You can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +__PACKAGE__->meta->make_immutable; +1; diff --git a/t/model_Meteor.t b/t/model_Meteor.t new file mode 100644 index 0000000..72a5bb5 --- /dev/null +++ b/t/model_Meteor.t @@ -0,0 +1,8 @@ +use strict; +use warnings; +use Test::More; + + +BEGIN { use_ok 'Chatty::Model::Meteor' } + +done_testing();