version 1.16, 2010/01/26 06:03:11 |
version 1.18, 2010/02/13 21:48:28 |
|
|
package Text::Todo::REST::API; |
package Text::Todo::REST::API; |
|
|
# $AFresh1: API.pm,v 1.15 2010/01/26 05:47:30 andrew Exp $ |
# $AFresh1: API.pm,v 1.17 2010/01/31 03:10:39 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; |
|
|
my ( $self, $path ) = @_; |
my ( $self, $path ) = @_; |
|
|
my %options = ( |
my %options = ( |
list => undef, |
|
action => undef, |
action => undef, |
|
list => undef, |
|
entry => undef, |
args => [], |
args => [], |
); |
); |
|
|
|
|
$options{format} = $1; |
$options{format} = $1; |
} |
} |
|
|
( $options{list}, $options{action}, @{ $options{args} } ) = split '/', |
( $options{list}, $options{action}, |
$path; |
@{ $options{args} } ) = split '/', $path; |
|
|
if ( $options{list} ) { |
if (!defined $options{action}) { |
$options{action} ||= 'list'; |
if ( $options{list} ) { |
|
$options{action} = 'list'; |
my $list = $options{list}; |
|
|
|
if ( ( lc $options{list} ) eq 'files' ) { |
|
$options{action} = lc $list; |
|
$list = q{}; |
|
} |
} |
|
else { |
$options{list} = $list; |
$options{action} = 'files'; |
|
} |
} |
} |
|
|
if ( @{ $options{args} } && ( lc $options{args}[0] ) eq 'entry' ) { |
$options{action} = lc( $options{action} ); |
$options{action} = lc shift @{ $options{args} }; |
|
|
if ($options{action} eq 'entry' |
|
|| $options{action} eq 'tags' |
|
) { |
|
$options{ $options{action} } = shift @{ $options{args} }; |
} |
} |
|
|
return %options; |
return %options; |