File Coverage

blib/lib/Metabrik/Convert/Number.pm
Criterion Covered Total %
statement 9 22 40.9
branch 0 8 0.0
condition 0 3 0.0
subroutine 3 6 50.0
pod 1 3 33.3
total 13 42 30.9


line stmt bran cond sub pod time code
1             #
2             # $Id$
3             #
4             # convert::number Brik
5             #
6             package Metabrik::Convert::Number;
7 1     1   494 use strict;
  1         2  
  1         30  
8 1     1   4 use warnings;
  1         2  
  1         26  
9              
10 1     1   5 use base qw(Metabrik);
  1         1  
  1         531  
11              
12             sub brik_properties {
13             return {
14 0     0 1   revision => '$Revision$',
15             tags => [ qw(unstable) ],
16             author => 'GomoR ',
17             license => 'http://opensource.org/licenses/BSD-3-Clause',
18             commands => {
19             to_hex => [ qw(int_number) ],
20             to_int => [ qw(hex_number) ],
21             },
22             };
23             }
24              
25             sub to_hex {
26 0     0 0   my $self = shift;
27 0           my ($int) = @_;
28              
29 0 0         $self->brik_help_run_undef_arg('to_hex', $int) or return;
30              
31 0 0         if ($int !~ /^[0-9]+/) {
32 0           return $self->log->error("to_hex: invalid format for int [$int]");
33             }
34              
35 0           return sprintf("0x%x", $int);
36             }
37              
38             sub to_int {
39 0     0 0   my $self = shift;
40 0           my ($hex) = @_;
41              
42 0 0         $self->brik_help_run_undef_arg('to_int', $hex) or return;
43              
44 0 0 0       if ($hex !~ /^[0-9a-f]+$/i && $hex !~ /^0x[0-9a-f]+$/i) {
45 0           return $self->log->error("to_int: invalid format for hex [$hex]");
46             }
47              
48 0           return sprintf("%d", hex($hex));
49             }
50              
51             1;
52              
53             __END__