=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Representations/text.pm,v retrieving revision 1.2 retrieving revision 1.6 diff -u -r1.2 -r1.6 --- todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Representations/text.pm 2010/01/19 03:18:34 1.2 +++ todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Representations/text.pm 2010/02/13 22:24:15 1.6 @@ -1,6 +1,6 @@ package Text::Todo::REST::API::Representations::text; -# $AFresh1: text.pm,v 1.1 2010/01/18 03:51:40 andrew Exp $ +# $AFresh1: text.pm,v 1.5 2010/02/13 21:46:59 andrew Exp $ use base 'Text::Todo::REST::API::Representations'; @@ -13,7 +13,7 @@ { sub content_type { return 'text/plain' } - sub can_format { + sub can_render { my ( $class, $format ) = @_; return if !defined $format; @@ -25,30 +25,33 @@ return exists $handled_formats{$format}; } - sub dump_files { - my ( $self, $format, @input ) = @_; + sub _render { + my ( $self, $format, $data ) = @_; + $data ||= []; + my $output; - foreach my $line (@input) { + foreach my $line ( @{$data} ) { $output .= "$line\n"; } return $output; } + sub render_files { _render(@_) } + sub render_tags { _render(@_) } - sub dump_list { - my ( $self, $format, @input ) = @_; + sub render_list { + my ( $self, $format, $input ) = @_; - my $output; - foreach my $o (@input) { - $output .= "$o->{text}\n"; + return if !defined $input; + + if ( ref $input ne 'ARRAY' ) { + $input = [$input]; } - return $output; - } - sub dump_entry { - my ( $self, @args ) = @_; - return $self->dump_list(@args); + return $self->_render($format, [ map "$_->{text}", @{ $input } ]); } + + sub render_entry { render_list(@_) } } 1; # Magic true value required at end of module