=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Representations/text.pm,v retrieving revision 1.4 retrieving revision 1.7 diff -u -r1.4 -r1.7 --- todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Representations/text.pm 2010/01/26 06:03:11 1.4 +++ todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Representations/text.pm 2010/02/16 04:10:38 1.7 @@ -1,6 +1,6 @@ package Text::Todo::REST::API::Representations::text; -# $AFresh1: text.pm,v 1.3 2010/01/23 07:04:43 andrew Exp $ +# $AFresh1: text.pm,v 1.6 2010/02/13 22:24:15 andrew Exp $ use base 'Text::Todo::REST::API::Representations'; @@ -25,7 +25,7 @@ return exists $handled_formats{$format}; } - sub render_files { + sub _render { my ( $self, $format, $data ) = @_; $data ||= []; @@ -36,28 +36,35 @@ } return $output; } + sub render_files { _render(@_) } + sub render_tags { + my ( $self, $format, $data ) = @_; + + if (ref $data eq 'HASH') { + my $output = ''; + foreach my $k (sort keys %{ $data }) { + $output .= $k . ': ' . $data->{$k} . "\n"; + } + return $output; + } + + return $self->_render($format, $data); + } + sub render_list { my ( $self, $format, $input ) = @_; return if !defined $input; - my @input = $input; - if ( ref $input eq 'ARRAY' ) { - @input = @{$input}; + if ( ref $input ne 'ARRAY' ) { + $input = [$input]; } - my $output; - foreach my $o (@input) { - $output .= "$o->{text}\n"; - } - return $output; + return $self->_render($format, [ map "$_->{text}", @{ $input } ]); } - sub render_entry { - my ( $self, @args ) = @_; - return $self->render_list(@args); - } + sub render_entry { render_list(@_) } } 1; # Magic true value required at end of module