Devel-Module-Trace

 view release on metacpan or  search on metacpan

script/devel_module_trace_result_server  view on Meta::CPAN

        push @{$flat}, $mod;
        if($mod->{'sub'}) {
            for my $submod (@{$mod->{'sub'}}) {
                $submod->{'parent'} = $mod;
            }
            my $subs = _flatten_results($mod->{'sub'});
            push @{$flat}, @{$subs};
            $mod->{'num_childs'} += scalar @{$subs};
        }
        my($time, $milliseconds) = split(/\./mx, $mod->{'time'});
        $mod->{'human_starttime'} =
            POSIX::strftime("%H:%M:", localtime($time)).
            POSIX::strftime("%S", localtime($time)).'.'.$milliseconds;
        ($time, $milliseconds) = split(/\./mx, ($mod->{'time'}+$mod->{'elapsed'}));
        $mod->{'human_endtime'} =
            POSIX::strftime("%H:%M:", localtime($time)).
            POSIX::strftime("%S", localtime($time)).'.'.$milliseconds;

    }
    return($flat);
}

################################################################################
sub _get_template {
    our $data    = "";
    my $template = "";
    if(-e 'templates/index.tt') {
        open(my $fh, '<', 'templates/index.tt') or die("cannot read index.tt: $!");
        while(<$fh>) { $template .= $_; }
        close($fh);
    } else {
        if(!$data) {
            while(<DATA>) { $template .= $_; }
        }
        $template = $data;
    }
    return($template);
}

################################################################################
sub _read_results {
    my($file) = @_;
    open(my $fh, '<', $file) or die("cannot open $file: $!");
    my $content = "";
    while(<$fh>) { $content .= $_; }
    close($fh);
    if($content !~ m/^\$VAR1/mx) {
        die("unknown result file format");
    }
    my($VAR1);
    ## no critic
    eval($content);
    ## use critic
    die($@) if($@);
    return($VAR1);
}

################################################################################

__DATA__
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Devel::Module::Trace</title>
    <link type="text/css" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
    <link type="text/css" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <style type='text/css'>
      BODY {
        padding-top: 25px;
      }
      TABLE.table TD, TABLE.table TH {
        white-space: nowrap;
      }
      .node {
        white-space: nowrap;
        height: 13px;
        position: absolute;
        background: #5bc0de;
        line-height: 13px;
        font-size: x-small;
      }
      .node.direct {
        background: #4cae4c;
      }
      .node_border {
        position: absolute;
        border: 1px solid grey;
        border-radius: 2px;
      }
      .nodetooltip {
        text-align: left;
        white-space: nowrap;
      }
      .nodetooltip TD {
        maring-left: 2px;
        padding-right: 3px;
      }
      .legend {
        height: 20px;
        position: relative;
        margin-right: 5px;
        padding: 0 3px;
        border: 1px solid grey;
        top: -1px;
        border-radius: 2px;
      }
    </style>
  </head>
  <body>

<!-- Navigation -->
<a name="top"></a>
<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        <li><a href="#stats">Statistics</a></li>
        <li><a href="#timeline">Timeline</a></li>



( run in 0.664 second using v1.01-cache-2.11-cpan-119454b85a5 )