version 1.13, 2010/01/26 04:30:13 |
version 1.17, 2010/01/31 03:10:39 |
|
|
package Text::Todo::REST::API; |
package Text::Todo::REST::API; |
|
|
# $AFresh1: API.pm,v 1.12 2010/01/26 03:51:49 andrew Exp $ |
# $AFresh1: API.pm,v 1.16 2010/01/26 06:03:11 andrew Exp $ |
|
|
use warnings; |
use warnings; |
use strict; |
use strict; |
|
|
} |
} |
|
|
if ( $options{action} eq 'entry' && @{ $options{args} } ) { |
if ( $options{action} eq 'entry' && @{ $options{args} } ) { |
$options{entry} = shift @{ $options{args} }; |
$options{action} .= q{_} . lc shift @{ $options{args} }; |
if ( @{ $options{args} } ) { |
|
$options{action} .= q{_} . lc shift @{ $options{args} }; |
|
} |
|
} |
} |
|
|
push @{ $options{args} }, @args; |
push @{ $options{args} }, @args; |
|
|
$options{list} |
my $list = $self->_todo->file( $options{list} ); |
= defined $options{list} ? $options{list} : 'todo_file'; |
|
|
|
|
my $suffix = $self->_suffix || q{}; |
|
if ( $list !~ / \Q$suffix\E $/ixms ) { |
|
$list .= $suffix; |
|
} |
|
|
|
$options{list} = $list; |
|
|
if ( $options{format} ) { |
if ( $options{format} ) { |
$format_of{ ident $self } = $options{format}; |
$format_of{ ident $self } = $options{format}; |
delete $options{format}; |
delete $options{format}; |
|
|
my ( $self, $path ) = @_; |
my ( $self, $path ) = @_; |
|
|
my %options = ( |
my %options = ( |
|
action => 'files', |
list => undef, |
list => undef, |
action => undef, |
entry => undef, |
args => [], |
args => [], |
); |
); |
|
|
|
|
$options{format} = $1; |
$options{format} = $1; |
} |
} |
|
|
( $options{list}, $options{action}, @{ $options{args} } ) = split '/', |
( $options{list}, $options{entry}, @{ $options{args} } ) = split '/', |
$path; |
$path; |
|
|
if ( $options{list} ) { |
if ( $options{list} ) { |
$options{action} ||= 'list'; |
$options{action} = 'list'; |
|
|
my $suffix = $self->_suffix; |
|
|
|
if ( ( lc $options{list} ) eq 'files' ) { |
|
$options{action} = lc $options{list}; |
|
$options{list} = q{}; |
|
} |
|
elsif ( $self->_todo->file( $options{list} ) ) { |
|
$options{list} = $self->_todo->file( $options{list} ); |
|
} |
|
} |
} |
|
|
if ( @{ $options{args} } && ( lc $options{args}[0] ) eq 'entry' ) { |
if ( $options{entry} ) { |
$options{action} = lc shift @{ $options{args} }; |
$options{action} = 'entry'; |
} |
} |
|
|
return %options; |
return %options; |