diff options
| author | franck cuny <franck@lumberjaph.net> | 2009-12-21 20:53:59 +0100 |
|---|---|---|
| committer | franck cuny <franck@lumberjaph.net> | 2009-12-21 20:53:59 +0100 |
| commit | d42ef058b85760a2063c2ac209a4afa88978d918 (patch) | |
| tree | 62578215b1735980b1d9416657e61f5d0fac0a85 /lib/Lifestream.pm | |
| parent | from a dumb .pl to Tatsumaki (diff) | |
| download | lifestream-d42ef058b85760a2063c2ac209a4afa88978d918.tar.gz | |
basic Tatsumaki application
Diffstat (limited to 'lib/Lifestream.pm')
| -rw-r--r-- | lib/Lifestream.pm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/Lifestream.pm b/lib/Lifestream.pm new file mode 100644 index 0000000..c101ff1 --- /dev/null +++ b/lib/Lifestream.pm @@ -0,0 +1,50 @@ +package Lifestream; + +use Moose; +extends "Tatsumaki::Application"; + +use Lifestream::Handler; +use Lifestream::Worker; + +our $VERSION = '0.01'; + +has config => ( + is => "rw", + isa => "HashRef" +); + +has schema => ( + is => 'ro', + isa => 'Lifestream::Schema', + lazy => 1, + default => sub { + my $self = shift; + return Lifestream::Schema->connect( + @{ $self->config->{connect_info} } ); + } +); + +sub app { + my ( $class, %args ) = @_; + my $self = $class->new( [ '/' => 'Lifestream::Handler', ] ); + $self->config( $args{config} ); + $self->add_service( Lifestream::Worker->new( config => $self->config ) ); + $self; +} + +sub memes { + my $self = shift; + my $page = shift || 1; + my $rs = $self->schema->resultset('Entry') + ->search( {}, { rows => 25, order_by => { -desc => [qw/date/], } } ); + my $pager = $rs->page($page)->pager(); + return { total => int($pager->total_entries / 25), memes => $rs->page($page) }; +} + +sub services { + my $self = shift; + my $services = $self->schema->resultset('Feed')->search(); + return $services; +} + +1; |
