File Coverage

blib/lib/BusyBird/Input/Generator.pm
Criterion Covered Total %
statement 30 30 100.0
branch 6 8 75.0
condition n/a
subroutine 8 8 100.0
pod 2 2 100.0
total 46 48 95.8


line stmt bran cond sub pod time code
1             package BusyBird::Input::Generator;
2 1     1   148105 use strict;
  1         2  
  1         34  
3 1     1   4 use warnings;
  1         1  
  1         21  
4 1     1   3 use DateTime;
  1         2  
  1         12  
5 1     1   4 use BusyBird::DateTime::Format;
  1         1  
  1         12  
6 1     1   410 use Data::UUID;
  1         601  
  1         249  
7              
8             sub new {
9 2     2 1 451 my ($class, %args) = @_;
10 2 100       181 my $self = bless {
11             screen_name => defined($args{screen_name}) ? $args{screen_name} : "",
12             id_gen => Data::UUID->new,
13             }, $class;
14 2         9 return $self;
15             }
16              
17             sub generate {
18 23     23 1 41591 my ($self, %args) = @_;
19 23 50       46 my $text = defined($args{text}) ? $args{text} : "";
20 23 100       29 my $level = defined($args{level}) ? $args{level} : 0;
21 23         54 my $cur_time = DateTime->now;
22 23         3684 my $status = +{
23             id => $self->_generate_id(),
24             text => $text,
25             created_at => BusyBird::DateTime::Format->format_datetime($cur_time),
26             user => {
27             screen_name => $self->{screen_name},
28             },
29             busybird => {
30             status_permalink => ""
31             }
32             };
33 23 50       3838 if(defined $level) {
34 23         46 $status->{busybird}{level} = $level + 0;
35             }
36 23         102 return $status;
37             }
38              
39             sub _generate_id {
40 23     23   27 my ($self) = @_;
41 23         31 my $namespace = $self->{screen_name};
42 23         460 my $uuid = $self->{id_gen}->create_str;
43 23         128 return qq{busybird://$namespace/$uuid};
44             ## $cur_time = DateTime->now if not defined($cur_time);
45             ## my $cur_epoch = $cur_time->epoch;
46             ## if($self->{last_epoch} != $cur_epoch) {
47             ## $self->{next_sequence_number} = 0;
48             ## }
49             ## my $id = qq{busybird://$namespace/$cur_epoch/$self->{next_sequence_number}};
50             ## $self->{next_sequence_number}++;
51             ## $self->{last_epoch} = $cur_epoch;
52             ## return $id;
53             }
54              
55             1;
56             __END__