package File::Dir::Dumper::Stream::JSON::Writer; use warnings; use strict; use base 'File::Dir::Dumper::Base'; use Carp; use JSON; __PACKAGE__->mk_accessors(qw(_out)); =head1 NAME File::Dir::Dumper::Stream::JSON::Writer - writer for a stream of JSON data. =head1 VERSION Version 0.0.6 =cut our $VERSION = '0.0.6'; =head1 SYNOPSIS use File::Dir::Dumper::Stream::JSON::Writer; my $writer = File::Dir::Dumper::Stream::JSON::Writer->new( { output => $output_file_handle, } ); $writer->put($token); $writer->put($another_token); . . . $writer->close(); =head1 METHODS =head2 $self->new({ output => $output_filehandle}) Initializes a new object that writes to the filehandle $output_filehandle. =head2 $self->put($token) Outputs the next token as serialized. =head2 $self->close() Closes the output filehandle. =cut sub _init { my $self = shift; my $args = shift; $self->_out($args->{output}); $self->_init_stream(); return; } sub _print { my $self = shift; my $line = shift; print {$self->_out()} $line, "\n"; } sub _init_stream { my $self = shift; $self->_print("# JSON Stream by Shlomif - Version 0.2.0"); return; } sub put { my $self = shift; my $token = shift; $self->_print(to_json($token)); $self->_print("--/f"); return; } sub close { my $self = shift; return close($self->_out()); } =head1 AUTHOR Shlomi Fish, C<< >> =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc File::Dir::Dumper You can also look for information at: =over 4 =item * RT: CPAN's request tracker L =item * AnnoCPAN: Annotated CPAN documentation L =item * CPAN Ratings L =item * Search CPAN L =back =head1 ACKNOWLEDGEMENTS =head1 COPYRIGHT & LICENSE Copyright 2008 Shlomi Fish, all rights reserved. This program is released under the following license: MIT/X11 Licence. =cut 1; # End of File::Dir::Dumper