=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm 2010/02/13 21:48:28 1.18 +++ todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API.pm 2010/02/16 06:12:26 1.19 @@ -1,6 +1,6 @@ package Text::Todo::REST::API; -# $AFresh1: API.pm,v 1.17 2010/01/31 03:10:39 andrew Exp $ +# $AFresh1: API.pm,v 1.18 2010/02/13 21:48:28 andrew Exp $ use warnings; use strict; @@ -66,26 +66,26 @@ } sub _parse_options { - my ( $self, $method, @args ) = @_; + my ( $self, $method, @options) = @_; my %options = ( method => lc $method, list => '', action => 'files', - args => [], + args => {}, suffix => $self->_suffix, file_regex => $self->_file_regex, format => $self->_format, ); - if (@args) { - if ( !ref $args[0] ) { - $options{path} = shift @args; + if (@options) { + if ( !ref $options[0] ) { + $options{path} = shift @options; } - if ( ref $args[0] eq 'HASH' ) { - my $opts = shift @args; + if ( ref $options[0] eq 'HASH' ) { + my $opts = shift @options; foreach my $o ( keys %{$opts} ) { $options{$o} = $opts->{$o}; } @@ -103,12 +103,12 @@ } } - if ( $options{action} eq 'entry' && @{ $options{args} } ) { - $options{action} .= q{_} . lc shift @{ $options{args} }; + if ( $options{action} eq 'entry' && @{ $options{extra} } ) { + $options{action} .= q{_} . lc shift @{ $options{extra} }; } + + push @{ $options{extra} }, @options; - push @{ $options{args} }, @args; - my $list = $self->_todo->file( $options{list} ); my $suffix = $self->_suffix || q{}; @@ -163,7 +163,7 @@ action => undef, list => undef, entry => undef, - args => [], + extra => [], ); $path = defined $path ? $path : q{}; @@ -174,7 +174,7 @@ } ( $options{list}, $options{action}, - @{ $options{args} } ) = split '/', $path; + @{ $options{extra} } ) = split '/', $path; if (!defined $options{action}) { if ( $options{list} ) { @@ -190,7 +190,7 @@ if ($options{action} eq 'entry' || $options{action} eq 'tags' ) { - $options{ $options{action} } = shift @{ $options{args} }; + $options{ $options{action} } = shift @{ $options{extra} }; } return %options;