=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/lib/Text/Todo/REST/API/Representations/text.pm,v retrieving revision 1.2 retrieving revision 1.7 diff -u -r1.2 -r1.7 --- 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/16 04:10:38 1.7 @@ -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.6 2010/02/13 22:24:15 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,46 @@ 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 dump_list { - my ( $self, $format, @input ) = @_; + sub render_tags { + my ( $self, $format, $data ) = @_; - my $output; - foreach my $o (@input) { - $output .= "$o->{text}\n"; + if (ref $data eq 'HASH') { + my $output = ''; + foreach my $k (sort keys %{ $data }) { + $output .= $k . ': ' . $data->{$k} . "\n"; + } + return $output; } - return $output; + + return $self->_render($format, $data); } - sub dump_entry { - my ( $self, @args ) = @_; - return $self->dump_list(@args); + sub render_list { + my ( $self, $format, $input ) = @_; + + return if !defined $input; + + if ( ref $input ne 'ARRAY' ) { + $input = [$input]; + } + + return $self->_render($format, [ map "$_->{text}", @{ $input } ]); } + + sub render_entry { render_list(@_) } } 1; # Magic true value required at end of module