File Coverage

blib/lib/Net/DRI/DRD/AG.pm
Criterion Covered Total %
statement 18 34 52.9
branch 0 2 0.0
condition n/a
subroutine 6 14 42.8
pod 4 8 50.0
total 28 58 48.2


line stmt bran cond sub pod time code
1             ## Domain Registry Interface, Afilias ccTLD policies for .AG
2             ##
3             ## Copyright (c) 2008,2009 Tonnerre Lombard .
4             ## (c) 2010,2011 Patrick Mevzek .
5             ## All rights reserved.
6             ##
7             ## This file is part of Net::DRI
8             ##
9             ## Net::DRI is free software; you can redistribute it and/or modify
10             ## it under the terms of the GNU General Public License as published by
11             ## the Free Software Foundation; either version 2 of the License, or
12             ## (at your option) any later version.
13             ##
14             ## See the LICENSE file that comes with this distribution for more details.
15             ####################################################################################################
16              
17             package Net::DRI::DRD::AG;
18              
19 1     1   716 use utf8;
  1         1  
  1         5  
20 1     1   26 use strict;
  1         2  
  1         15  
21 1     1   3 use warnings;
  1         1  
  1         28  
22              
23 1     1   4 use base qw/Net::DRI::DRD/;
  1         1  
  1         75  
24              
25 1     1   5 use Net::DRI::Util;
  1         1  
  1         16  
26 1     1   4 use DateTime::Duration;
  1         0  
  1         266  
27              
28             =pod
29              
30             =head1 NAME
31              
32             Net::DRI::DRD::AG - .AG policies for Net::DRI
33              
34             =head1 DESCRIPTION
35              
36             Please see the README file for details.
37              
38             =head1 SUPPORT
39              
40             For now, support questions should be sent to:
41              
42             Enetdri@dotandco.comE
43              
44             Please also see the SUPPORT file in the distribution.
45              
46             =head1 SEE ALSO
47              
48             Ehttp://www.dotandco.com/services/software/Net-DRI/E
49              
50             =head1 AUTHOR
51              
52             Tonnerre Lombard, Etonnerre.lombard@sygroup.chE
53              
54             =head1 COPYRIGHT
55              
56             Copyright (c) 2008,2009 Tonnerre Lombard .
57             (c) 2010,2011 Patrick Mevzek .
58             All rights reserved.
59              
60             This program is free software; you can redistribute it and/or modify
61             it under the terms of the GNU General Public License as published by
62             the Free Software Foundation; either version 2 of the License, or
63             (at your option) any later version.
64              
65             See the LICENSE file that comes with this distribution for more details.
66              
67             =cut
68              
69             ####################################################################################################
70              
71             sub new
72             {
73 0     0 0   my $class=shift;
74 0           my $self=$class->SUPER::new(@_);
75 0           $self->{info}->{host_as_attr}=0;
76 0           $self->{info}->{contact_i18n}=2;
77 0           return $self;
78             }
79              
80 0     0 1   sub periods { return map { DateTime::Duration->new(years => $_) } (1..10); }
  0            
81 0     0 1   sub name { return 'Afilias AG'; }
82 0     0 1   sub tlds { return qw/ag com.ag net.ag org.ag nom.ag co.ag/; }
83 0     0 1   sub object_types { return ('domain','contact','ns'); }
84 0     0 0   sub profile_types { return qw/epp/; }
85              
86             sub transport_protocol_default
87             {
88 0     0 0   my ($self,$type)=@_;
89              
90 0 0         return ('Net::DRI::Transport::Socket',{},'Net::DRI::Protocol::EPP::Extensions::Afilias',{}) if $type eq 'epp';
91 0           return;
92             }
93              
94             ####################################################################################################
95             ## http://www.afilias-grs.info/public/policies/ag
96             ## http://www.nic.ag/rules.htm
97             ## http://www.nic.ag/reserved-names-policy.htm
98             sub verify_name_domain
99             {
100 0     0 0   my ($self,$ndr,$domain,$op)=@_;
101 0           return $self->_verify_name_rules($domain,$op,{ check_name => 1,
102             my_tld => 1,
103             no_double_hyphen => 1, ## http://www.nic.ag/reserved-names-policy.htm §1
104             no_country_code => 1,## http://www.nic.ag/reserved-names-policy.htm §6
105             no_digits_only => 1, ## http://www.nic.ag/reserved-names-policy.htm §4
106             excluded_labels => [qw/enum example localhost ns com edu ftp net whois wpad brand org tm co nom ac bd/], ## §7,8,9,10
107             ## Other names are banned in http://www.nic.ag/reserved-names-policy.htm §11,12 we do not implement all checks
108             });
109             }
110              
111             ####################################################################################################
112             1;