File Coverage

blib/lib/Duadua/Parser/Browser/AppleSafari.pm
Criterion Covered Total %
statement 25 25 100.0
branch 16 18 88.8
condition 5 6 83.3
subroutine 4 4 100.0
pod 1 1 100.0
total 51 54 94.4


line stmt bran cond sub pod time code
1             package Duadua::Parser::Browser::AppleSafari;
2 6     6   45 use strict;
  6         12  
  6         168  
3 6     6   29 use warnings;
  6         10  
  6         129  
4 6     6   36 use Duadua::Util;
  6         12  
  6         1998  
5              
6             sub try {
7 303     303 1 567 my ($class, $d) = @_;
8              
9 303 100       543 return if index($d->ua, 'http') > -1;
10 177 100       424 return if index($d->ua, 'Browser/') > -1;
11 157 100       354 return if index($d->ua, 'HatenaBookmark/Android') > -1;
12              
13 156 100 66     353 if ( index($d->ua, 'Mozilla/5.0 (Mac') > -1 && index($d->ua, 'Safari/') > -1 ) {
14 2         8 my $h = {
15             name => 'Apple Safari',
16             is_ios => 1,
17             };
18              
19 2 100       6 if ($d->opt_version) {
20 1         27 my ($version) = ($d->ua =~ m!Safari/([\d.]+)!);
21 1 50       7 $h->{version} = $version if $version;
22             }
23              
24 2         12 return $h;
25             }
26              
27 154 100 100     361 if ( index($d->ua, 'Mozilla/5.0') > -1
28             && Duadua::Util->ordering_match($d, [' AppleWebKit/', ' Version/', ' Safari/']) ) {
29 6         19 my $h = {
30             name => 'Apple Safari',
31             };
32              
33 6 100       15 if ($d->opt_version) {
34 3         11 my ($version) = ($d->ua =~ m!Safari/([\d.]+)!);
35 3 50       14 $h->{version} = $version if $version;
36             }
37              
38 6         20 return Duadua::Util->set_os($d, $h);
39             }
40             }
41              
42             1;
43              
44             __END__