File Coverage

blib/lib/Geo/Location/IP/Model/AnonymousIP.pm
Criterion Covered Total %
statement 32 32 100.0
branch n/a
condition 6 12 50.0
subroutine 12 12 100.0
pod 6 6 100.0
total 56 62 90.3


line stmt bran cond sub pod time code
1             package Geo::Location::IP::Model::AnonymousIP;
2              
3             # SPDX-License-Identifier: Artistic-1.0-Perl OR GPL-1.0-or-later
4              
5 11     11   1002 use 5.026;
  11         52  
6 11     11   61 use warnings;
  11         17  
  11         583  
7 11     11   54 use utf8;
  11         16  
  11         68  
8              
9 11     11   291 use Object::Pad;
  11         14  
  11         60  
10              
11             class Geo::Location::IP::Model::AnonymousIP;
12              
13             our $VERSION = 0.005;
14              
15 11     11   9137 apply Geo::Location::IP::Role::HasIPAddress;
  11         44  
  11         7220  
16              
17 2     2 1 12 field $is_anonymous :param :reader = 0;
18 2     2 1 15 field $is_anonymous_vpn :param :reader = 0;
  2         11  
19 2     2 1 14 field $is_hosting_provider :param :reader = 0;
  2         13  
20 2     1 1 14 field $is_public_proxy :param :reader = 0;
  1         5  
21 1     1 1 5 field $is_residential_proxy :param :reader = 0;
  1         5  
22 1     1 1 5 field $is_tor_exit_node :param :reader = 0;
  1         6  
23              
24 1     1   5 sub _from_hash ($class, $hash_ref, $ip_address) {
  1         4  
  1         3  
  1         2  
  1         3  
  1         3  
25             return $class->new(
26             ip_address => $ip_address,
27             is_anonymous => $hash_ref->{is_anonymous} // 0,
28             is_anonymous_vpn => $hash_ref->{is_anonymous_vpn} // 0,
29             is_hosting_provider => $hash_ref->{is_hosting_provider} // 0,
30             is_public_proxy => $hash_ref->{is_public_proxy} // 0,
31             is_residential_proxy => $hash_ref->{is_residential_proxy} // 0,
32 1   50     38 is_tor_exit_node => $hash_ref->{is_tor_exit_node} // 0,
      50        
      50        
      50        
      50        
      50        
33             );
34             }
35              
36             1;
37             __END__