File Coverage

blib/lib/Duadua/Parser/FeaturePhone/FeaturePhone.pm
Criterion Covered Total %
statement 30 30 100.0
branch 15 16 93.7
condition 14 22 63.6
subroutine 4 4 100.0
pod 1 1 100.0
total 64 73 87.6


line stmt bran cond sub pod time code
1             package Duadua::Parser::FeaturePhone::FeaturePhone;
2 6     6   36 use strict;
  6         14  
  6         153  
3 6     6   25 use warnings;
  6         22  
  6         131  
4 6     6   27 use Duadua::Util;
  6         12  
  6         3159  
5              
6             sub try {
7 52     52 1 138 my ($class, $d) = @_;
8              
9 52 100 66     154 if ( index($d->ua, 'DoCoMo/2.0') > -1 && $d->ua =~ m!^DoCoMo/2\.0 ([^\(]+)\(!) {
    100 66        
    100 66        
    100 66        
    100 66        
    100 66        
10 2         7 my $name = $1;
11 2         8 $name =~ s/MST_v_//;
12 2         7 my $h = {
13             name => 'DoCoMo ' . $name,
14             };
15              
16 2         9 return $h;
17             }
18             elsif ( index($d->ua, 'FOMA;') > -1 && index($d->ua, 'Mozilla/') > -1
19             && $d->ua =~ m! \(([^;]+);FOMA;!) {
20 1         6 my $h = {
21             name => 'DoCoMo ' . $1,
22             };
23              
24 1         15 return $h;
25             }
26             elsif ( index($d->ua, 'SoftBank/') > -1 ) {
27 1         4 my @elements = split '/', $d->ua;
28 1   50     8 my $h = {
29             name => 'SoftBank ' . ($elements[2] || ''),
30             };
31              
32 1         5 return $h;
33             }
34             elsif ( index($d->ua, 'Vodafone/') > -1 ) {
35 1         5 my @elements = split '/', $d->ua;
36 1   50     7 my $h = {
37             name => 'SoftBank ' . ($elements[2] || ''),
38             };
39              
40 1         5 return $h;
41             }
42             elsif ( index($d->ua, ';SoftBank') > -1 && index($d->ua, 'Mozilla/') > -1
43             && $d->ua =~ m!\(([^;]+);SoftBank!) {
44 1         6 my $h = {
45             name => 'SoftBank ' . $1,
46             };
47              
48 1         4 return $h;
49             }
50             elsif ( index($d->ua, 'KDDI-') > -1 && $d->ua =~ m!^KDDI-([^\s]+)\s!) {
51 2         9 my $h = {
52             name => 'AU KDDI ' . $1,
53             };
54              
55 2 100       7 if ($d->opt_version) {
56 1         5 my ($version) = ($d->ua =~ m! UP\.Browser/([\d.\_A-Z]+\d)!);
57 1 50       7 $h->{version} = $version if $version;
58             }
59              
60 2         7 return $h;
61             }
62             }
63              
64             1;
65              
66             __END__