summaryrefslogtreecommitdiff
path: root/lib/Lifestream.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2009-12-21 20:53:59 +0100
committerfranck cuny <franck@lumberjaph.net>2009-12-21 20:53:59 +0100
commitd42ef058b85760a2063c2ac209a4afa88978d918 (patch)
tree62578215b1735980b1d9416657e61f5d0fac0a85 /lib/Lifestream.pm
parentfrom a dumb .pl to Tatsumaki (diff)
downloadlifestream-d42ef058b85760a2063c2ac209a4afa88978d918.tar.gz
basic Tatsumaki application
Diffstat (limited to 'lib/Lifestream.pm')
-rw-r--r--lib/Lifestream.pm50
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;