Devel::Cover::DB::IO - IO routines for Devel::Cover::DB


Devel-Cover documentation Contained in the Devel-Cover distribution.

Index


Code Index:

NAME

Top

Devel::Cover::DB::IO - IO routines for Devel::Cover::DB

SYNOPSIS

Top

 use Devel::Cover::DB::IO;

 my $io = Devel::Cover::DB::IO->new(format => "JSON");
 my $data = $io->read($file);
 $io->write($data, $file);

DESCRIPTION

Top

This module provides IO routines for Devel::Cover::DB.

SEE ALSO

Top

 Devel::Cover

METHODS

Top

new

 my $io = Devel::Cover::DB::IO->new(format => "JSON");

Contructs the IO object.

read

 my $data = $io->read($file);

Returns a perl data structure representingthe data read from $file.

write

 $io->write($data, $file);

Writes $data to $file in the format specified when creating $io.

BUGS

Top

Huh?

VERSION

Top

Version 0.78 - 17th May 2011

LICENCE

Top

Copyright 2001-2011, Paul Johnson (pjcj@cpan.org)

This software is free. It is licensed under the same terms as Perl itself.

The latest version of this software should be available from my homepage: http://www.pjcj.net


Devel-Cover documentation Contained in the Devel-Cover distribution.

# Copyright 2011, Paul Johnson (pjcj@cpan.org)

# This software is free.  It is licensed under the same terms as Perl itself.

# The latest version of this software should be available from my homepage:
# http://www.pjcj.net

package Devel::Cover::DB::IO;

use strict;
use warnings;

our $VERSION = "0.78";

my $Format;

BEGIN
{
    $Format = "Storable" if eval "use Storable; 1";
    # warn "Storable available\n" if $INC{"Storable.pm"};
    $Format = "JSON"     if eval "use JSON::PP; 1";
    # warn "JSON::PP available\n" if $INC{"JSON/PP.pm"};
    die "Can't load either JSON::PP or Storable" unless $Format;
}

sub new
{
    my $class = shift;

    my $format = $ENV{DEVEL_COVER_DB_FORMAT} || $Format;
    die "Devel::Cover: Unrecognised DB format: $format"
        unless $format =~ /^(?:Storable|JSON)$/;

    $class .= "::$format";
    eval "use $class; 1" or die "Devel::Cover: $@";

    $class->new(options => $ENV{DEVEL_COVER_IO_OPTIONS} || "", @_)
}

1

__END__