File Coverage

blib/lib/Hubot/Scripts/uptime.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             package Hubot::Scripts::uptime;
2             $Hubot::Scripts::uptime::VERSION = '0.1.10';
3 1     1   970 use strict;
  1         2  
  1         28  
4 1     1   3 use warnings;
  1         1  
  1         17  
5 1     1   200 use DateTime;
  0            
  0            
6             use DateTime::Format::Duration;
7              
8             sub load {
9             my ( $class, $robot ) = @_;
10             my $start = DateTime->now;
11             $robot->respond(
12             qr/uptime/i,
13             sub {
14             my $msg = shift;
15             uptimeMe( $msg, $start, sub { $msg->send(shift) } );
16             }
17             );
18             }
19              
20             sub uptimeMe {
21             my ( $msg, $start, $cb ) = @_;
22             my $now = DateTime->now;
23             my $duration = $now - $start;
24             my $d
25             = DateTime::Format::Duration->new(
26             pattern => '%Y years, %m months, %e days, '
27             . '%H hours, %M minutes, %S seconds' );
28             $d->set_normalizing(1);
29             $cb->( "I've been sentient for " . $d->format_duration($duration) );
30             }
31              
32             1;
33              
34             =head1 NAME
35              
36             Hubot::Scripts::uptime
37              
38             =head1 VERSION
39              
40             version 0.1.10
41              
42             =head1 SYNOPSIS
43              
44             hubot uptime - display robot's uptime
45              
46             =head1 AUTHOR
47              
48             Hyungsuk Hong
49              
50             =cut