version 1.6, 2010/04/30 07:18:33 |
version 1.9, 2010/04/30 18:30:57 |
|
|
#!/usr/bin/env perl |
#!/usr/bin/perl |
|
|
package Dudelicious; |
package Dudelicious; |
|
|
|
|
BEGIN { |
BEGIN { |
use FindBin; |
use FindBin; |
use lib "$FindBin::Bin/../lib"; |
use lib "$FindBin::Bin/../lib"; |
use lib "$FindBin::Bin/mojo/lib"; |
use lib "$FindBin::Bin/../mojo/lib"; |
} |
} |
|
|
use Carp qw/ carp croak /; |
use Carp qw/ carp croak /; |
|
|
$self->render( files => \@files, layout => 'todotxt' ); |
$self->render( files => \@files, layout => 'todotxt' ); |
} => 'index'; |
} => 'index'; |
|
|
|
get '/todotxt' => 'todotxt'; |
|
|
get '/l/:file' => sub { |
get '/l/:file' => sub { |
my $self = shift; |
my $self = shift; |
my $file = $self->stash('file') . '.txt'; |
my $file = $self->stash('file') . '.txt'; |
my $format = $self->stash('format') || 'html'; |
my $format = $self->stash('format') || 'html'; |
|
my $list = _get_list( $self, $file ); |
|
|
if ( $format eq 'json' ) { |
if ( $format eq 'json' ) { |
$self->render_json( _get_list( $self, $file ) ); |
$self->render_json($list); |
} |
} |
else { |
else { |
$self->render( |
$self->render( list => $list, layout => 'todotxt' ); |
list => _get_list( $self, $file ), |
|
layout => 'todotxt' |
|
); |
|
} |
} |
} => 'list'; |
} => 'list'; |
|
|
get '/l/:file/e/:line' => sub { |
get '/l/:file/e/:line' => sub { |
my $self = shift; |
my $self = shift; |
my $file = $self->stash('file') . '.txt'; |
my $file = $self->stash('file') . '.txt'; |
my $entry = $self->stash('line') - 1; |
|
my $format = $self->stash('format') || 'html'; |
my $format = $self->stash('format') || 'html'; |
|
my $entry = _get_list( $self, $file )->[ $self->stash('line') - 1 ]; |
|
|
if ( $format eq 'json' ) { |
if ( $format eq 'json' ) { |
$self->render_json( _get_list( $self, $file )->[$entry] ); |
$self->render_json($entry); |
} |
} |
else { |
else { |
$self->render( |
$self->render( entry => $entry, layout => 'todotxt' ); |
entry => _get_list( $self, $file )->[$entry], |
|
layout => 'todotxt' |
|
); |
|
} |
} |
} => 'entry'; |
} => 'entry'; |
|
|
|
|
|
|
@@ layouts/todotxt.html.ep |
@@ layouts/todotxt.html.ep |
<!doctype html><html> |
<!doctype html><html> |
<head><title>Funky!</title></head> |
<head> |
|
<title>Funky!</title> |
|
<link rel="stylesheet" href="<%= url_for 'todotxt', format => 'css' %>"> |
|
</head> |
<body><%== content %></body> |
<body><%== content %></body> |
</html> |
</html> |
|
|
|
@@ todotxt.css.ep |
|
body { |
|
background: LightGoldenRodYellow; |
|
color: DarkSlateBlue; |
|
} |
|
|
|
.inplaceeditor-saving { |
|
background: url(images/saving.gif) bottom right no-repeat; |
|
} |
|
|
|
|
__END__ |
__END__ |
|
|