NAME
    Devel::Cover::Report::Json_detailed - Generate a comprehensive JSON file
    articulating the full contents of a coverage run.

VERSION
    version 0.001000

SYNOPSIS
    This is an attempt at extracting the contents of a "Devel::Coverage"
    "DB" into a more useful format for the web.

      cover -report json_detailed

    Emits:

      cover_db/cover_detailed.json

    Which has at present the following data structure:

      {
        report_format => '0.1.0',
        branches      => {
          some_file => [@list_of_branch_reports],
          some_file => [@list_of_branch_reports],
        },
        runs       => [@list_of_run_reports],
        statements => {
          some_file => [@list_of_statement_reports],
          some_file => [@list_of_statement_reports],
        },
        subs => {
          some_file => [@list_of_sub_reports],
          some_file => [@list_of_sub_reports],
        },
        summary => {'???'},
      }

      Branch Report:
      {
        line           => 1,     # The Line Number
        code           => "",    # The code in question for the branch
        coverage_error => 1,     # Wether or not this is a coverage error
        uncoverable    => 1,     # If this is true, the following will be missing
        percentage     => " 50"  # The percent of covered branches
        true           => 5,       # The Number of covered branches
        false          => 5,       # The number of uncovered branches
      }

      Statement Report:
      {
        line           => 1,        # The Line Number
        code           => "",       # The code in question for the branch
        coverage_error => 1,        # Wether or not this is a coverage error
                                    #---
                                    # Any of the following may be eq "-" if they're not coverable.
        statement      => 5,        # Count of statement executions
        subroutine     => 5,        # Count of sub executions
        pod            => 1,        # Count of POD Coverage
        time           => 500,      # Time spent on statement
        branch         => " 50",    # Percent of covered branches
        condition      => " 50",    # Percent of covered conditions
      }

      Subroutine Report:
      {
        line        => 1,          # The Line Number
        name        => "BEGIN",    # The name of the subroutine
        uncoverable => 1,          # If this is true, the following will be missing.
        count       => 10,         # The number of sub executions
      }

      Run Report:
      {
        start        => UNIXTIME,          # When the given test run started
        finish       => UNIXTIME,          # when the given test run stopped
        os           => "linux",           # The operating system the run ran on
        perl_version => "5.12.3",          # The version of perl the run ran on
        run          => "path/foo.t",      # The invoked script
        time         => finish - start,    # Convenience time-elapsed
      }

    Though its very experimental because I'm still working out how the
    (Undocumented) guts of "Devel::Cover" works.

    Some of the fields feel wrongly named too but are kept because they're
    the same as "Devel::Cover"'s internals and I can't think of something
    better in the interim.

    But if I change anything significant, I'll also change the
    "report_format" string.

AUTHOR
    Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2014 by Kent Fredric
    <kentfredric@gmail.com>.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.