From d447a4e90bfe038617f2a83ba4ecd70b95f570e0 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 25 Jan 2021 14:15:53 +0000 Subject: [PATCH] chore(release): 2.10.1 [skip ci] ## [2.10.1](https://github.com/hexonet/perl-sdk/compare/v2.10.0...v2.10.1) (2021-01-25) ### Bug Fixes * **ci:** migrate from Travis CI to github actions ([292123f](https://github.com/hexonet/perl-sdk/commit/292123fcb51628041a95086786c13714099d0327)) * **ci:** move POD Checks behind POD Generator ([8b99fbc](https://github.com/hexonet/perl-sdk/commit/8b99fbcd6d069d4b12080d2ba536d00f5d5bb02c)) ### Performance Improvements * **ci:** review perltidy script to a generic way ([4c3121b](https://github.com/hexonet/perl-sdk/commit/4c3121bff282225c339b82d89ecdf77491e3eab2)) --- HISTORY.md | 13 + WebService-Hexonet-Connector-latest.tar.gz | Bin 827283 -> 869134 bytes ...ervice-Hexonet-Connector-APIClient-pm.html | 432 +++++++++--------- ...ebService-Hexonet-Connector-Column-pm.html | 40 +- ...ebService-Hexonet-Connector-Logger-pm.html | 26 +- ...ebService-Hexonet-Connector-Record-pm.html | 28 +- ...Service-Hexonet-Connector-Response-pm.html | 306 ++++++------- ...e-Hexonet-Connector-ResponseParser-pm.html | 74 +-- ...Hexonet-Connector-ResponseTemplate-pm.html | 66 +-- ...-Connector-ResponseTemplateManager-pm.html | 62 +-- ...ice-Hexonet-Connector-SocketConfig-pm.html | 92 ++-- ...b-lib-WebService-Hexonet-Connector-pm.html | 24 +- cover_db/cover.14 | 2 +- cover_db/coverage.html | 14 +- cover_db/digests | 2 +- .../014c53d8d69b2acdb6a0f925bfd767c9 | 1 + ... => 014c53d8d69b2acdb6a0f925bfd767c9.lock} | 0 .../140f2f8a417cbacc14af0da67b3c426c | 1 + ... => 140f2f8a417cbacc14af0da67b3c426c.lock} | 0 .../15072ba5bfa718522fa24cf248e85d90 | 1 + ... => 15072ba5bfa718522fa24cf248e85d90.lock} | 0 .../187e602cadf3bd2675a6d11ebc19118f | 1 + ... => 187e602cadf3bd2675a6d11ebc19118f.lock} | 0 .../1c21266662929d6c29977d81f8030152 | 1 + ... => 1c21266662929d6c29977d81f8030152.lock} | 0 .../1e7c7464cdeed5985f502156b6842c2a | 1 - .../49ce31b1dc3e29d9b76b12b13412eb9a | 1 - .../74c3e2fa572ac2dd5f1348fde238f8c0 | 1 + ... => 74c3e2fa572ac2dd5f1348fde238f8c0.lock} | 0 .../83e752528c185f0c77dcc305bb79763a | 1 - .../850d642e7016f744662773458db483cd | 1 + ... => 850d642e7016f744662773458db483cd.lock} | 0 .../898e18dd366f01e293d13d2c6c29e160 | 1 + ... => 898e18dd366f01e293d13d2c6c29e160.lock} | 0 .../a3747c723c3e4f7277a3d214aac7cad6 | 1 - .../c95eb51076caeff43cd14e8ba8cecc61 | 1 - .../deb8763b49b844d004de39403966cd49 | 1 - .../e4222efea44983f9a3a27c6dd2e37d6b | 1 - .../e936d83d6990004dbec16569c190df09 | 1 + ... => e936d83d6990004dbec16569c190df09.lock} | 0 .../ea5528def978821c0e3cab7b6dab910c | 1 + ... => ea5528def978821c0e3cab7b6dab910c.lock} | 0 .../f53203362ec0d1a6a6511fb40d7783f4 | 1 - .../fbbb05055b4bf56d4466313d2e9749d1 | 1 - .../fc85fc813134eedf68cdbf532f5ba41b | 1 - lib/WebService/Hexonet.pm | 2 +- lib/WebService/Hexonet/Connector.pm | 2 +- lib/WebService/Hexonet/Connector/APIClient.pm | 2 +- lib/WebService/Hexonet/Connector/Column.pm | 2 +- lib/WebService/Hexonet/Connector/Logger.pm | 2 +- lib/WebService/Hexonet/Connector/Record.pm | 2 +- lib/WebService/Hexonet/Connector/Response.pm | 2 +- .../Hexonet/Connector/ResponseParser.pm | 2 +- .../Hexonet/Connector/ResponseTemplate.pm | 2 +- .../Connector/ResponseTemplateManager.pm | 2 +- .../Hexonet/Connector/SocketConfig.pm | 2 +- 56 files changed, 618 insertions(+), 605 deletions(-) create mode 100644 cover_db/structure/014c53d8d69b2acdb6a0f925bfd767c9 rename cover_db/structure/{1e7c7464cdeed5985f502156b6842c2a.lock => 014c53d8d69b2acdb6a0f925bfd767c9.lock} (100%) create mode 100644 cover_db/structure/140f2f8a417cbacc14af0da67b3c426c rename cover_db/structure/{49ce31b1dc3e29d9b76b12b13412eb9a.lock => 140f2f8a417cbacc14af0da67b3c426c.lock} (100%) create mode 100644 cover_db/structure/15072ba5bfa718522fa24cf248e85d90 rename cover_db/structure/{83e752528c185f0c77dcc305bb79763a.lock => 15072ba5bfa718522fa24cf248e85d90.lock} (100%) create mode 100644 cover_db/structure/187e602cadf3bd2675a6d11ebc19118f rename cover_db/structure/{a3747c723c3e4f7277a3d214aac7cad6.lock => 187e602cadf3bd2675a6d11ebc19118f.lock} (100%) create mode 100644 cover_db/structure/1c21266662929d6c29977d81f8030152 rename cover_db/structure/{c95eb51076caeff43cd14e8ba8cecc61.lock => 1c21266662929d6c29977d81f8030152.lock} (100%) delete mode 100644 cover_db/structure/1e7c7464cdeed5985f502156b6842c2a delete mode 100644 cover_db/structure/49ce31b1dc3e29d9b76b12b13412eb9a create mode 100644 cover_db/structure/74c3e2fa572ac2dd5f1348fde238f8c0 rename cover_db/structure/{deb8763b49b844d004de39403966cd49.lock => 74c3e2fa572ac2dd5f1348fde238f8c0.lock} (100%) delete mode 100644 cover_db/structure/83e752528c185f0c77dcc305bb79763a create mode 100644 cover_db/structure/850d642e7016f744662773458db483cd rename cover_db/structure/{e4222efea44983f9a3a27c6dd2e37d6b.lock => 850d642e7016f744662773458db483cd.lock} (100%) create mode 100644 cover_db/structure/898e18dd366f01e293d13d2c6c29e160 rename cover_db/structure/{f53203362ec0d1a6a6511fb40d7783f4.lock => 898e18dd366f01e293d13d2c6c29e160.lock} (100%) delete mode 100644 cover_db/structure/a3747c723c3e4f7277a3d214aac7cad6 delete mode 100644 cover_db/structure/c95eb51076caeff43cd14e8ba8cecc61 delete mode 100644 cover_db/structure/deb8763b49b844d004de39403966cd49 delete mode 100644 cover_db/structure/e4222efea44983f9a3a27c6dd2e37d6b create mode 100644 cover_db/structure/e936d83d6990004dbec16569c190df09 rename cover_db/structure/{fbbb05055b4bf56d4466313d2e9749d1.lock => e936d83d6990004dbec16569c190df09.lock} (100%) create mode 100644 cover_db/structure/ea5528def978821c0e3cab7b6dab910c rename cover_db/structure/{fc85fc813134eedf68cdbf532f5ba41b.lock => ea5528def978821c0e3cab7b6dab910c.lock} (100%) delete mode 100644 cover_db/structure/f53203362ec0d1a6a6511fb40d7783f4 delete mode 100644 cover_db/structure/fbbb05055b4bf56d4466313d2e9749d1 delete mode 100644 cover_db/structure/fc85fc813134eedf68cdbf532f5ba41b diff --git a/HISTORY.md b/HISTORY.md index 023db1a..84288af 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,16 @@ +## [2.10.1](https://github.com/hexonet/perl-sdk/compare/v2.10.0...v2.10.1) (2021-01-25) + + +### Bug Fixes + +* **ci:** migrate from Travis CI to github actions ([292123f](https://github.com/hexonet/perl-sdk/commit/292123fcb51628041a95086786c13714099d0327)) +* **ci:** move POD Checks behind POD Generator ([8b99fbc](https://github.com/hexonet/perl-sdk/commit/8b99fbcd6d069d4b12080d2ba536d00f5d5bb02c)) + + +### Performance Improvements + +* **ci:** review perltidy script to a generic way ([4c3121b](https://github.com/hexonet/perl-sdk/commit/4c3121bff282225c339b82d89ecdf77491e3eab2)) + # [2.10.0](https://github.com/hexonet/perl-sdk/compare/v2.9.2...v2.10.0) (2020-07-16) diff --git a/WebService-Hexonet-Connector-latest.tar.gz b/WebService-Hexonet-Connector-latest.tar.gz index c98766933afc18e6961f6d15b5362d85e44bf52d..604bc74f7dc3e7c69a2dcd6b3d3e2d9ee98bf151 100644 GIT binary patch delta 48922 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 delta 6717 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 N_s%RP!Vn(9{{XX=Z)*Sm diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-APIClient-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-APIClient-pm.html index ab62205..c9d813c 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-APIClient-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-APIClient-pm.html @@ -26,29 +26,29 @@

File Coverage

- - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - + + @@ -56,14 +56,14 @@

File Coverage

- - - - + + + + - + @@ -74,119 +74,119 @@

File Coverage

- + - + - - - + + + - + - - + + - - - - - - - + + + + + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - - + + + + - + - + - - - - - - - + + + + + + + - - + + - - + + - + - - - + + + - + - + - - - + + + - + - - - + + + - + - + - - + + - + - + @@ -196,244 +196,244 @@

File Coverage

- - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - - + + + + + - + - + - + - + - - + + - - - - + + + + - - - - + + + + - - + + - + - + - - - + + + - + - + - + - + - - - - - - - - - + + + + + + + + + - - + + - - - - - + + + + + - - + + - + - - - + + + - - - + + + - - - - + + + + - + - - + + - - + + - - - - - - + + + + + + - + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - + - - + + - - - + + + - + - - - + + + - + - + - + - + - + - +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::APIClient;
2
3
1
1
8
1
use 5.030;
4
1
1
1
1
1
6
use strict;
5
1
1
1
2
0
13
use warnings;
6
1
1
1
184
5
4
use utf8;
7
1
1
1
239
1
14
use WebService::Hexonet::Connector::Logger;
8
1
1
1
286
1
15
use WebService::Hexonet::Connector::Response;
9
1
1
1
3
1
11
use WebService::Hexonet::Connector::ResponseTemplateManager;
10
1
1
1
280
2
15
use WebService::Hexonet::Connector::SocketConfig;
11
1
1
1
242
18097
17
use LWP::UserAgent;
12
1
1
1
4
0
29
use Carp;
13
1
1
1
2
1
17
use Readonly;
14
1
1
1
3
1
15
use Data::Dumper;
15
1
1
1
1
1
15
use Config;
16
1
1
1
2
1
4
use POSIX;
2
3
1
1
9
2
use 5.030;
4
1
1
1
2
1
13
use strict;
5
1
1
1
2
1
16
use warnings;
6
1
1
1
250
7
2
use utf8;
7
1
1
1
269
1
14
use WebService::Hexonet::Connector::Logger;
8
1
1
1
296
1
18
use WebService::Hexonet::Connector::Response;
9
1
1
1
3
1
12
use WebService::Hexonet::Connector::ResponseTemplateManager;
10
1
1
1
313
1
14
use WebService::Hexonet::Connector::SocketConfig;
11
1
1
1
248
23492
21
use LWP::UserAgent;
12
1
1
1
4
1
38
use Carp;
13
1
1
1
2
1
20
use Readonly;
14
1
1
1
2
2
19
use Data::Dumper;
15
1
1
1
2
2
16
use Config;
16
1
1
1
3
1
4
use POSIX;
17
18Readonly my $SOCKETTIMEOUT                => 300;                                      # 300s or 5 min
19Readonly my $IDX4                         => 4;                                        # Index 4 constant
20Readonly our $ISPAPI_CONNECTION_URL       => 'https://api.ispapi.net/api/call.cgi';    # Default Connection Setup URL
21Readonly our $ISPAPI_CONNECTION_URL_PROXY => 'http://127.0.0.1/api/call.cgi';          # High Speed Connection Setup URL
22
23
1
1
1
1014
11
4
use version 0.9917; our $VERSION = version->declare('v2.10.0');
22
23
1
1
1
1107
12
4
use version 0.9917; our $VERSION = version->declare('v2.10.1');
24
25my $rtm = WebService::Hexonet::Connector::ResponseTemplateManager->getInstance();
26
27
28sub new {
29
2
1
7
    my $class = shift;
30
2
9
    my $self  = bless {
29
2
1
3
    my $class = shift;
30
2
6
    my $self  = bless {
31        socketURL    => $ISPAPI_CONNECTION_URL,
32        debugMode    => 0,
33        socketConfig => WebService::Hexonet::Connector::SocketConfig->new(),
35        curlopts     => {},
36        logger       => WebService::Hexonet::Connector::Logger->new()
37    }, $class;
38
2
21
    $self->setURL($ISPAPI_CONNECTION_URL);
39
2
6
    $self->useLIVESystem();
40
2
5
    $self->setDefaultLogger();
41
2
4
    return $self;
38
2
12
    $self->setURL($ISPAPI_CONNECTION_URL);
39
2
2
    $self->useLIVESystem();
40
2
3
    $self->setDefaultLogger();
41
2
2
    return $self;
42}
43
44
45sub setDefaultLogger {
46
2
0
2
    my $self = shift;
47
2
4
    $self->{logger} = WebService::Hexonet::Connector::Logger->new();
47
2
3
    $self->{logger} = WebService::Hexonet::Connector::Logger->new();
48
2
2
    return $self;
49}
50
51
52sub setCustomLogger {
57
0
0
    return $self;
58}
59
60
61sub enableDebugMode {
62
2
1
316
    my $self = shift;
62
2
1
300
    my $self = shift;
63
2
4
    $self->{debugMode} = 1;
64
2
4
    return $self;
64
2
5
    return $self;
65}
66
67
68sub disableDebugMode {
69
2
1
7
    my $self = shift;
70
2
4
    $self->{debugMode} = 0;
71
2
4
    return $self;
69
2
1
4
    my $self = shift;
70
2
3
    $self->{debugMode} = 0;
71
2
2
    return $self;
72}
73
74
75sub getPOSTData {
76
50
1
940
    my ( $self, $cmd, $secured ) = @_;
76
50
1
838
    my ( $self, $cmd, $secured ) = @_;
77
50
105
    my $post = $self->{socketConfig}->getPOSTData();
78
50
119
    if ( defined($secured) && $secured == 1 ) {
79
18
50
        $post->{s_pw} = '***';
78
50
113
    if ( defined($secured) && $secured == 1 ) {
79
18
24
        $post->{s_pw} = '***';
80    }
81
50
50
    my $tmp = q{};
82
50
72
    if ( ( ref $cmd ) eq 'HASH' ) {
83
49
49
47
109
        foreach my $key ( sort keys %{$cmd} ) {
84
91
103
            if ( defined $cmd->{$key} ) {
85
90
71
                my $val = $cmd->{$key};
86
90
108
                $val =~ s/[\r\n]//msx;
87
90
130
                $tmp .= "${key}=${val}\n";
81
50
58
    my $tmp = q{};
82
50
74
    if ( ( ref $cmd ) eq 'HASH' ) {
83
49
49
53
116
        foreach my $key ( sort keys %{$cmd} ) {
84
91
115
            if ( defined $cmd->{$key} ) {
85
90
81
                my $val = $cmd->{$key};
86
90
103
                $val =~ s/[\r\n]//msx;
87
90
128
                $tmp .= "${key}=${val}\n";
88            }
89        }
90    } else {
91
1
2
        $tmp = $cmd;
91
1
1
        $tmp = $cmd;
92    }
93
50
88
    if ( defined($secured) && $secured == 1 ) {
94
18
31
        $tmp =~ s/PASSWORD\=[^\n]+/PASSWORD=***/gmsx;
93
50
99
    if ( defined($secured) && $secured == 1 ) {
94
18
43
        $tmp =~ s/PASSWORD\=[^\n]+/PASSWORD=***/gmsx;
95    }
96
50
111
    $tmp =~ s/\n$//msx;
97
50
80
    if ( utf8::is_utf8($tmp) ) {
96
50
116
    $tmp =~ s/\n$//msx;
97
50
88
    if ( utf8::is_utf8($tmp) ) {
98
2
3
        utf8::encode($tmp);
99    }
100
50
67
    $post->{'s_command'} = $tmp;
101
50
60
    return $post;
100
50
56
    $post->{'s_command'} = $tmp;
101
50
75
    return $post;
102}
103
104
105sub getSession {
106
2
1
6
    my $self   = shift;
106
2
1
4
    my $self   = shift;
107
2
5
    my $sessid = $self->{socketConfig}->getSession();
108
2
6
    if ( length $sessid ) {
108
2
3
    if ( length $sessid ) {
109
1
2
        return $sessid;
110    }
111
1
2
    return;
111
1
1
    return;
112}
113
114
115sub getURL {
116
5
1
12
    my $self = shift;
117
5
11
    return $self->{socketURL};
116
5
1
10
    my $self = shift;
117
5
10
    return $self->{socketURL};
118}
119
120
121sub getUserAgent {
122
20
1
46
    my $self = shift;
123
20
49
    if ( !( length $self->{ua} ) ) {
124
1
8
        my $arch = (POSIX::uname)[ $IDX4 ];
125
1
5
        my $os   = (POSIX::uname)[ 0 ];
122
20
1
57
    my $self = shift;
123
20
50
    if ( !( length $self->{ua} ) ) {
124
1
6
        my $arch = (POSIX::uname)[ $IDX4 ];
125
1
6
        my $os   = (POSIX::uname)[ 0 ];
126
1
3
        my $rv   = $self->getVersion();
127
1
28
        $self->{ua} = "PERL-SDK ($os; $arch; rv:$rv) perl/$Config{version}";
127
1
12
        $self->{ua} = "PERL-SDK ($os; $arch; rv:$rv) perl/$Config{version}";
128    }
129
20
43
    return $self->{ua};
129
20
46
    return $self->{ua};
130}
131
132
133sub setUserAgent {
134
2
1
1115
    my ( $self, $str, $rv, $modules ) = @_;
135
2
14
    my $arch = (POSIX::uname)[ $IDX4 ];
136
2
13
    my $os   = (POSIX::uname)[ 0 ];
137
2
6
    my $rv2  = $self->getVersion();
138
2
4
    my $mods = q{};
139
2
10
    if ( defined $modules && length($modules) > 0 ) {
140
1
1
2
4
        $mods = q{ } . join q{ }, @{$modules};
134
2
1
830
    my ( $self, $str, $rv, $modules ) = @_;
135
2
7
    my $arch = (POSIX::uname)[ $IDX4 ];
136
2
8
    my $os   = (POSIX::uname)[ 0 ];
137
2
3
    my $rv2  = $self->getVersion();
138
2
2
    my $mods = q{};
139
2
6
    if ( defined $modules && length($modules) > 0 ) {
140
1
1
1
2
        $mods = q{ } . join q{ }, @{$modules};
141    }
142
2
16
    $self->{ua} = "$str ($os; $arch; rv:$rv)$mods perl-sdk/$rv2 perl/$Config{version}";
143
2
10
    return $self;
142
2
10
    $self->{ua} = "$str ($os; $arch; rv:$rv)$mods perl-sdk/$rv2 perl/$Config{version}";
143
2
6
    return $self;
144}
145
146
147sub getProxy {
148
19
1
33
    my ($self) = @_;
149
19
33
    if ( exists $self->{curlopts}->{'PROXY'} ) {
150
1
4
        return $self->{curlopts}->{'PROXY'};
149
19
42
    if ( exists $self->{curlopts}->{'PROXY'} ) {
150
1
1
        return $self->{curlopts}->{'PROXY'};
151    }
152
18
21
    return;
152
18
26
    return;
153}
154
155
156sub setProxy {
157
2
1
5
    my ( $self, $proxy ) = @_;
158
2
6
    if ( length($proxy) == 0 ) {
159
1
2
        delete $self->{curlopts}->{'PROXY'};
157
2
1
2
    my ( $self, $proxy ) = @_;
158
2
4
    if ( length($proxy) == 0 ) {
159
1
1
        delete $self->{curlopts}->{'PROXY'};
160    } else {
161
1
3
        $self->{curlopts}->{'PROXY'} = $proxy;
161
1
2
        $self->{curlopts}->{'PROXY'} = $proxy;
162    }
163
2
3
    return $self;
163
2
2
    return $self;
164}
165
166
167sub getReferer {
168
19
1
38
    my ($self) = @_;
169
19
41
    if ( exists $self->{curlopts}->{'REFERER'} ) {
170
1
4
        return $self->{curlopts}->{'REFERER'};
168
19
1
34
    my ($self) = @_;
169
19
45
    if ( exists $self->{curlopts}->{'REFERER'} ) {
170
1
2
        return $self->{curlopts}->{'REFERER'};
171    }
172
18
24
    return;
172
18
41
    return;
173}
174
175
176sub setReferer {
177
2
1
389
    my ( $self, $referer ) = @_;
178
2
5
    if ( length($referer) == 0 ) {
179
1
2
        delete $self->{curlopts}->{'REFERER'};
177
2
1
333
    my ( $self, $referer ) = @_;
178
2
4
    if ( length($referer) == 0 ) {
179
1
1
        delete $self->{curlopts}->{'REFERER'};
180    } else {
181
1
3
        $self->{curlopts}->{'REFERER'} = $referer;
181
1
1
        $self->{curlopts}->{'REFERER'} = $referer;
182    }
183
2
4
    return $self;
183
2
2
    return $self;
184}
185
186
187sub getVersion {
188
4
1
16
    my $self = shift;
189
4
10
    return $VERSION;
188
4
1
12
    my $self = shift;
189
4
6
    return $VERSION;
190}
191
192
193sub saveSession {
194
1
1
6
    my ( $self, $session ) = @_;
194
1
1
3
    my ( $self, $session ) = @_;
195    $session->{socketcfg} = {
196        entity  => $self->{socketConfig}->getSystemEntity(),
197        session => $self->{socketConfig}->getSession()
198
1
3
    };
198
1
2
    };
199
1
2
    return $self;
200}
201
202
203sub reuseSession {
207
1
1
    return $self;
208}
209
210
211sub setURL {
212
8
1
338
    my ( $self, $value ) = @_;
213
8
34
    $self->{socketURL} = $value;
212
8
1
300
    my ( $self, $value ) = @_;
213
8
24
    $self->{socketURL} = $value;
214
8
12
    return $self;
215}
216
217
218sub setOTP {
219
7
1
378
    my ( $self, $value ) = @_;
220
7
25
    $self->{socketConfig}->setOTP($value);
221
7
11
    return $self;
219
7
1
416
    my ( $self, $value ) = @_;
220
7
21
    $self->{socketConfig}->setOTP($value);
221
7
7
    return $self;
222}
223
224
225sub setSession {
226
12
1
2103
    my ( $self, $value ) = @_;
227
12
37
    $self->{socketConfig}->setSession($value);
228
12
13
    return $self;
226
12
1
2053
    my ( $self, $value ) = @_;
227
12
32
    $self->{socketConfig}->setSession($value);
228
12
14
    return $self;
229}
230
231
232sub setRemoteIPAddress {
233
3
1
375
    my ( $self, $value ) = @_;
234
3
8
    $self->{socketConfig}->setRemoteAddress($value);
235
3
4
    return $self;
233
3
1
313
    my ( $self, $value ) = @_;
234
3
6
    $self->{socketConfig}->setRemoteAddress($value);
235
3
2
    return $self;
236}
237
238
239sub setCredentials {
240
11
1
1120
    my ( $self, $uid, $pw ) = @_;
241
11
38
    $self->{socketConfig}->setLogin($uid);
242
11
25
    $self->{socketConfig}->setPassword($pw);
243
11
59
    return $self;
240
11
1
1063
    my ( $self, $uid, $pw ) = @_;
241
11
32
    $self->{socketConfig}->setLogin($uid);
242
11
22
    $self->{socketConfig}->setPassword($pw);
243
11
15
    return $self;
244}
245
246
247sub setRoleCredentials {
248
3
1
1093
    my ( $self, $uid, $role, $pw ) = @_;
249
3
6
    my $myuid = "${uid}!${role}";
250
3
8
    $myuid =~ s/^\!$//msx;
248
3
1
1117
    my ( $self, $uid, $role, $pw ) = @_;
249
3
3
    my $myuid = "${uid}!${role}";
250
3
6
    $myuid =~ s/^\!$//msx;
251
3
6
    return $self->setCredentials( $myuid, $pw );
252}
253
254
255sub login {
256
3
1
9
    my $self = shift;
257
3
6
    my $otp  = shift;
258
3
17
    $self->setOTP( $otp || q{} );
259
3
11
    my $rr = $self->request( { COMMAND => 'StartSession' } );
260
3
12
    if ( $rr->isSuccess() ) {
256
3
1
10
    my $self = shift;
257
3
5
    my $otp  = shift;
258
3
16
    $self->setOTP( $otp || q{} );
259
3
12
    my $rr = $self->request( { COMMAND => 'StartSession' } );
260
3
13
    if ( $rr->isSuccess() ) {
261
1
2
        my $col    = $rr->getColumn('SESSION');
262
1
1
        my $sessid = q{};
262
1
2
        my $sessid = q{};
263
1
2
        if ( defined $col ) {
264
1
3
            my @d = $col->getData();
265
1
1
            $sessid = $d[ 0 ];
265
1
2
            $sessid = $d[ 0 ];
266        }
267
1
3
        $self->setSession($sessid);
268    }
269
3
35
    return $rr;
269
3
36
    return $rr;
270}
271
272
273sub loginExtended {
274
1
1
2
    my $self   = shift;
274
1
1
4
    my $self   = shift;
275
1
2
    my $params = shift;
276
1
2
    my $otpc   = shift;
277
1
13
    if ( !defined $otpc ) {
278
1
2
        $otpc = q{};
277
1
15
    if ( !defined $otpc ) {
278
1
3
        $otpc = q{};
279    }
280
1
3
    $self->setOTP($otpc);
281
1
2
    my $cmd = { COMMAND => 'StartSession' };
282
1
1
2
3
    foreach my $key ( keys %{$params} ) {
283
1
3
        $cmd->{$key} = $params->{$key};
280
1
4
    $self->setOTP($otpc);
281
1
4
    my $cmd = { COMMAND => 'StartSession' };
282
1
1
2
5
    foreach my $key ( keys %{$params} ) {
283
1
4
        $cmd->{$key} = $params->{$key};
284    }
285
1
3
    my $rr = $self->request($cmd);
286
1
4
    if ( $rr->isSuccess() ) {
287
1
3
        my $col    = $rr->getColumn('SESSION');
288
1
1
        my $sessid = q{};
285
1
5
    my $rr = $self->request($cmd);
286
1
3
    if ( $rr->isSuccess() ) {
287
1
2
        my $col    = $rr->getColumn('SESSION');
288
1
2
        my $sessid = q{};
289
1
2
        if ( defined $col ) {
290
1
3
            my @d = $col->getData();
291
1
1
            $sessid = $d[ 0 ];
290
1
4
            my @d = $col->getData();
291
1
2
            $sessid = $d[ 0 ];
292        }
293
1
4
        $self->setSession($sessid);
293
1
3
        $self->setSession($sessid);
294    }
295
1
7
    return $rr;
295
1
5
    return $rr;
296}
297
298
299sub logout {
300
2
1
3
    my $self = shift;
301
2
10
    my $rr   = $self->request( { COMMAND => 'EndSession' } );
302
2
8
    if ( $rr->isSuccess() ) {
303
1
3
        $self->setSession(q{});
301
2
9
    my $rr   = $self->request( { COMMAND => 'EndSession' } );
302
2
9
    if ( $rr->isSuccess() ) {
303
1
5
        $self->setSession(q{});
304    }
305
2
17
    return $rr;
305
2
19
    return $rr;
306}
307
308
309sub request {
310
17
1
51
    my ( $self, $cmd ) = @_;
310
17
1
36
    my ( $self, $cmd ) = @_;
311    # flatten nested api command bulk parameters
312
17
50
    my $newcmd = $self->_flattenCommand($cmd);
312
17
47
    my $newcmd = $self->_flattenCommand($cmd);
313    # auto convert umlaut names to punycode
314
17
38
    $newcmd = $self->_autoIDNConvert($newcmd);
314
17
40
    $newcmd = $self->_autoIDNConvert($newcmd);
315
316    # request command to API
317
17
44
    my $cfg     = { CONNECTION_URL => $self->{socketURL} };
318
17
44
    my $post    = $self->getPOSTData($newcmd);
319
17
29
    my $secured = $self->getPOSTData( $newcmd, 1 );
320
321
17
110
    my $ua = LWP::UserAgent->new();
322
17
4411
    $ua->agent( $self->getUserAgent() );
323
17
539
    $ua->default_header( 'Expect', q{} );
324
17
408
    $ua->timeout($SOCKETTIMEOUT);
325
17
234
    my $referer = $self->getReferer();
326
17
32
    if ($referer) {
317
17
54
    my $cfg     = { CONNECTION_URL => $self->{socketURL} };
318
17
45
    my $post    = $self->getPOSTData($newcmd);
319
17
31
    my $secured = $self->getPOSTData( $newcmd, 1 );
320
321
17
91
    my $ua = LWP::UserAgent->new();
322
17
4907
    $ua->agent( $self->getUserAgent() );
323
17
597
    $ua->default_header( 'Expect', q{} );
324
17
464
    $ua->timeout($SOCKETTIMEOUT);
325
17
228
    my $referer = $self->getReferer();
326
17
28
    if ($referer) {
327
0
0
        $ua->default_header( 'Referer', $referer );
328    }
329
17
63
    my $proxy = $self->getProxy();
330
17
26
    if ($proxy) {
329
17
47
    my $proxy = $self->getProxy();
330
17
27
    if ($proxy) {
331
0
0
        $ua->proxy( [ 'http', 'https' ], $proxy );
332    }
333
334
17
65
    my $r = $ua->post( $cfg->{CONNECTION_URL}, $post );
335
17
10929975
    if ( $r->is_success ) {
336
16
155
        $r = WebService::Hexonet::Connector::Response->new( $r->decoded_content, $newcmd, $cfg );
337
16
53
        if ( $self->{debugMode} ) {
338
2
9
            $self->{logger}->log( $secured, $r );
333
334
17
59
    my $r = $ua->post( $cfg->{CONNECTION_URL}, $post );
335
17
13991152
    if ( $r->is_success ) {
336
16
242
        $r = WebService::Hexonet::Connector::Response->new( $r->decoded_content, $newcmd, $cfg );
337
16
61
        if ( $self->{debugMode} ) {
338
2
11
            $self->{logger}->log( $secured, $r );
339        }
340    } else {
341
1
11
        $r = WebService::Hexonet::Connector::Response->new( $rtm->getTemplate('httperror')->getPlain(), $newcmd, $cfg );
342
1
4
        if ( $self->{debugMode} ) {
341
1
15
        $r = WebService::Hexonet::Connector::Response->new( $rtm->getTemplate('httperror')->getPlain(), $newcmd, $cfg );
342
1
8
        if ( $self->{debugMode} ) {
343
0
0
            $self->{logger}->log( $secured, $r, $r->status_line );
344        }
345    }
346
17
378
    return $r;
346
17
469
    return $r;
347}
348
349
350sub requestNextResponsePage {
351
6
1
17
    my ( $self, $rr ) = @_;
352
6
12
    my $mycmd = $rr->getCommand();
353
6
16
    if ( defined $mycmd->{LAST} ) {
351
6
1
15
    my ( $self, $rr ) = @_;
352
6
17
    my $mycmd = $rr->getCommand();
353
6
15
    if ( defined $mycmd->{LAST} ) {
354
0
0
        croak 'Parameter LAST in use! Please remove it to avoid issues in requestNextPage.';
355    }
356
6
7
    my $first = 0;
357
6
13
    if ( defined $mycmd->{FIRST} ) {
358
5
9
        $first = $mycmd->{FIRST};
356
6
8
    my $first = 0;
357
6
30
    if ( defined $mycmd->{FIRST} ) {
358
5
5
        $first = $mycmd->{FIRST};
359    }
360
6
15
    my $total = $rr->getRecordsTotalCount();
361
6
14
    my $limit = $rr->getRecordsLimitation();
362
6
7
    $first += $limit;
363
6
16
    if ( $first < $total ) {
364
5
8
        $mycmd->{FIRST} = $first;
361
6
15
    my $limit = $rr->getRecordsLimitation();
362
6
11
    $first += $limit;
363
6
12
    if ( $first < $total ) {
364
5
5
        $mycmd->{FIRST} = $first;
365
5
5
        $mycmd->{LIMIT} = $limit;
366
5
11
        return $self->request($mycmd);
366
5
9
        return $self->request($mycmd);
367    }
368
1
2
    return;
369}
370
371
372sub requestAllResponsePages {
373
1
1
8
    my ( $self, $cmd ) = @_;
374
1
3
    my @responses = ();
373
1
1
5
    my ( $self, $cmd ) = @_;
374
1
2
    my @responses = ();
375
1
1
    my $command   = {};
376
1
1
2
4
    foreach my $key ( keys %{$cmd} ) {
377
3
5
        $command->{$key} = $cmd->{$key};
376
1
1
2
2
    foreach my $key ( keys %{$cmd} ) {
377
3
4
        $command->{$key} = $cmd->{$key};
378    }
379
1
3
    $command->{FIRST} = 0;
380
1
4
    my $rr  = $self->request($command);
381
1
2
    my $tmp = $rr;
382
1
1
    my $idx = 0;
383
1
3
    while ( defined $tmp ) {
384
4
7
        push @responses, $tmp;
379
1
1
    $command->{FIRST} = 0;
380
1
3
    my $rr  = $self->request($command);
381
1
1
    my $tmp = $rr;
382
1
3
    my $idx = 0;
383
1
2
    while ( defined $tmp ) {
384
4
6
        push @responses, $tmp;
385
4
13
        $tmp = $self->requestNextResponsePage($tmp);
386    }
387
1
21
    return \@responses;
387
1
19
    return \@responses;
388}
389
390
391sub setUserView {
392
1
1
615
    my ( $self, $uid ) = @_;
393
1
14
    $self->{socketConfig}->setUser($uid);
394
1
1
    return $self;
392
1
1
572
    my ( $self, $uid ) = @_;
393
1
5
    $self->{socketConfig}->setUser($uid);
394
1
2
    return $self;
395}
396
397
398sub resetUserView {
399
1
1
2
    my $self = shift;
399
1
1
1
    my $self = shift;
400
1
6
    $self->{socketConfig}->setUser(q{});
401
1
1
    return $self;
402}
403
404
405sub useDefaultConnectionSetup {
406
1
1
389
    my $self = shift;
407
1
4
    return $self->setURL($ISPAPI_CONNECTION_URL);
406
1
1
372
    my $self = shift;
407
1
2
    return $self->setURL($ISPAPI_CONNECTION_URL);
408}
409
410
411sub useHighPerformanceConnectionSetup {
412
1
1
385
    my $self = shift;
413
1
3
    return $self->setURL($ISPAPI_CONNECTION_URL_PROXY);
412
1
1
386
    my $self = shift;
413
1
2
    return $self->setURL($ISPAPI_CONNECTION_URL_PROXY);
414}
415
416
417sub useOTESystem {
418
1
0
363
    my $self = shift;
419
1
4
    $self->{socketConfig}->setSystemEntity('1234');
420
1
2
    return $self;
418
1
0
366
    my $self = shift;
419
1
3
    $self->{socketConfig}->setSystemEntity('1234');
420
1
1
    return $self;
421}
422
423
424sub useLIVESystem {
425
2
1
2
    my $self = shift;
426
2
7
    $self->{socketConfig}->setSystemEntity('54cd');
427
2
3
    return $self;
425
2
1
3
    my $self = shift;
426
2
4
    $self->{socketConfig}->setSystemEntity('54cd');
427
2
2
    return $self;
428}
429
430
431sub _flattenCommand {
432
17
35
    my ( $self, $cmd ) = @_;
433
17
17
27
47
    for my $key ( keys %{$cmd} ) {
434
34
44
        my $newkey = uc $key;
435
34
51
        if ( $newkey ne $key ) {
436
1
1
            $cmd->{$newkey} = delete $cmd->{$key};
432
17
29
    my ( $self, $cmd ) = @_;
433
17
17
21
47
    for my $key ( keys %{$cmd} ) {
434
34
40
        my $newkey = uc $key;
435
34
52
        if ( $newkey ne $key ) {
436
1
2
            $cmd->{$newkey} = delete $cmd->{$key};
437        }
438
34
65
        if ( ref( $cmd->{$newkey} ) eq 'ARRAY' ) {
439
3
3
6
5
            my @val = @{ $cmd->{$newkey} };
440
3
4
            my $idx = 0;
441
3
6
            for my $str (@val) {
442
6
10
                $str =~ s/[\r\n]//gmsx;
443
6
13
                $cmd->{"${key}${idx}"} = $str;
444
6
7
                $idx++;
438
34
67
        if ( ref( $cmd->{$newkey} ) eq 'ARRAY' ) {
439
3
3
4
5
            my @val = @{ $cmd->{$newkey} };
440
3
6
            my $idx = 0;
441
3
5
            for my $str (@val) {
442
6
6
                $str =~ s/[\r\n]//gmsx;
443
6
12
                $cmd->{"${key}${idx}"} = $str;
444
6
9
                $idx++;
445            }
446
3
5
            delete $cmd->{$newkey};
447        }
448    }
449
17
27
    return $cmd;
449
17
31
    return $cmd;
450}
451
452
453sub _autoIDNConvert {
454
17
28
    my ( $self, $cmd ) = @_;
455
17
67
    if ( $cmd->{'COMMAND'} =~ /^CONVERTIDN$/imsx ) {
454
17
31
    my ( $self, $cmd ) = @_;
455
17
52
    if ( $cmd->{'COMMAND'} =~ /^CONVERTIDN$/imsx ) {
456
1
2
        return $cmd;
457    }
458
16
34
16
20
91
26
    my @keys = grep {/^(DOMAIN|NAMESERVER|DNSZONE)(\d*)$/imsx} keys %{$cmd};
459
16
35
    if ( scalar @keys == 0 ) {
460
14
18
        return $cmd;
458
16
34
16
27
93
36
    my @keys = grep {/^(DOMAIN|NAMESERVER|DNSZONE)(\d*)$/imsx} keys %{$cmd};
459
16
42
    if ( scalar @keys == 0 ) {
460
14
22
        return $cmd;
461    }
462
2
3
    my @toconvert = ();
462
2
5
    my @toconvert = ();
463
2
3
    my @idxs      = ();
464
2
4
    foreach my $key (@keys) {
465
5
5
        my $val = $cmd->{$key};
466
5
10
        if ( $val =~ /[^[:lower:]\d. -]/imsx ) {
464
2
5
    foreach my $key (@keys) {
465
5
6
        my $val = $cmd->{$key};
466
5
13
        if ( $val =~ /[^[:lower:]\d. -]/imsx ) {
467
1
2
            push @toconvert, $val;
468
1
2
            push @idxs,      $key;
468
1
1
            push @idxs,      $key;
469        }
470    }
471
2
5
    if ( scalar @toconvert == 0 ) {
471
2
6
    if ( scalar @toconvert == 0 ) {
472
1
3
        return $cmd;
473    }
474
1
6
    my $r = $self->request(
474
1
5
    my $r = $self->request(
475        {   COMMAND => 'ConvertIDN',
476            DOMAIN  => \@toconvert
477        }
478    );
479
1
3
    if ( $r->isSuccess() ) {
479
1
5
    if ( $r->isSuccess() ) {
480
1
2
        my $col = $r->getColumn('ACE');
481
1
2
        if ($col) {
482
1
2
            my $data = $col->getData();
483
1
1
            my $idx  = 0;
484
1
1
1
2
            foreach my $pc ( @{$data} ) {
484
1
1
2
1
            foreach my $pc ( @{$data} ) {
485
1
3
                $cmd->{ $idxs[ $idx ] } = $pc;
486
1
2
                $idx++;
487            }
488        }
489    }
490
1
5
    return $cmd;
490
1
8
    return $cmd;
491}
492
4931;
494
diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-Column-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-Column-pm.html index 72374ae..9268ed7 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-Column-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-Column-pm.html @@ -26,37 +26,37 @@

File Coverage

- - - - + + + + - - - - - - + + + + + + - - + + - + - - - + + + - + - - - + + +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::Column;
2
3
1
1
5
2
use 5.030;
4
1
1
1
1
1
6
use strict;
5
1
1
1
1
1
16
use warnings;
6
7
1
1
1
1
5
2
use version 0.9917; our $VERSION = version->declare('v2.10.0');
2
3
1
1
8
1
use 5.030;
4
1
1
1
2
1
9
use strict;
5
1
1
1
3
1
23
use warnings;
6
7
1
1
1
3
6
3
use version 0.9917; our $VERSION = version->declare('v2.10.1');
8
9
10sub new {
11
153
1
1513
    my ( $class, $key, @data ) = @_;
12
153
123
    my $self = {};
13
153
152
    $self->{key} = $key;
14
153
153
107
366
    @{ $self->{data} } = @data;
15
153
138
    $self->{length} = scalar @data;
16
153
240
    return bless $self, $class;
11
155
1
1512
    my ( $class, $key, @data ) = @_;
12
155
144
    my $self = {};
13
155
196
    $self->{key} = $key;
14
155
155
135
424
    @{ $self->{data} } = @data;
15
155
157
    $self->{length} = scalar @data;
16
155
274
    return bless $self, $class;
17}
18
19
20sub getKey {
21
1
1
331
    my $self = shift;
22
1
6
    return $self->{key};
21
1
1
362
    my $self = shift;
22
1
5
    return $self->{key};
23}
24
25
26sub getData {
27
3
1
4
    my $self = shift;
28
3
5
    return $self->{data};
28
3
4
    return $self->{data};
29}
30
31
32sub getDataByIndex {
33
19735
1
12199
    my $self = shift;
34
19735
12080
    my $idx  = shift;
35
19735
15567
    return $self->{data}[ $idx ]
33
22080
1
14427
    my $self = shift;
34
22080
13381
    my $idx  = shift;
35
22080
16662
    return $self->{data}[ $idx ]
36        if $self->hasDataIndex($idx);
37
16245
12047
    return;
37
18196
14327
    return;
38}
39
40
41sub hasDataIndex {
42
19735
1
12060
    my $self = shift;
43
19735
11753
    my $idx  = shift;
44
19735
19186
    return $idx < $self->{length};
42
22080
1
13575
    my $self = shift;
43
22080
13759
    my $idx  = shift;
44
22080
22631
    return $idx < $self->{length};
45}
46
471;
48
diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-Logger-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-Logger-pm.html index 90fba14..94b5983 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-Logger-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-Logger-pm.html @@ -26,28 +26,28 @@

File Coverage

- - - - - + + + + + - - + + - - + + - - - + + + - +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::Logger;
2
3
1
1
8
2
use 5.030;
4
1
1
1
1
1
7
use strict;
5
1
1
1
1
3
15
use warnings;
6
1
1
1
202
2919
32
use Data::Dumper;
7
8
1
1
1
3
9
4
use version 0.9917; our $VERSION = version->declare('v2.10.0');
2
3
1
1
7
1
use 5.030;
4
1
1
1
1
1
12
use strict;
5
1
1
1
2
1
18
use warnings;
6
1
1
1
205
3458
33
use Data::Dumper;
7
8
1
1
1
4
9
3
use version 0.9917; our $VERSION = version->declare('v2.10.1');
9
10
11sub new {
12
4
1
7
    my ($class) = @_;
13
4
14
    return bless {}, $class;
12
4
1
4
    my ($class) = @_;
13
4
9
    return bless {}, $class;
14}
15
16
17sub log {
18
2
1
4
    my ( $self, $post, $r, $error ) = @_;
19
2
3
    if ( defined $error ) {
18
2
1
5
    my ( $self, $post, $r, $error ) = @_;
19
2
5
    if ( defined $error ) {
20
0
0
0
0
        print {*STDERR} Dumper($post);
21
0
0
0
0
        print {*STDERR} 'HTTP communication failed: ' . $error;
22
0
0
0
0
        print {*STDERR} Dumper( $r->getCommandPlain() );
23
0
0
0
0
        print {*STDERR} Dumper( $r->getPlain() );
24    } else {
25
2
2
3
9
        print {*STDOUT} Dumper($post);
26
2
2
483
13
        print {*STDOUT} Dumper( $r->getCommandPlain() );
27
2
2
82
12
        print {*STDOUT} Dumper( $r->getPlain() );
25
2
2
5
11
        print {*STDOUT} Dumper($post);
26
2
2
539
10
        print {*STDOUT} Dumper( $r->getCommandPlain() );
27
2
2
76
12
        print {*STDOUT} Dumper( $r->getPlain() );
28    }
29
2
68
    return $self->{data};
29
2
72
    return $self->{data};
30}
31
321;
33
diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-Record-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-Record-pm.html index 96cf4a0..64fe54c 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-Record-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-Record-pm.html @@ -26,29 +26,29 @@

File Coverage

- - - - + + + + - - + + - - + + - - - + + + - + - - + +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::Record;
2
3
1
1
6
1
use 5.030;
4
1
1
1
2
1
6
use strict;
5
1
1
1
2
1
19
use warnings;
6
7
1
1
1
1
5
3
use version 0.9917; our $VERSION = version->declare('v2.10.0');
2
3
1
1
9
1
use 5.030;
4
1
1
1
2
1
12
use strict;
5
1
1
1
2
1
22
use warnings;
6
7
1
1
1
3
9
4
use version 0.9917; our $VERSION = version->declare('v2.10.1');
8
9
10sub new {
11
3287
1
2459
    my ( $class, $data ) = @_;
12
3287
3513
    return bless { data => $data }, $class;
11
3677
1
3088
    my ( $class, $data ) = @_;
12
3677
4029
    return bless { data => $data }, $class;
13}
14
15
16sub getData {
17
6
1
330
    my $self = shift;
18
6
18
    return $self->{data};
17
6
1
290
    my $self = shift;
18
6
15
    return $self->{data};
19}
20
21
22sub getDataByKey {
23
3
1
643
    my $self = shift;
24
3
6
    my $key  = shift;
25
3
9
    return $self->{data}->{$key}
23
3
1
512
    my $self = shift;
24
3
4
    my $key  = shift;
25
3
8
    return $self->{data}->{$key}
26        if $self->hasData($key);
27
1
3
    return;
27
1
2
    return;
28}
29
30
31sub hasData {
32
3
1
4
    my $self = shift;
33
3
5
    my $key  = shift;
34
3
16
    return defined $self->{data}->{$key};
33
3
3
    my $key  = shift;
34
3
13
    return defined $self->{data}->{$key};
35}
36
371;
38
diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-Response-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-Response-pm.html index c856897..42bff6b 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-Response-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-Response-pm.html @@ -26,90 +26,90 @@

File Coverage

- - + + - - - - - - + + + + + + - + - - + + - - - + + + - - + + - - + + - - - + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - + - - - - + + + + - - - + + + - - - - + + + + - + @@ -118,71 +118,71 @@

File Coverage

- - + + - + - - + + - + - - - + + + - - - - - + + + + + - + - - + + - + - - - + + + - + - + - - + + - - - + + + - + - + @@ -197,34 +197,34 @@

File Coverage

- - + + - + - - + + - + - - - + + + - + - - + + - + - - + + @@ -238,79 +238,79 @@

File Coverage

- - - - + + + + - - - + + + - - + + - + - - - + + + - + - - + + - - - - - - + + + + + + - + - - - - + + + + - + - + - - + + - - + + - - - + + + - + @@ -318,27 +318,27 @@

File Coverage

- + - - - + + + - - - + + + - - - - + + + + - +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::Response;
2
3
1
1
9
1
use 5.030;
4
1
1
1
1
1
8
use strict;
2
3
1
1
7
1
use 5.030;
4
1
1
1
2
1
9
use strict;
5
1
1
1
1
1
19
use warnings;
6
1
1
1
233
1
12
use WebService::Hexonet::Connector::Column;
7
1
1
1
231
1
13
use WebService::Hexonet::Connector::Record;
8
1
1
1
116
103
2
use parent qw(WebService::Hexonet::Connector::ResponseTemplate);
9
1
1
1
18
1
4
use POSIX qw(ceil floor);
10
1
1
1
465
5169
6
use List::MoreUtils qw(first_index);
11
1
1
1
551
1
35
use Readonly;
6
1
1
1
352
1
19
use WebService::Hexonet::Connector::Column;
7
1
1
1
342
2
23
use WebService::Hexonet::Connector::Record;
8
1
1
1
189
136
2
use parent qw(WebService::Hexonet::Connector::ResponseTemplate);
9
1
1
1
20
1
3
use POSIX qw(ceil floor);
10
1
1
1
296
5581
3
use List::MoreUtils qw(first_index);
11
1
1
1
600
1
49
use Readonly;
12Readonly my $INDEX_NOT_FOUND => -1;
13
14
1
1
1
14
7
3
use version 0.9917; our $VERSION = version->declare('v2.10.0');
13
14
1
1
1
3
8
3
use version 0.9917; our $VERSION = version->declare('v2.10.1');
15
16
17sub new {
18
49
1
11607
    my ( $class, $raw, $cmd, $ph ) = @_;
19
49
147
    my $self = WebService::Hexonet::Connector::ResponseTemplate->new($raw);
18
49
1
23021
    my ( $class, $raw, $cmd, $ph ) = @_;
19
49
172
    my $self = WebService::Hexonet::Connector::ResponseTemplate->new($raw);
20    # care about getting placeholder variables replaced
21
49
115
    if ( $self->{raw} =~ /[{][[:upper:]_]+[}]/gsmx ) {
22
4
7
        if ( !defined $ph ) {
23
3
4
            $ph = {};
21
49
140
    if ( $self->{raw} =~ /[{][[:upper:]_]+[}]/gsmx ) {
22
4
6
        if ( !defined $ph ) {
23
3
3
            $ph = {};
24        }
25
4
4
4
6
        foreach my $key ( keys %{$ph} ) {
26
1
1
            my $find    = "[{]${key}[}]";
27
1
2
            my $replace = $ph->{$key};
28
1
14
            $self->{raw} =~ s/$find/$replace/gsmx;
27
1
1
            my $replace = $ph->{$key};
28
1
31
            $self->{raw} =~ s/$find/$replace/gsmx;
29        }
30
4
8
        $self->{raw} =~ s/[{][[:upper:]_]+[}]//gsmx;
31
4
5
        $self = WebService::Hexonet::Connector::ResponseTemplate->new( $self->{raw} );
30
4
9
        $self->{raw} =~ s/[{][[:upper:]_]+[}]//gsmx;
31
4
8
        $self = WebService::Hexonet::Connector::ResponseTemplate->new( $self->{raw} );
32    }
33
49
57
    $self = bless $self, $class;
34
49
61
    $self->{command} = $cmd;
35
49
73
    if ( defined $self->{command}->{PASSWORD} ) {
33
49
72
    $self = bless $self, $class;
34
49
82
    $self->{command} = $cmd;
35
49
104
    if ( defined $self->{command}->{PASSWORD} ) {
36        # make password no longer accessible
37
1
1
        $self->{command}->{PASSWORD} = '***';
37
1
2
        $self->{command}->{PASSWORD} = '***';
38    }
39
49
54
    $self->{columnkeys}  = [];
40
49
56
    $self->{columns}     = [];
41
49
67
    $self->{records}     = [];
42
49
60
    $self->{recordIndex} = 0;
43
44
49
87
    my $h = $self->getHash();
45
49
68
    if ( defined $h->{PROPERTY} ) {
46
32
32
25
84
        my @keys  = keys %{ $h->{PROPERTY} };
47
32
35
        my $count = 0;
48
32
46
        foreach my $key (@keys) {
49
152
152
120
368
            my @d = @{ $h->{PROPERTY}->{$key} };
50
152
243
            $self->addColumn( $key, @d );
51
152
104
            my $len = scalar @d;
52
152
170
            if ( $len > $count ) {
53
55
100
                $count = $len;
39
49
76
    $self->{columnkeys}  = [];
40
49
77
    $self->{columns}     = [];
41
49
73
    $self->{records}     = [];
42
49
67
    $self->{recordIndex} = 0;
43
44
49
95
    my $h = $self->getHash();
45
49
92
    if ( defined $h->{PROPERTY} ) {
46
32
32
38
92
        my @keys  = keys %{ $h->{PROPERTY} };
47
32
48
        my $count = 0;
48
32
54
        foreach my $key (@keys) {
49
154
154
112
370
            my @d = @{ $h->{PROPERTY}->{$key} };
50
154
238
            $self->addColumn( $key, @d );
51
154
140
            my $len = scalar @d;
52
154
205
            if ( $len > $count ) {
53
53
140
                $count = $len;
54            }
55        }
56
32
29
        $count--;
57
32
45
        for my $i ( 0 .. $count ) {
58
3286
2121
            my %d = ();
59
3286
2157
            foreach my $colkey (@keys) {
60
19654
14961
                my $col = $self->getColumn($colkey);
61
19654
15707
                if ( defined $col ) {
62
19654
15852
                    my $v = $col->getDataByIndex($i);
63
19654
17492
                    if ( defined $v ) {
64
3409
3212
                        $d{$colkey} = $v;
56
32
31
        $count--;
57
32
49
        for my $i ( 0 .. $count ) {
58
3676
2564
            my %d = ();
59
3676
2482
            foreach my $colkey (@keys) {
60
21999
16351
                my $col = $self->getColumn($colkey);
61
21999
19477
                if ( defined $col ) {
62
21999
18408
                    my $v = $col->getDataByIndex($i);
63
21999
19933
                    if ( defined $v ) {
64
3803
3558
                        $d{$colkey} = $v;
65                    }
66                }
67            }
68
3286
2552
            $self->addRecord( \%d );
68
3676
2991
            $self->addRecord( \%d );
69        }
70    }
71
49
379
    return $self;
71
49
411
    return $self;
72}
73
74
75sub addColumn {
76
152
1
315
    my ( $self, $key, @data ) = @_;
77
152
152
105
252
    push @{ $self->{columns} },    WebService::Hexonet::Connector::Column->new( $key, @data );
78
152
152
110
131
    push @{ $self->{columnkeys} }, $key;
79
152
178
    return $self;
76
154
1
428
    my ( $self, $key, @data ) = @_;
77
154
154
139
305
    push @{ $self->{columns} },    WebService::Hexonet::Connector::Column->new( $key, @data );
78
154
154
147
188
    push @{ $self->{columnkeys} }, $key;
79
154
255
    return $self;
80}
81
82
83sub addRecord {
84
3286
1
2369
    my ( $self, $h ) = @_;
85
3286
3286
2087
3111
    push @{ $self->{records} }, WebService::Hexonet::Connector::Record->new($h);
86
3286
2639
    return $self;
84
3676
1
2747
    my ( $self, $h ) = @_;
85
3676
3676
2332
3619
    push @{ $self->{records} }, WebService::Hexonet::Connector::Record->new($h);
86
3676
3135
    return $self;
87}
88
89
90sub getColumn {
91
19755
1
14913
    my ( $self, $key ) = @_;
92
19755
16210
    if ( $self->_hasColumn($key) ) {
93
19738
69027
19738
45463
42517
16847
        my $idx = first_index { $_ eq $key } @{ $self->{columnkeys} };
94
19738
19358
        return $self->{columns}[ $idx ];
91
22100
1
16367
    my ( $self, $key ) = @_;
92
22100
16809
    if ( $self->_hasColumn($key) ) {
93
22083
77201
22083
56083
47279
19153
        my $idx = first_index { $_ eq $key } @{ $self->{columnkeys} };
94
22083
24085
        return $self->{columns}[ $idx ];
95    }
96
17
49
    return;
96
17
51
    return;
97}
98
99
100sub getColumnIndex {
101
2
1
5
    my ( $self, $key, $idx ) = @_;
104
1
1
    return;
105}
106
107
108sub getColumnKeys {
109
3
1
325
    my $self = shift;
110
3
3
5
6
    return \@{ $self->{columnkeys} };
109
3
1
330
    my $self = shift;
110
3
3
3
6
    return \@{ $self->{columnkeys} };
111}
112
113
114sub getColumns {
115
1
0
3
    my $self = shift;
116
1
1
1
1
    return \@{ $self->{columns} };
116
1
1
2
1
    return \@{ $self->{columns} };
117}
118
119
120sub getCommand {
121
8
1
22
    my $self = shift;
122
8
20
    return $self->{command};
121
8
1
32
    my $self = shift;
122
8
22
    return $self->{command};
123}
124
125
126sub getCommandPlain {
127
4
1
12
    my $self = shift;
127
4
1
11
    my $self = shift;
128
4
7
    my $str  = q{};
129
4
4
4
16
    foreach my $key ( sort keys %{ $self->{command} } ) {
130
10
12
        my $val = $self->{command}->{$key};
131
10
15
        $str .= "${key} = ${val}\n";
129
4
4
5
16
    foreach my $key ( sort keys %{ $self->{command} } ) {
130
10
14
        my $val = $self->{command}->{$key};
131
10
19
        $str .= "${key} = ${val}\n";
132    }
133
4
10
    return $str;
134}
135
136
137sub getCurrentPageNumber {
138
19
1
17
    my $self  = shift;
139
19
24
    my $first = $self->getFirstRecordIndex();
140
19
21
    my $limit = $self->getRecordsLimitation();
141
19
33
    if ( defined $first && $limit > 0 ) {
142
14
38
        return floor( $first / $limit ) + 1;
138
19
1
20
    my $self  = shift;
139
19
16
    my $first = $self->getFirstRecordIndex();
140
19
20
    my $limit = $self->getRecordsLimitation();
141
19
34
    if ( defined $first && $limit > 0 ) {
142
14
32
        return floor( $first / $limit ) + 1;
143    }
144
5
5
    return $INDEX_NOT_FOUND;
144
5
7
    return $INDEX_NOT_FOUND;
145}
146
147
148sub getCurrentRecord {
149
2
1
5
    my $self = shift;
150
2
4
    return $self->{records}[ $self->{recordIndex} ]
149
2
1
6
    my $self = shift;
150
2
3
    return $self->{records}[ $self->{recordIndex} ]
151        if $self->_hasCurrentRecord();
152
1
3
    return;
153}
154
155
156sub getFirstRecordIndex {
157
28
1
24
    my $self = shift;
157
28
1
37
    my $self = shift;
158
28
34
    my $col  = $self->getColumn('FIRST');
159
28
34
    if ( defined $col ) {
160
21
21
        my $f = $col->getDataByIndex(0);
161
21
24
        if ( defined $f ) {
159
28
35
    if ( defined $col ) {
160
21
27
        my $f = $col->getDataByIndex(0);
161
21
25
        if ( defined $f ) {
162
21
33
            return int $f;
163        }
164    }
165
7
7
5
7
    my $len = scalar @{ $self->{records} };
165
7
7
6
7
    my $len = scalar @{ $self->{records} };
166
7
10
    return 0 if ( $len > 0 );
167
6
7
    return;
167
6
8
    return;
168}
169
170
171sub getLastRecordIndex {
172
9
1
15
    my $self = shift;
173
9
16
    my $col  = $self->getColumn('LAST');
172
9
1
13
    my $self = shift;
173
9
13
    my $col  = $self->getColumn('LAST');
174
9
14
    if ( defined $col ) {
175
7
14
        my $l = $col->getDataByIndex(0);
176
7
9
        if ( defined $l ) {
177
7
20
            return int $l;
175
7
10
        my $l = $col->getDataByIndex(0);
176
7
18
        if ( defined $l ) {
177
7
17
            return int $l;
178        }
179    }
180
2
3
    my $len = $self->getRecordsCount();
181
2
3
    if ( $len > 0 ) {
181
2
4
    if ( $len > 0 ) {
182
1
3
        return ( $len - 1 );
183    }
184
1
3
    return;
185}
186
187
188sub getListHash {
189
1
1
2
    my $self = shift;
189
1
1
3
    my $self = shift;
190
1
2
    my @lh   = ();
191
1
1
1
2
    foreach my $rec ( @{ $self->getRecords() } ) {
192
2
3
        push @lh, $rec->getData();
201
1
2
    return $r;
202}
203
204
205sub getNextRecord {
206
5
1
10
    my $self = shift;
207
5
9
    return $self->{records}[ ++$self->{recordIndex} ]
206
5
1
7
    my $self = shift;
207
5
6
    return $self->{records}[ ++$self->{recordIndex} ]
208        if ( $self->_hasNextRecord() );
209
2
6
    return;
209
2
3
    return;
210}
211
212
213sub getNextPageNumber {
214
5
1
8
    my $self = shift;
215
5
4
    my $cp   = $self->getCurrentPageNumber();
214
5
1
7
    my $self = shift;
215
5
5
    my $cp   = $self->getCurrentPageNumber();
216
5
9
    if ( $cp < 0 ) {
217
1
2
        return $INDEX_NOT_FOUND;
217
1
1
        return $INDEX_NOT_FOUND;
218    }
219
4
3
    my $page  = $cp + 1;
220
4
5
    my $pages = $self->getNumberOfPages();
221
4
8
    return $page if ( $page <= $pages );
219
4
4
    my $page  = $cp + 1;
220
4
4
    my $pages = $self->getNumberOfPages();
221
4
9
    return $page if ( $page <= $pages );
222
0
0
    return $pages;
223}
224
225
226sub getNumberOfPages {
227
9
1
7
    my $self  = shift;
227
9
1
6
    my $self  = shift;
228
9
11
    my $t     = $self->getRecordsTotalCount();
229
9
9
    my $limit = $self->getRecordsLimitation();
230
9
13
    if ( $t > 0 && $limit > 0 ) {
231
8
16
        return ceil( $t / $limit );
230
9
18
    if ( $t > 0 && $limit > 0 ) {
231
8
17
        return ceil( $t / $limit );
232    }
233
1
3
    return 0;
233
1
2
    return 0;
234}
235
236
237sub getPagination {
238
3
1
329
    my $self = shift;
239
3
5
    my $r    = {
238
3
1
281
    my $self = shift;
239
3
4
    my $r    = {
240        COUNT        => $self->getRecordsCount(),
241        CURRENTPAGE  => $self->getCurrentPageNumber(),
242        FIRST        => $self->getFirstRecordIndex(),
250
3
9
    return $r;
251}
252
253
254sub getPreviousPageNumber {
255
5
1
7
    my $self = shift;
256
5
8
    my $cp   = $self->getCurrentPageNumber();
257
5
9
    if ( $cp < 0 ) {
258
1
2
        return $INDEX_NOT_FOUND;
255
5
1
6
    my $self = shift;
256
5
5
    my $cp   = $self->getCurrentPageNumber();
257
5
7
    if ( $cp < 0 ) {
258
1
1
        return $INDEX_NOT_FOUND;
259    }
260
4
4
    my $np = $cp - 1;
261
4
3
    return $np if ( $np > 0 );
262
4
3
    return $INDEX_NOT_FOUND;
260
4
5
    my $np = $cp - 1;
261
4
5
    return $np if ( $np > 0 );
262
4
4
    return $INDEX_NOT_FOUND;
263}
264
265
266sub getPreviousRecord {
267
4
1
9
    my $self = shift;
268
4
9
    return $self->{records}[ --$self->{recordIndex} ]
267
4
1
5
    my $self = shift;
268
4
5
    return $self->{records}[ --$self->{recordIndex} ]
269        if ( $self->_hasPreviousRecord() );
270
3
11
    return;
270
3
7
    return;
271}
272
273
274sub getRecord {
275
2
1
5
    my ( $self, $idx ) = @_;
276
2
12
    if ( $idx >= 0 && $self->getRecordsCount() > $idx ) {
277
2
12
        return $self->{records}[ $idx ];
275
2
1
4
    my ( $self, $idx ) = @_;
276
2
8
    if ( $idx >= 0 && $self->getRecordsCount() > $idx ) {
277
2
8
        return $self->{records}[ $idx ];
278    }
279
0
0
    return;
280}
281
282
283sub getRecords {
284
1
1
1
    my $self = shift;
285
1
1
1
1
    return \@{ $self->{records} };
285
1
1
1
2
    return \@{ $self->{records} };
286}
287
288
289sub getRecordsCount {
290
18
1
22
    my $self = shift;
291
18
18
15
24
    my $len  = scalar @{ $self->{records} };
290
18
1
21
    my $self = shift;
291
18
18
16
22
    my $len  = scalar @{ $self->{records} };
292
18
33
    return $len;
293}
294
295
296sub getRecordsTotalCount {
297
18
1
21
    my $self = shift;
298
18
22
    my $col  = $self->getColumn('TOTAL');
299
18
23
    if ( defined $col ) {
300
17
20
        my $t = $col->getDataByIndex(0);
301
17
18
        if ( defined $t ) {
302
17
41
            return int $t;
297
18
1
23
    my $self = shift;
298
18
20
    my $col  = $self->getColumn('TOTAL');
299
18
22
    if ( defined $col ) {
300
17
19
        my $t = $col->getDataByIndex(0);
301
17
25
        if ( defined $t ) {
302
17
30
            return int $t;
303        }
304    }
305
1
2
    return $self->getRecordsCount();
305
1
1
    return $self->getRecordsCount();
306}
307
308
309sub getRecordsLimitation {
310
41
1
34
    my $self = shift;
311
41
50
    my $col  = $self->getColumn('LIMIT');
312
41
45
    if ( defined $col ) {
313
35
43
        my $l = $col->getDataByIndex(0);
310
41
1
41
    my $self = shift;
311
41
44
    my $col  = $self->getColumn('LIMIT');
312
41
53
    if ( defined $col ) {
313
35
41
        my $l = $col->getDataByIndex(0);
314
35
43
        if ( defined $l ) {
315
35
42
            return int $l;
315
35
59
            return int $l;
316        }
317    }
318
6
7
    return $self->getRecordsCount();
318
6
8
    return $self->getRecordsCount();
319}
320
321
322sub hasNextPage {
323
2
1
6
    my $self = shift;
324
2
2
    my $cp   = $self->getCurrentPageNumber();
325
2
6
    if ( $cp < 0 ) {
324
2
3
    my $cp   = $self->getCurrentPageNumber();
325
2
5
    if ( $cp < 0 ) {
326
1
2
        return 0;
327    }
328
1
1
    my $np = $cp + 1;
329
1
1
    if ( $np <= $self->getNumberOfPages() ) {
330
1
4
        return 1;
329
1
3
    if ( $np <= $self->getNumberOfPages() ) {
330
1
3
        return 1;
331    }
332
0
0
    return 0;
333}
334
335
336sub hasPreviousPage {
337
2
1
7
    my $self = shift;
338
2
4
    my $cp   = $self->getCurrentPageNumber();
339
2
5
    if ( $cp < 0 ) {
340
1
2
        return 0;
338
2
3
    my $cp   = $self->getCurrentPageNumber();
339
2
6
    if ( $cp < 0 ) {
340
1
3
        return 0;
341    }
342
1
2
    my $pp = $cp - 1;
343
1
1
    if ( $pp > 0 ) {
343
1
2
    if ( $pp > 0 ) {
344
0
0
        return 1;
345    }
346
1
3
    return 0;
348
349
350sub rewindRecordList {
351
1
1
2
    my $self = shift;
352
1
1
    $self->{recordIndex} = 0;
353
1
4
    return $self;
353
1
2
    return $self;
354}
355
356
357sub _hasColumn {
358
19755
14464
    my ( $self, $key ) = @_;
359
19755
69035
19755
17275
43499
16322
    my $idx = first_index { $_ eq $key } @{ $self->{columnkeys} };
360
19755
19428
    return ( $idx > $INDEX_NOT_FOUND );
358
22100
17302
    my ( $self, $key ) = @_;
359
22100
77209
22100
21341
47475
19582
    my $idx = first_index { $_ eq $key } @{ $self->{columnkeys} };
360
22100
25151
    return ( $idx > $INDEX_NOT_FOUND );
361}
362
363
364sub _hasCurrentRecord {
365
8
10
    my $self = shift;
366
8
8
5
11
    my $len  = scalar @{ $self->{records} };
367
8
48
    return ( $len > 0 && $self->{recordIndex} >= 0 && $self->{recordIndex} < $len );
365
8
8
    my $self = shift;
366
8
8
5
6
    my $len  = scalar @{ $self->{records} };
367
8
40
    return ( $len > 0 && $self->{recordIndex} >= 0 && $self->{recordIndex} < $len );
368}
369
370
371sub _hasNextRecord {
372
5
6
    my $self = shift;
373
5
7
    my $next = $self->{recordIndex} + 1;
374
5
5
5
6
    my $len  = scalar @{ $self->{records} };
375
5
8
    return ( $self->_hasCurrentRecord() && $next < $len );
372
5
4
    my $self = shift;
373
5
6
    my $next = $self->{recordIndex} + 1;
374
5
5
2
5
    my $len  = scalar @{ $self->{records} };
375
5
5
    return ( $self->_hasCurrentRecord() && $next < $len );
376}
377
378
379sub _hasPreviousRecord {
380
4
4
    my $self = shift;
381
4
16
    return ( $self->{recordIndex} > 0 && $self->_hasCurrentRecord() );
381
4
8
    return ( $self->{recordIndex} > 0 && $self->_hasCurrentRecord() );
382}
383
3841;
385
diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseParser-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseParser-pm.html index d2fe6aa..23c79a2 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseParser-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseParser-pm.html @@ -26,64 +26,64 @@

File Coverage

- - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - + - + - + - + - + - - - - - + + + + + - + - - + + - + - - + + - - + +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::ResponseParser;
2
3
1
1
6
1
use 5.030;
4
1
1
1
2
1
6
use strict;
5
1
1
1
1
1
17
use warnings;
6
7
1
1
1
2
5
2
use version 0.9917; our $VERSION = version->declare('v2.10.0');
2
3
1
1
7
2
use 5.030;
4
1
1
1
2
1
9
use strict;
5
1
1
1
2
1
19
use warnings;
6
7
1
1
1
2
6
3
use version 0.9917; our $VERSION = version->declare('v2.10.1');
8
9
10sub parse {
11
111
1
113
    my $response = shift;
12
111
120
    my %hash     = ();
13
111
323
    $response =~ s/\r\n/\n/gmsx;
14
111
610
    foreach ( split /\n/msx, $response ) {
15
4116
5152
        if (/^([^\=]*[^\t\= ])[\t ]*=[\t ]*(.+)/msx) {
16
3859
2990
            my $attr  = $1;
17
3859
2830
            my $value = $2;
18
3859
6968
            $value =~ s/[\t ]*$//msx;
19
3859
3837
            if ( $attr =~ /^property\[([^\]]*)\]/imsx ) {
20
3528
2954
                if ( !defined $hash{PROPERTY} ) {
21
49
75
                    $hash{PROPERTY} = {};
11
111
1
114
    my $response = shift;
12
111
113
    my %hash     = ();
13
111
304
    $response =~ s/\r\n/\n/gmsx;
14
111
1069
    foreach ( split /\n/msx, $response ) {
15
4506
6478
        if (/^([^\=]*[^\t\= ])[\t ]*=[\t ]*(.+)/msx) {
16
4253
3958
            my $attr  = $1;
17
4253
3573
            my $value = $2;
18
4253
8567
            $value =~ s/[\t ]*$//msx;
19
4253
4929
            if ( $attr =~ /^property\[([^\]]*)\]/imsx ) {
20
3922
3713
                if ( !defined $hash{PROPERTY} ) {
21
49
82
                    $hash{PROPERTY} = {};
22                }
23
3528
2706
                my $prop = uc $1;
24
3528
2464
                $prop =~ s/\s//ogmsx;
25
3528
2864
                if ( defined $hash{PROPERTY}{$prop} ) {
26
3274
3274
2058
3236
                    push @{ $hash{PROPERTY}{$prop} }, $value;
23
3922
3338
                my $prop = uc $1;
24
3922
3148
                $prop =~ s/\s//ogmsx;
25
3922
3548
                if ( defined $hash{PROPERTY}{$prop} ) {
26
3666
3666
2460
4164
                    push @{ $hash{PROPERTY}{$prop} }, $value;
27                } else {
28
254
364
                    $hash{PROPERTY}{$prop} = [ $value ];
28
256
403
                    $hash{PROPERTY}{$prop} = [ $value ];
29                }
30            } else {
31
331
439
                $hash{ uc $attr } = $value;
31
331
504
                $hash{ uc $attr } = $value;
32            }
33        }
34    }
35
111
297
    return \%hash;
35
111
332
    return \%hash;
36}
37
38
39sub serialize {
40
6
1
27
    my $h     = shift;
40
6
1
21
    my $h     = shift;
41
6
7
    my $plain = '[RESPONSE]';
42
6
10
    if ( defined $h->{PROPERTY} ) {
42
6
7
    if ( defined $h->{PROPERTY} ) {
43
3
3
        my $props = $h->{PROPERTY};
44
3
3
5
13
        foreach my $key ( sort keys %{$props} ) {
45
5
3
            my $i = 0;
46
5
5
5
6
            foreach my $val ( @{ $props->{$key} } ) {
47
11
14
                $plain .= "\r\nPROPERTY[${key}][${i}]=${val}";
48
11
11
                $i++;
44
3
3
3
12
        foreach my $key ( sort keys %{$props} ) {
45
5
4
            my $i = 0;
46
5
5
4
6
            foreach my $val ( @{ $props->{$key} } ) {
47
11
10
                $plain .= "\r\nPROPERTY[${key}][${i}]=${val}";
48
11
14
                $i++;
49            }
50        }
51    }
52
6
10
    if ( defined $h->{CODE} ) {
52
6
5
    if ( defined $h->{CODE} ) {
53
5
6
        $plain .= "\r\nCODE=" . $h->{CODE};
54    }
55
6
9
    if ( defined $h->{DESCRIPTION} ) {
56
5
5
        $plain .= "\r\nDESCRIPTION=" . $h->{DESCRIPTION};
55
6
7
    if ( defined $h->{DESCRIPTION} ) {
56
5
6
        $plain .= "\r\nDESCRIPTION=" . $h->{DESCRIPTION};
57    }
58
6
8
    if ( defined $h->{QUEUETIME} ) {
58
6
9
    if ( defined $h->{QUEUETIME} ) {
59
1
2
        $plain .= "\r\nQUEUETIME=" . $h->{QUEUETIME};
60    }
61
6
7
    if ( defined $h->{RUNTIME} ) {
62
1
1
        $plain .= "\r\nRUNTIME=" . $h->{RUNTIME};
61
6
6
    if ( defined $h->{RUNTIME} ) {
62
1
2
        $plain .= "\r\nRUNTIME=" . $h->{RUNTIME};
63    }
64
6
7
    $plain .= "\r\nEOF\r\n";
65
6
8
    return $plain;
64
6
6
    $plain .= "\r\nEOF\r\n";
65
6
7
    return $plain;
66}
67
681;
69
diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplate-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplate-pm.html index 9e9100c..d212f77 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplate-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplate-pm.html @@ -26,38 +26,38 @@

File Coverage

- - - - - - + + + + + + - - - - + + + + - - - - + + + + - + - + - + - - + + @@ -67,35 +67,35 @@

File Coverage

- - + + - - + + - + - + - - - + + + - - - + + + - - + + diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplateManager-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplateManager-pm.html index 078327d..01c621a 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplateManager-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-ResponseTemplateManager-pm.html @@ -26,64 +26,64 @@

File Coverage

linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::ResponseTemplate;
2
3
1
1
274
2
use 5.030;
4
1
1
1
2
1
8
use strict;
5
1
1
1
2
1
15
use warnings;
6
1
1
1
234
1
15
use WebService::Hexonet::Connector::ResponseParser;
7
1
1
1
248
1
18
use WebService::Hexonet::Connector::ResponseTemplateManager;
8
9
1
1
1
2
5
2
use version 0.9917; our $VERSION = version->declare('v2.10.0');
2
3
1
1
329
2
use 5.030;
4
1
1
1
2
0
11
use strict;
5
1
1
1
2
1
18
use warnings;
6
1
1
1
328
1
20
use WebService::Hexonet::Connector::ResponseParser;
7
1
1
1
336
2
15
use WebService::Hexonet::Connector::ResponseTemplateManager;
8
9
1
1
1
3
6
4
use version 0.9917; our $VERSION = version->declare('v2.10.1');
10
11my $rtm = WebService::Hexonet::Connector::ResponseTemplateManager->getInstance();
12
13
14sub new {
15
109
1
3479
    my ( $class, $raw ) = @_;
16
109
118
    my $self = {};
17
109
306
    if ( !defined $raw || length $raw == 0 ) {
18
11
14
        $raw = "[RESPONSE]\r\nCODE=423\r\nDESCRIPTION=Empty API response. Probably unreachable API end point {CONNECTION_URL}\r\nEOF\r\n";
15
109
1
3696
    my ( $class, $raw ) = @_;
16
109
145
    my $self = {};
17
109
302
    if ( !defined $raw || length $raw == 0 ) {
18
11
12
        $raw = "[RESPONSE]\r\nCODE=423\r\nDESCRIPTION=Empty API response. Probably unreachable API end point {CONNECTION_URL}\r\nEOF\r\n";
19    }
20
109
149
    $self->{raw}  = $raw;
21
109
182
    $self->{hash} = WebService::Hexonet::Connector::ResponseParser::parse($raw);
22
109
266
    if ( !defined $self->{hash}->{'DESCRIPTION'} || !defined $self->{hash}->{'CODE'} ) {
23
1
3
        $self->{raw}  = $rtm->getTemplate('invalid')->getPlain();
20
109
179
    $self->{raw}  = $raw;
21
109
181
    $self->{hash} = WebService::Hexonet::Connector::ResponseParser::parse($raw);
22
109
269
    if ( !defined $self->{hash}->{'DESCRIPTION'} || !defined $self->{hash}->{'CODE'} ) {
23
1
2
        $self->{raw}  = $rtm->getTemplate('invalid')->getPlain();
24
1
2
        $self->{hash} = WebService::Hexonet::Connector::ResponseParser::parse( $self->{raw} );
25    }
26
109
263
    return bless $self, $class;
26
109
248
    return bless $self, $class;
27}
28
29
30sub getCode {
31
3
1
8
    my $self = shift;
32
3
10
    return ( $self->{hash}->{CODE} + 0 );
32
3
7
    return ( $self->{hash}->{CODE} + 0 );
33}
34
35
36sub getDescription {
37
7
1
14
    my $self = shift;
38
7
27
    return $self->{hash}->{DESCRIPTION};
38
7
23
    return $self->{hash}->{DESCRIPTION};
39}
40
41
42sub getPlain {
43
32
1
74
    my $self = shift;
44
32
97
    return $self->{raw};
43
32
1
75
    my $self = shift;
44
32
85
    return $self->{raw};
45}
46
47
48sub getQueuetime {
49
2
1
5
    my $self = shift;
53
1
3
    return 0.00;
54}
55
56
57sub getHash {
58
61
1
68
    my $self = shift;
59
61
92
    return $self->{hash};
58
61
1
75
    my $self = shift;
59
61
104
    return $self->{hash};
60}
61
62
63sub getRuntime {
64
2
1
7
    my $self = shift;
65
2
4
    if ( defined $self->{hash}->{RUNTIME} ) {
64
2
1
5
    my $self = shift;
65
2
5
    if ( defined $self->{hash}->{RUNTIME} ) {
66
1
5
        return ( $self->{hash}->{RUNTIME} + 0.00 );
67    }
68
1
3
    return 0.00;
68
1
2
    return 0.00;
69}
70
71
72sub isError {
73
2
1
1628
    my $self  = shift;
73
2
1
2081
    my $self  = shift;
74
2
7
    my $first = substr $self->{hash}->{CODE}, 0, 1;
75
2
9
    return ( $first eq '5' );
76}
77
78
79sub isSuccess {
80
18
1
6099
    my $self  = shift;
81
18
51
    my $first = substr $self->{hash}->{CODE}, 0, 1;
82
18
77
    return ( $first eq '2' );
80
18
1
8958
    my $self  = shift;
81
18
57
    my $first = substr $self->{hash}->{CODE}, 0, 1;
82
18
78
    return ( $first eq '2' );
83}
84
85
86sub isTmpError {
87
1
1
620
    my $self  = shift;
88
1
5
    my $first = substr $self->{hash}->{CODE}, 0, 1;
89
1
6
    return ( $first eq '4' );
87
1
1
948
    my $self  = shift;
88
1
4
    my $first = substr $self->{hash}->{CODE}, 0, 1;
89
1
5
    return ( $first eq '4' );
90}
91
92
93sub isPending {
94
2
1
7
    my $self = shift;
95
2
4
    if ( defined $self->{hash}->{PENDING} ) {
96
1
3
        return int( $self->{hash}->{PENDING} );
95
2
3
    if ( defined $self->{hash}->{PENDING} ) {
96
1
4
        return int( $self->{hash}->{PENDING} );
97    }
98
1
3
    return 0;
99}
- - - - - - + + + + + + - - - - + + + + - - + + - + - - + + - + - + - - - - + + + + - + - + - - + + - - + + - + - - + + - + diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-SocketConfig-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-SocketConfig-pm.html index ca894ad..ca1f92f 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-SocketConfig-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-SocketConfig-pm.html @@ -27,13 +27,13 @@

File Coverage

- - + + - + - - + + @@ -44,79 +44,79 @@

File Coverage

- + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - - - + + +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::ResponseTemplateManager;
2
3
1
1
7
1
use 5.030;
4
1
1
1
4
1
9
use strict;
5
1
1
1
1
1
14
use warnings;
6
1
1
1
2
1
12
use WebService::Hexonet::Connector::ResponseTemplate;
7
1
1
1
1
1
9
use WebService::Hexonet::Connector::ResponseParser;
8
9
1
1
1
1
7
3
use version 0.9917; our $VERSION = version->declare('v2.10.0');
2
3
1
1
8
2
use 5.030;
4
1
1
1
2
1
8
use strict;
5
1
1
1
2
1
19
use warnings;
6
1
1
1
2
1
13
use WebService::Hexonet::Connector::ResponseTemplate;
7
1
1
1
2
1
10
use WebService::Hexonet::Connector::ResponseParser;
8
9
1
1
1
2
6
2
use version 0.9917; our $VERSION = version->declare('v2.10.1');
10
11my $instance = undef;
12
13
14sub getInstance {
15
3
1
7
    if ( !defined $instance ) {
16
1
1
        my $self = { templates => {} };
17
1
2
        $instance = bless $self, shift;
18
1
1
        $instance->addTemplate( '404',          $instance->generateTemplate( '421', 'Page not found' ) );
15
3
1
6
    if ( !defined $instance ) {
16
1
2
        my $self = { templates => {} };
17
1
1
        $instance = bless $self, shift;
18
1
2
        $instance->addTemplate( '404',          $instance->generateTemplate( '421', 'Page not found' ) );
19
1
1
        $instance->addTemplate( '500',          $instance->generateTemplate( '500', 'Internal server error' ) );
20
1
1
        $instance->addTemplate( 'empty',        $instance->generateTemplate( '423', 'Empty API response. Probably unreachable API end point {CONNECTION_URL}' ) );
21
1
1
        $instance->addTemplate( 'error',        $instance->generateTemplate( '421', 'Command failed due to server error. Client should try again' ) );
22
1
2
        $instance->addTemplate( 'expired',      $instance->generateTemplate( '530', 'SESSION NOT FOUND' ) );
23
1
1
        $instance->addTemplate( 'httperror',    $instance->generateTemplate( '421', 'Command failed due to HTTP communication error' ) );
22
1
1
        $instance->addTemplate( 'expired',      $instance->generateTemplate( '530', 'SESSION NOT FOUND' ) );
23
1
2
        $instance->addTemplate( 'httperror',    $instance->generateTemplate( '421', 'Command failed due to HTTP communication error' ) );
24
1
1
        $instance->addTemplate( 'invalid',      $instance->generateTemplate( '423', 'Invalid API response. Contact Support' ) );
25
1
2
        $instance->addTemplate( 'unauthorized', $instance->generateTemplate( '530', 'Unauthorized' ) );
26    }
27
3
4
    return $instance;
27
3
5
    return $instance;
28}
29
30
31sub generateTemplate {
32
10
1
319
    my ( $self, $code, $description ) = @_;
33
10
18
    return "[RESPONSE]\r\nCODE=${code}\r\nDESCRIPTION=${description}\r\nEOF\r\n";
32
10
1
468
    my ( $self, $code, $description ) = @_;
33
10
14
    return "[RESPONSE]\r\nCODE=${code}\r\nDESCRIPTION=${description}\r\nEOF\r\n";
34}
35
36
37sub addTemplate {
38
10
1
11
    my ( $self, $id, $plain ) = @_;
38
10
1
9
    my ( $self, $id, $plain ) = @_;
39
10
12
    $self->{templates}->{$id} = $plain;
40
10
8
    return $instance;
40
10
9
    return $instance;
41}
42
43
44sub getTemplate {
45
35
1
8993
    my ( $self, $id ) = @_;
46
35
40
    my $plain;
47
35
54
    if ( $self->hasTemplate($id) ) {
48
34
44
        $plain = $self->{templates}->{$id};
45
35
1
8360
    my ( $self, $id ) = @_;
46
35
35
    my $plain;
47
35
47
    if ( $self->hasTemplate($id) ) {
48
34
37
        $plain = $self->{templates}->{$id};
49    } else {
50
1
3
        $plain = $self->generateTemplate( '500', 'Response Template not found' );
50
1
2
        $plain = $self->generateTemplate( '500', 'Response Template not found' );
51    }
52
35
108
    return WebService::Hexonet::Connector::ResponseTemplate->new($plain);
52
35
71
    return WebService::Hexonet::Connector::ResponseTemplate->new($plain);
53}
54
55
56sub getTemplates {
57
1
1
2
    my $self = shift;
58
1
2
    my $tmp  = {};
57
1
1
1
    my $self = shift;
58
1
1
    my $tmp  = {};
59
1
2
    my $tpls = $self->{templates};
60
1
1
2
4
    foreach my $key ( keys %{$tpls} ) {
61
10
13
        $tmp->{$key} = WebService::Hexonet::Connector::ResponseTemplate->new( $tpls->{$key} );
60
1
1
1
3
    foreach my $key ( keys %{$tpls} ) {
61
10
12
        $tmp->{$key} = WebService::Hexonet::Connector::ResponseTemplate->new( $tpls->{$key} );
62    }
63
1
1
    return $tmp;
63
1
2
    return $tmp;
64}
65
66
67sub hasTemplate {
68
35
1
51
    my ( $self, $id ) = @_;
69
35
82
    return defined $self->{templates}->{$id};
68
35
1
36
    my ( $self, $id ) = @_;
69
35
64
    return defined $self->{templates}->{$id};
70}
71
72
73sub isTemplateMatchHash {
74
2
1
5
    my ( $self, $tpl2, $id ) = @_;
75
2
3
    my $tpl = $self->getTemplate($id);
76
2
3
    my $h   = $tpl->getHash();
76
2
4
    my $h   = $tpl->getHash();
77
2
10
    return ( $h->{CODE} eq $tpl2->{CODE} ) && ( $h->{DESCRIPTION} eq $tpl2->{DESCRIPTION} );
78}
79
80
81sub isTemplateMatchPlain {
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector::SocketConfig;
2
3
1
1
8
1
use 5.030;
4
1
1
1
1
2
7
use strict;
5
1
1
1
2
1
16
use warnings;
4
1
1
1
2
1
10
use strict;
5
1
1
1
2
1
19
use warnings;
6
1
1
1
2
1
2
use utf8;
7
8
1
1
1
10
9
3
use version 0.9917; our $VERSION = version->declare('v2.10.0');
7
8
1
1
1
12
5
3
use version 0.9917; our $VERSION = version->declare('v2.10.1');
9
10
11sub new {
12
3
1
363
    my $class = shift;
13
3
31
    return bless {
12
3
1
337
    my $class = shift;
13
3
19
    return bless {
14        entity     => q{},
15        login      => q{},
16        otp        => q{},
21    }, $class;
22}
23
24
25sub getPOSTData {
26
51
1
62
    my $self = shift;
26
51
1
59
    my $self = shift;
27
51
57
    my $data = {};
28
51
121
    if ( length $self->{entity} ) {
29
50
79
        $data->{'s_entity'} = $self->{entity};
28
51
119
    if ( length $self->{entity} ) {
29
50
76
        $data->{'s_entity'} = $self->{entity};
30    }
31
51
82
    if ( length $self->{login} ) {
32
33
65
        $data->{'s_login'} = $self->{login};
31
51
88
    if ( length $self->{login} ) {
32
33
105
        $data->{'s_login'} = $self->{login};
33    }
34
51
98
    if ( length $self->{otp} ) {
35
1
3
        $data->{'s_otp'} = $self->{otp};
34
51
86
    if ( length $self->{otp} ) {
35
1
2
        $data->{'s_otp'} = $self->{otp};
36    }
37
51
73
    if ( length $self->{pw} ) {
38
33
45
        $data->{'s_pw'} = $self->{pw};
38
33
44
        $data->{'s_pw'} = $self->{pw};
39    }
40
51
69
    if ( length $self->{remoteaddr} ) {
41
35
46
        $data->{'s_remoteaddr'} = $self->{remoteaddr};
40
51
79
    if ( length $self->{remoteaddr} ) {
41
35
51
        $data->{'s_remoteaddr'} = $self->{remoteaddr};
42    }
43
51
65
    if ( length $self->{session} ) {
43
51
83
    if ( length $self->{session} ) {
44
7
10
        $data->{'s_session'} = $self->{session};
45    }
46
51
65
    if ( length $self->{user} ) {
47
2
3
        $data->{'s_user'} = $self->{user};
46
51
81
    if ( length $self->{user} ) {
47
2
2
        $data->{'s_user'} = $self->{user};
48    }
49
51
59
    return $data;
50}
51
52
53sub getSession {
54
3
1
5
    my $self = shift;
55
3
7
    return $self->{session};
54
3
1
3
    my $self = shift;
55
3
5
    return $self->{session};
56}
57
58
59sub getSystemEntity {
60
1
1
2
    my $self = shift;
61
1
4
    return $self->{entity};
61
1
2
    return $self->{entity};
62}
63
64
65sub setLogin {
66
11
1
21
    my ( $self, $value ) = @_;
67
11
16
    $self->{session} = q{};      # Empty string
68
11
19
    $self->{login}   = $value;
69
11
16
    return $self;
66
11
1
17
    my ( $self, $value ) = @_;
67
11
15
    $self->{session} = q{};      # Empty string
68
11
14
    $self->{login}   = $value;
69
11
13
    return $self;
70}
71
72
73sub setOTP {
74
7
1
13
    my ( $self, $value ) = @_;
75
7
10
    $self->{session} = q{};      # Empty string
76
7
11
    $self->{otp}     = $value;
77
7
8
    return $self;
74
7
1
16
    my ( $self, $value ) = @_;
75
7
11
    $self->{session} = q{};      # Empty string
76
7
10
    $self->{otp}     = $value;
77
7
10
    return $self;
78}
79
80
81sub setPassword {
82
11
1
19
    my ( $self, $value ) = @_;
83
11
17
    $self->{session} = q{};      # Empty string
84
11
16
    $self->{pw}      = $value;
85
11
19
    return $self;
82
11
1
18
    my ( $self, $value ) = @_;
83
11
11
    $self->{session} = q{};      # Empty string
84
11
13
    $self->{pw}      = $value;
85
11
12
    return $self;
86}
87
88
89sub setRemoteAddress {
90
3
1
6
    my ( $self, $value ) = @_;
91
3
5
    $self->{remoteaddr} = $value;
90
3
1
4
    my ( $self, $value ) = @_;
91
3
4
    $self->{remoteaddr} = $value;
92
3
3
    return $self;
93}
94
95
96sub setSession {
97
12
1
17
    my ( $self, $value ) = @_;
98
12
18
    $self->{session} = $value;
99
12
17
    $self->{login}   = q{};      # Empty string
97
12
1
20
    my ( $self, $value ) = @_;
98
12
16
    $self->{session} = $value;
99
12
15
    $self->{login}   = q{};      # Empty string
100
12
18
    $self->{pw}      = q{};      # Empty string
101
12
18
    $self->{otp}     = q{};      # Empty string
102
12
13
    return $self;
101
12
14
    $self->{otp}     = q{};      # Empty string
102
12
14
    return $self;
103}
104
105
106sub setSystemEntity {
107
4
1
8
    my ( $self, $value ) = @_;
108
4
6
    $self->{entity} = $value;
109
4
3
    return $self;
107
4
1
5
    my ( $self, $value ) = @_;
108
4
5
    $self->{entity} = $value;
109
4
4
    return $self;
110}
111
112
113sub setUser {
114
2
1
4
    my ( $self, $value ) = @_;
115
2
6
    $self->{user} = $value;
116
2
4
    return $self;
114
2
1
3
    my ( $self, $value ) = @_;
115
2
5
    $self->{user} = $value;
116
2
3
    return $self;
117}
118
1191;
120
diff --git a/cover_db/blib-lib-WebService-Hexonet-Connector-pm.html b/cover_db/blib-lib-WebService-Hexonet-Connector-pm.html index e885148..f266b44 100644 --- a/cover_db/blib-lib-WebService-Hexonet-Connector-pm.html +++ b/cover_db/blib-lib-WebService-Hexonet-Connector-pm.html @@ -26,18 +26,18 @@

File Coverage

- - - - - - - - - - - - + + + + + + + + + + + +
linestmtbrancondsubpodtimecode
1package WebService::Hexonet::Connector;
2
3
1
1
318862
3
use 5.030;
4
1
1
1
1
2
9
use strict;
5
1
1
1
2
1
27
use warnings;
6
1
1
1
280
2
17
use WebService::Hexonet::Connector::APIClient;
7
1
1
1
3
1
9
use WebService::Hexonet::Connector::Column;
8
1
1
1
2
1
10
use WebService::Hexonet::Connector::Record;
9
1
1
1
2
1
10
use WebService::Hexonet::Connector::Response;
10
1
1
1
1
1
7
use WebService::Hexonet::Connector::ResponseParser;
11
1
1
1
2
1
5
use WebService::Hexonet::Connector::ResponseTemplate;
12
1
1
1
2
1
6
use WebService::Hexonet::Connector::ResponseTemplateManager;
13
1
1
1
1
1
13
use WebService::Hexonet::Connector::SocketConfig;
14
15
1
1
1
1
7
3
use version 0.9917; our $VERSION = version->declare('v2.10.0');
2
3
1
1
395730
4
use 5.030;
4
1
1
1
3
1
9
use strict;
5
1
1
1
3
1
30
use warnings;
6
1
1
1
366
2
18
use WebService::Hexonet::Connector::APIClient;
7
1
1
1
4
1
8
use WebService::Hexonet::Connector::Column;
8
1
1
1
2
1
9
use WebService::Hexonet::Connector::Record;
9
1
1
1
2
1
8
use WebService::Hexonet::Connector::Response;
10
1
1
1
2
1
8
use WebService::Hexonet::Connector::ResponseParser;
11
1
1
1
2
1
7
use WebService::Hexonet::Connector::ResponseTemplate;
12
1
1
1
2
2
6
use WebService::Hexonet::Connector::ResponseTemplateManager;
13
1
1
1
2
1
12
use WebService::Hexonet::Connector::SocketConfig;
14
15
1
1
1
1
8
2
use version 0.9917; our $VERSION = version->declare('v2.10.1');
16
171;
18
diff --git a/cover_db/cover.14 b/cover_db/cover.14 index 4375a2e..bc1ca35 100644 --- a/cover_db/cover.14 +++ b/cover_db/cover.14 @@ -1 +1 @@ -{"runs":{"1594890010.12833.62071":{"version":"v2.10.0","finish":1594890010.02316,"collected":["branch","condition","pod","statement","subroutine","time"],"OS":"linux","run":"t/Hexonet-connector.t","abstract":"Connector library for the insanely fast L.","start":1594889998.45671,"vec":{"blib/lib/WebService/Hexonet/Connector/Logger.pm":{"branch":{"vec":"\u0000","size":2},"statement":{"vec":"ÿÿ\u0003ü\u0001","size":33},"subroutine":{"size":7,"vec":""},"pod":{"vec":"\u0003","size":2}},"blib/lib/WebService/Hexonet/Connector/Record.pm":{"statement":{"vec":"ÿÿ?","size":22},"subroutine":{"vec":"ÿ","size":8},"pod":{"vec":"\u000f","size":4},"branch":{"size":2,"vec":"\u0002"}},"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm":{"condition":{"size":3,"vec":"\u0000"},"branch":{"size":4,"vec":"\t"},"statement":{"vec":"ÿÿÿÿÿÿÿ","size":56},"subroutine":{"size":14,"vec":"ÿ?"},"pod":{"size":8,"vec":"ÿ"}},"blib/lib/WebService/Hexonet/Connector/Column.pm":{"branch":{"vec":"\u0002","size":2},"pod":{"vec":"\u001f","size":5},"statement":{"vec":"ÿÿÿ\u001f","size":29},"subroutine":{"vec":"ÿ\u0001","size":9}},"blib/lib/WebService/Hexonet/Connector/Response.pm":{"pod":{"vec":"¿ÿÿ\u000f","size":28},"statement":{"size":234,"vec":"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿýÿÿ¿ßÿÿ\u0003"},"subroutine":{"size":44,"vec":"ÿÿÿÿÿ\u000f"},"branch":{"vec":"Û£{W\u0017ÆtÝ\u0002","size":66},"condition":{"size":18,"vec":"\tÊ\u0002"}},"blib/lib/WebService/Hexonet/Connector.pm":{"subroutine":{"size":12,"vec":"ÿ\u000f"},"statement":{"size":35,"vec":"ÿÿÿÿ\u0007"}},"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm":{"branch":{"vec":"V%","size":14},"statement":{"size":64,"vec":"ÿÿÿÿÿÿÿÿ"},"subroutine":{"vec":"ÿÿ","size":16},"pod":{"size":11,"vec":"ÿ\u0007"}},"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm":{"subroutine":{"size":6,"vec":"?"},"statement":{"vec":"ÿÿÿÿÿÿ\u0007","size":51},"pod":{"vec":"\u0003","size":2},"branch":{"vec":"ãÿ\u0003","size":18}},"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm":{"branch":{"vec":"õ\u0003","size":10},"condition":{"size":6,"vec":"\n"},"pod":{"size":11,"vec":"ÿ\u0007"},"subroutine":{"vec":"ÿÿ\u0001","size":17},"statement":{"size":56,"vec":"ÿÿÿÿÿÿÿ"}},"blib/lib/WebService/Hexonet/Connector/APIClient.pm":{"condition":{"vec":"\u0000*","size":14},"branch":{"vec":"àðwWµ¢üG\u0017","size":70},"subroutine":{"size":52,"vec":"ÿÿýÿÿÿ\u000f"},"statement":{"size":304,"vec":"ÿÿÿÿÿÿ\u001fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛßûÿÿÿÿÿÿÿÿÿÿ"},"pod":{"size":35,"vec":"ùÿÿÿ\u0005"}}},"count":{"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm":{"branch":[[11.0,98],[1.0,108],[1.0,1],[1.0,1],[1.0,1]],"condition":[[6,5,98],[1,0,108]],"time":[274,2,2,1,8,2,1,15,234,1,15,248,1,18,2,5,2,3479,118,306,14,149,182,266,3,2,263,8,10,14,27,74,97,5,4,3,3,68,92,7,4,5,3,1628,7,9,6099,51,77,620,5,6,7,4,3,3],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,109,109,109,11,109,109,109,1,1,109,3,3,7,7,32,32,2,2,1,1,61,61,2,2,1,1,2,2,2,18,18,18,1,1,1,2,2,1,1],"pod":[1,1,1,1,1,1,1,1,1,1,1],"subroutine":[1,1,1,1,1,1,109,3,7,32,2,61,2,2,18,1,2]},"blib/lib/WebService/Hexonet/Connector/APIClient.pm":{"pod":[1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1],"subroutine":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,0,2,2,50,2,5,20,2,19,2,19,2,4,1,1,8,7,12,3,11,3,3,1,2,17,6,1,1,1,1,1,1,2,17,17],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,0,0,0,0,2,2,2,2,2,2,50,50,50,18,50,50,49,49,91,90,90,90,1,50,18,50,50,2,50,50,2,2,2,1,1,5,5,20,20,1,1,1,1,20,2,2,2,2,2,2,1,1,2,2,19,19,1,18,2,2,1,1,2,19,19,1,18,2,2,1,1,2,4,4,1,1,1,1,1,1,1,8,8,8,7,7,7,12,12,12,3,3,3,11,11,11,11,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,0,17,17,16,16,2,1,1,0,17,6,6,6,0,6,6,5,6,6,6,6,5,5,5,1,1,1,1,1,1,3,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,17,17,17,34,34,1,34,3,3,3,3,6,6,6,3,17,17,17,1,16,34,16,16,14,2,2,2,5,5,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1],"branch":[[0,0],[18.0,32],[90.0,1],[49,1],[18.0,32],[2.0,48],[1.0,1],[1.0,19],[1.0,1],[1.0,18],[1,1],[1.0,18],[1,1],[1.0,0],[1.0,2],[1.0,0],[1.0,0],[1.0,0],[1.0,1],[0,17],[0,17],[2.0,14],[0,1],[16,1],[0,6],[5.0,1],[5.0,1],[1.0,33],[3.0,31],[1.0,16],[14.0,2],[1.0,4],[1.0,1],[1.0,0],[1.0,0]],"condition":[[0,0,0],[32,0,18],[32,0,18],[1,0,1],[0,3.0]],"time":[8,1,1,1,6,2,0,13,184,5,4,239,1,14,286,1,15,3,1,11,280,2,15,242,18097,17,4,0,29,2,1,17,3,1,15,1,1,15,2,1,4,1014,11,4,7,9,21,6,5,4,2,4,2,null,null,null,null,316,4,4,7,4,4,940,105,119,50,50,72,47,109,103,71,108,130,2,88,31,111,80,3,67,60,6,5,6,2,2,12,11,46,49,8,5,3,28,43,1115,14,13,6,4,10,2,4,16,10,33,33,4,21,5,6,2,3,3,38,41,4,24,389,5,2,3,4,16,10,6,3,2,3,2,2,1,338,34,12,378,25,11,2103,37,13,375,8,4,1120,38,25,59,1093,6,8,6,9,6,17,11,12,2,1,2,3,1,3,35,2,2,2,13,2,3,2,2,3,3,3,4,3,1,2,3,1,4,7,3,10,8,3,17,51,50,38,44,44,29,110,4411,539,408,234,32,null,63,26,null,65,10929975,155,53,9,11,4,null,378,17,12,16,null,7,13,9,15,14,7,16,8,5,11,2,8,3,1,2,4,5,3,4,2,1,3,7,13,21,615,14,1,2,6,1,389,4,385,3,363,4,2,2,7,3,35,27,47,44,51,1,65,6,5,4,6,10,13,7,5,27,28,67,2,20,91,26,35,18,3,3,4,5,10,2,2,5,3,6,3,2,2,2,1,1,2,3,2,5]},"blib/lib/WebService/Hexonet/Connector.pm":{"subroutine":[1,1,1,1,1,1,1,1,1,1,1,1],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"time":[318862,3,1,2,9,2,1,27,280,2,17,3,1,9,2,1,10,2,1,10,1,1,7,2,1,5,2,1,6,1,1,13,1,7,3]},"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm":{"branch":[[50.0,1],[33.0,18],[1.0,50],[33.0,18],[35.0,16],[7.0,44],[2.0,49]],"time":[8,1,1,2,7,2,1,16,2,1,2,10,9,3,363,31,62,57,121,79,82,65,98,3,73,45,69,46,65,10,65,3,59,5,7,2,4,21,16,19,16,13,10,11,8,19,17,16,19,6,5,3,17,18,17,18,18,13,8,6,3,4,6,4],"pod":[1,1,1,1,1,1,1,1,1,1,1],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,51,51,51,50,51,33,51,1,51,33,51,35,51,7,51,2,51,3,3,1,1,11,11,11,11,7,7,7,7,11,11,11,11,3,3,3,12,12,12,12,12,12,4,4,4,2,2,2],"subroutine":[1,1,1,1,1,3,51,3,1,11,7,11,3,12,4,2]},"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm":{"pod":[1,1],"statement":[1,1,1,1,1,1,1,1,1,1,1,111,111,111,111,4116,3859,3859,3859,3859,3528,49,3528,3528,3528,3274,3274,254,331,111,6,6,6,3,3,3,5,5,5,11,11,6,5,6,5,6,1,6,1,6,6],"subroutine":[1,1,1,1,111,6],"branch":[[49.0,3479],[3274,254],[3528,331],[3859.0,257],[3.0,3],[5.0,1],[5.0,1],[1.0,5],[1.0,5]],"time":[6,1,2,1,6,1,1,17,2,5,2,113,120,323,610,5152,2990,2830,6968,3837,2954,75,2706,2464,2864,2058,3236,364,439,297,27,7,10,3,5,13,3,5,6,14,11,10,6,9,5,8,2,7,1,7,8]},"blib/lib/WebService/Hexonet/Connector/Response.pm":{"subroutine":[1,1,1,1,1,1,1,1,1,1,49,152,3286,19755,69027,2,3,1,8,4,19,2,28,9,1,5,5,9,3,5,4,2,1,18,18,41,2,2,1,19755,69035,8,5,4],"pod":[1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"condition":[[5,0,14],[1,0,8],[0,0,2],[1,0,7],[0,2,3],[3,0,1]],"time":[9,1,1,1,8,1,1,19,233,1,12,231,1,13,116,103,2,18,1,4,465,5169,6,551,1,35,14,7,3,11607,147,115,7,4,4,6,1,2,14,8,5,57,61,73,1,54,56,67,60,87,68,25,84,35,46,120,368,243,104,170,100,29,45,2121,2157,14961,15707,15852,17492,3212,2552,379,315,105,252,110,131,178,2369,2087,3111,2639,14913,16210,45463,42517,16847,19358,49,5,3,4,1,325,5,6,3,1,1,22,20,12,7,4,16,12,15,10,17,24,21,33,38,5,5,4,3,24,34,34,21,24,33,5,7,10,7,15,16,14,14,9,20,3,3,3,3,2,2,1,2,3,2,2,10,9,6,8,4,9,2,3,5,8,null,7,11,9,13,16,3,329,5,9,7,8,9,2,4,3,3,9,9,11,5,12,12,null,1,1,1,22,15,24,33,21,22,23,20,18,41,2,34,50,45,43,43,42,7,6,2,6,2,1,1,4,null,7,4,5,2,2,1,null,3,2,1,4,14464,17275,43499,16322,19428,10,5,11,48,6,7,5,6,8,4,16],"branch":[[3.0,1],[4.0,45],[1.0,48],[55.0,97],[3409.0,16245],[19654.0,0],[32.0,17],[19738.0,17],[1.0,1],[14.0,5],[1.0,1],[21.0,0],[21.0,7],[1.0,6],[7.0,0],[7.0,2],[1.0,1],[3.0,2],[1.0,4],[4.0,0],[8.0,1],[1.0,4],[0,4],[1.0,3],[2.0,0],[17.0,0],[17.0,1],[35.0,0],[35.0,6],[1.0,1],[1.0,0],[1.0,1],[0,1]],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,49,49,49,4,3,4,4,1,1,1,4,4,49,49,49,1,49,49,49,49,49,49,32,32,32,32,152,152,152,152,152,55,32,32,3286,3286,19654,19654,19654,19654,3409,3286,49,152,152,152,152,152,152,3286,3286,3286,3286,19755,19755,19738,69027,19738,19738,17,2,2,2,1,3,3,3,1,1,1,8,8,4,4,4,4,10,10,4,19,19,19,19,14,5,2,2,1,28,28,28,21,21,21,7,7,7,6,9,9,9,7,7,7,2,2,1,1,1,1,1,1,2,1,1,5,5,2,5,5,5,1,4,4,4,0,9,9,9,9,8,1,3,3,3,5,5,5,1,4,4,4,4,4,3,2,2,2,0,1,1,1,18,18,18,18,18,18,18,17,17,17,1,41,41,41,35,35,35,6,2,2,2,1,1,1,1,0,2,2,2,1,1,1,0,1,1,1,1,19755,19755,69035,19755,19755,8,8,8,8,5,5,5,5,5,4,4]},"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm":{"branch":[[1.0,2],[34,1]],"time":[7,1,4,1,9,1,1,14,2,1,12,1,1,9,1,7,3,7,1,2,1,1,1,1,2,1,1,2,4,319,18,11,12,8,8993,40,54,44,3,108,2,2,2,2,4,13,1,51,82,5,3,3,10,2,2,2],"condition":[[0,0,2]],"pod":[1,1,1,1,1,1,1,1],"subroutine":[1,1,1,1,1,1,3,10,10,35,1,35,2,1],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,3,10,10,10,10,10,35,35,35,34,1,35,1,1,1,1,1,10,1,35,35,2,2,2,2,1,1,1]},"blib/lib/WebService/Hexonet/Connector/Column.pm":{"pod":[1,1,1,1,1],"subroutine":[1,1,1,1,153,1,3,19735,19735],"statement":[1,1,1,1,1,1,1,1,1,1,1,153,153,153,153,153,153,153,1,1,3,3,19735,19735,19735,16245,19735,19735,19735],"branch":[[3490.0,16245]],"time":[5,2,1,1,6,1,1,16,1,5,2,1513,123,152,107,366,138,240,331,6,4,5,12199,12080,15567,12047,12060,11753,19186]},"blib/lib/WebService/Hexonet/Connector/Logger.pm":{"time":[8,2,1,1,7,1,3,15,202,2919,32,3,9,4,7,14,4,3,null,null,null,null,null,null,null,null,3,9,483,13,82,12,68],"branch":[[0,2]],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,2,2,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2],"subroutine":[1,1,1,1,1,4,2],"pod":[1,1]},"blib/lib/WebService/Hexonet/Connector/Record.pm":{"pod":[1,1,1,1],"subroutine":[1,1,1,1,3287,6,3,3],"statement":[1,1,1,1,1,1,1,1,1,1,1,3287,3287,6,6,3,3,3,1,3,3,3],"branch":[[2.0,1]],"time":[6,1,2,1,6,2,1,19,1,5,3,2459,3513,330,18,643,6,9,3,4,5,16]}},"perl":"5.30.1","dir":"/home/travis/build/hexonet/perl-sdk","digests":{"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm":"83e752528c185f0c77dcc305bb79763a","blib/lib/WebService/Hexonet/Connector/Column.pm":"1e7c7464cdeed5985f502156b6842c2a","blib/lib/WebService/Hexonet/Connector/Response.pm":"f53203362ec0d1a6a6511fb40d7783f4","blib/lib/WebService/Hexonet/Connector/Record.pm":"c95eb51076caeff43cd14e8ba8cecc61","blib/lib/WebService/Hexonet/Connector/Logger.pm":"a3747c723c3e4f7277a3d214aac7cad6","blib/lib/WebService/Hexonet/Connector/APIClient.pm":"e4222efea44983f9a3a27c6dd2e37d6b","blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm":"fc85fc813134eedf68cdbf532f5ba41b","blib/lib/WebService/Hexonet/Connector/ResponseParser.pm":"49ce31b1dc3e29d9b76b12b13412eb9a","blib/lib/WebService/Hexonet/Connector.pm":"deb8763b49b844d004de39403966cd49","blib/lib/WebService/Hexonet/Connector/SocketConfig.pm":"fbbb05055b4bf56d4466313d2e9749d1","t/Hexonet-connector.t":"13ca964f6779eaf669dc0a2cb16e4a1e"},"name":"WebService-Hexonet-Connector"}}} \ No newline at end of file +{"runs":{"1611584153.1635.44985":{"perl":"5.32.0","vec":{"blib/lib/WebService/Hexonet/Connector/Response.pm":{"condition":{"size":18,"vec":"\tÊ\u0002"},"statement":{"vec":"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿýÿÿ¿ßÿÿ\u0003","size":234},"branch":{"vec":"Ûå{W\u0017ÆtÝ\u0002","size":66},"subroutine":{"vec":"ÿÿÿÿÿ\u000f","size":44},"pod":{"vec":"¿ÿÿ\u000f","size":28}},"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm":{"statement":{"vec":"ÿÿÿÿÿÿÿ","size":56},"condition":{"size":6,"vec":"\n"},"branch":{"vec":"õ\u0003","size":10},"pod":{"vec":"ÿ\u0007","size":11},"subroutine":{"vec":"ÿÿ\u0001","size":17}},"blib/lib/WebService/Hexonet/Connector/APIClient.pm":{"pod":{"vec":"ùÿÿÿ\u0005","size":35},"subroutine":{"vec":"ÿÿýÿÿÿ\u000f","size":52},"branch":{"vec":"àðwWµ¢üG\u0017","size":70},"condition":{"vec":"\u0000*","size":14},"statement":{"size":304,"vec":"ÿÿÿÿÿÿ\u001fþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛßûÿÿÿÿÿÿÿÿÿÿ"}},"blib/lib/WebService/Hexonet/Connector.pm":{"subroutine":{"size":12,"vec":"ÿ\u000f"},"statement":{"vec":"ÿÿÿÿ\u0007","size":35}},"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm":{"branch":{"size":14,"vec":"V%"},"statement":{"size":64,"vec":"ÿÿÿÿÿÿÿÿ"},"subroutine":{"vec":"ÿÿ","size":16},"pod":{"size":11,"vec":"ÿ\u0007"}},"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm":{"statement":{"vec":"ÿÿÿÿÿÿ\u0007","size":51},"branch":{"size":18,"vec":"ãÿ\u0003"},"pod":{"vec":"\u0003","size":2},"subroutine":{"size":6,"vec":"?"}},"blib/lib/WebService/Hexonet/Connector/Record.pm":{"subroutine":{"size":8,"vec":"ÿ"},"pod":{"size":4,"vec":"\u000f"},"branch":{"vec":"\u0002","size":2},"statement":{"vec":"ÿÿ?","size":22}},"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm":{"branch":{"size":4,"vec":"\t"},"condition":{"vec":"\u0000","size":3},"statement":{"size":56,"vec":"ÿÿÿÿÿÿÿ"},"subroutine":{"vec":"ÿ?","size":14},"pod":{"vec":"ÿ","size":8}},"blib/lib/WebService/Hexonet/Connector/Column.pm":{"subroutine":{"vec":"ÿ\u0001","size":9},"pod":{"size":5,"vec":"\u001f"},"statement":{"vec":"ÿÿÿ\u001f","size":29},"branch":{"vec":"\u0000","size":2}},"blib/lib/WebService/Hexonet/Connector/Logger.pm":{"statement":{"size":33,"vec":"ÿÿ\u0003ü\u0001"},"branch":{"vec":"\u0000","size":2},"pod":{"size":2,"vec":"\u0003"},"subroutine":{"size":7,"vec":""}}},"collected":["branch","condition","pod","statement","subroutine","time"],"dir":"/__w/perl-sdk/perl-sdk","run":"t/Hexonet-connector.t","version":"v2.10.1","OS":"linux","finish":1611584152.83187,"count":{"blib/lib/WebService/Hexonet/Connector/Logger.pm":{"subroutine":[1,1,1,1,1,4,2],"pod":[1,1],"time":[7,1,1,1,12,2,1,18,205,3458,33,4,9,3,4,9,5,5,null,null,null,null,null,null,null,null,5,11,539,10,76,12,72],"branch":[[0,2]],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,2,2,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2]},"blib/lib/WebService/Hexonet/Connector/Column.pm":{"subroutine":[1,1,1,1,155,1,3,22080,22080],"pod":[1,1,1,1,1],"time":[8,1,2,1,9,3,1,23,3,6,3,1512,144,196,135,424,157,274,362,5,4,4,14427,13381,16662,14327,13575,13759,22631],"branch":[[3884.0,18196]],"statement":[1,1,1,1,1,1,1,1,1,1,1,155,155,155,155,155,155,155,1,1,3,3,22080,22080,22080,18196,22080,22080,22080]},"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm":{"subroutine":[1,1,1,1,1,1,3,10,10,35,1,35,2,1],"pod":[1,1,1,1,1,1,1,1],"time":[8,2,2,1,8,2,1,19,2,1,13,2,1,10,2,6,2,6,2,1,2,1,1,1,1,2,1,2,5,468,14,9,12,9,8360,35,47,37,2,71,1,1,2,1,3,12,2,36,64,5,3,4,10,2,2,2],"branch":[[1.0,2],[34,1]],"condition":[[0,0,2]],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,3,10,10,10,10,10,35,35,35,34,1,35,1,1,1,1,1,10,1,35,35,2,2,2,2,1,1,1]},"blib/lib/WebService/Hexonet/Connector/Record.pm":{"branch":[[2.0,1]],"statement":[1,1,1,1,1,1,1,1,1,1,1,3677,3677,6,6,3,3,3,1,3,3,3],"pod":[1,1,1,1],"subroutine":[1,1,1,1,3677,6,3,3],"time":[9,1,2,1,12,2,1,22,3,9,4,3088,4029,290,15,512,4,8,2,4,3,13]},"blib/lib/WebService/Hexonet/Connector.pm":{"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"subroutine":[1,1,1,1,1,1,1,1,1,1,1,1],"time":[395730,4,3,1,9,3,1,30,366,2,18,4,1,8,2,1,9,2,1,8,2,1,8,2,1,7,2,2,6,2,1,12,1,8,2]},"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm":{"pod":[1,1,1,1,1,1,1,1,1,1,1],"subroutine":[1,1,1,1,1,3,51,3,1,11,7,11,3,12,4,2],"time":[8,1,2,1,10,2,1,19,2,1,2,12,5,3,337,19,59,57,119,76,88,105,86,2,73,44,79,51,83,10,81,2,59,3,5,2,2,17,15,14,13,16,11,10,10,18,11,13,12,4,4,3,20,16,15,18,14,14,5,5,4,3,5,3],"branch":[[50.0,1],[33.0,18],[1.0,50],[33.0,18],[35.0,16],[7.0,44],[2.0,49]],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,51,51,51,50,51,33,51,1,51,33,51,35,51,7,51,2,51,3,3,1,1,11,11,11,11,7,7,7,7,11,11,11,11,3,3,3,12,12,12,12,12,12,4,4,4,2,2,2]},"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm":{"subroutine":[1,1,1,1,111,6],"pod":[1,1],"time":[7,2,2,1,9,2,1,19,2,6,3,114,113,304,1069,6478,3958,3573,8567,4929,3713,82,3338,3148,3548,2460,4164,403,504,332,21,7,7,3,3,12,4,4,6,10,14,5,6,7,6,9,2,6,2,6,7],"branch":[[49.0,3873],[3666,256],[3922,331],[4253.0,253],[3.0,3],[5.0,1],[5.0,1],[1.0,5],[1.0,5]],"statement":[1,1,1,1,1,1,1,1,1,1,1,111,111,111,111,4506,4253,4253,4253,4253,3922,49,3922,3922,3922,3666,3666,256,331,111,6,6,6,3,3,3,5,5,5,11,11,6,5,6,5,6,1,6,1,6,6]},"blib/lib/WebService/Hexonet/Connector/Response.pm":{"time":[7,1,2,1,9,1,1,19,352,1,19,342,2,23,189,136,2,20,1,3,296,5581,3,600,1,49,3,8,3,23021,172,140,6,3,4,6,1,1,31,9,8,72,82,104,2,76,77,73,67,95,92,38,92,48,54,112,370,238,140,205,140,31,49,2564,2482,16351,19477,18408,19933,3558,2991,411,428,139,305,147,188,255,2747,2332,3619,3135,16367,16809,56083,47279,19153,24085,51,5,3,4,1,330,3,6,3,2,1,32,22,11,7,5,16,14,19,10,20,16,20,34,32,7,6,3,3,37,34,35,27,25,33,6,7,10,8,13,13,14,10,18,17,3,4,3,3,3,2,1,2,3,2,2,7,6,3,7,5,9,1,4,4,9,null,6,11,9,18,17,2,281,4,9,6,5,7,1,5,5,4,5,5,7,4,8,8,null,1,1,2,21,16,22,33,23,20,22,19,25,30,1,41,44,53,41,43,59,8,6,3,5,2,1,3,3,null,7,3,6,3,2,2,null,3,2,1,2,17302,21341,47475,19582,25151,8,5,6,40,4,6,2,5,5,4,8],"pod":[1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"subroutine":[1,1,1,1,1,1,1,1,1,1,49,154,3676,22100,77201,2,3,1,8,4,19,2,28,9,1,5,5,9,3,5,4,2,1,18,18,41,2,2,1,22100,77209,8,5,4],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,49,49,49,4,3,4,4,1,1,1,4,4,49,49,49,1,49,49,49,49,49,49,32,32,32,32,154,154,154,154,154,53,32,32,3676,3676,21999,21999,21999,21999,3803,3676,49,154,154,154,154,154,154,3676,3676,3676,3676,22100,22100,22083,77201,22083,22083,17,2,2,2,1,3,3,3,1,1,1,8,8,4,4,4,4,10,10,4,19,19,19,19,14,5,2,2,1,28,28,28,21,21,21,7,7,7,6,9,9,9,7,7,7,2,2,1,1,1,1,1,1,2,1,1,5,5,2,5,5,5,1,4,4,4,0,9,9,9,9,8,1,3,3,3,5,5,5,1,4,4,4,4,4,3,2,2,2,0,1,1,1,18,18,18,18,18,18,18,17,17,17,1,41,41,41,35,35,35,6,2,2,2,1,1,1,1,0,2,2,2,1,1,1,0,1,1,1,1,22100,22100,77209,22100,22100,8,8,8,8,5,5,5,5,5,4,4],"condition":[[5,0,14],[1,0,8],[0,0,2],[1,0,7],[0,2,3],[3,0,1]],"branch":[[3.0,1],[4.0,45],[1.0,48],[53.0,101],[3803.0,18196],[21999.0,0],[32.0,17],[22083.0,17],[1.0,1],[14.0,5],[1.0,1],[21.0,0],[21.0,7],[1.0,6],[7.0,0],[7.0,2],[1.0,1],[3.0,2],[1.0,4],[4.0,0],[8.0,1],[1.0,4],[0,4],[1.0,3],[2.0,0],[17.0,0],[17.0,1],[35.0,0],[35.0,6],[1.0,1],[1.0,0],[1.0,1],[0,1]]},"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm":{"condition":[[6,5,98],[1,0,108]],"subroutine":[1,1,1,1,1,1,109,3,7,32,2,61,2,2,18,1,2],"pod":[1,1,1,1,1,1,1,1,1,1,1],"branch":[[11.0,98],[1.0,108],[1.0,1],[1.0,1],[1.0,1]],"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,109,109,109,11,109,109,109,1,1,109,3,3,7,7,32,32,2,2,1,1,61,61,2,2,1,1,2,2,2,18,18,18,1,1,1,2,2,1,1],"time":[329,2,2,0,11,2,1,18,328,1,20,336,2,15,3,6,4,3696,145,302,12,179,181,269,2,2,248,8,7,14,23,75,85,5,4,3,3,75,104,5,5,5,2,2081,7,9,8958,57,78,948,4,5,7,3,4,3]},"blib/lib/WebService/Hexonet/Connector/APIClient.pm":{"statement":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,0,0,0,0,2,2,2,2,2,2,50,50,50,18,50,50,49,49,91,90,90,90,1,50,18,50,50,2,50,50,2,2,2,1,1,5,5,20,20,1,1,1,1,20,2,2,2,2,2,2,1,1,2,2,19,19,1,18,2,2,1,1,2,19,19,1,18,2,2,1,1,2,4,4,1,1,1,1,1,1,1,8,8,8,7,7,7,12,12,12,3,3,3,11,11,11,11,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,0,17,17,16,16,2,1,1,0,17,6,6,6,0,6,6,5,6,6,6,6,5,5,5,1,1,1,1,1,1,3,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,17,17,17,34,34,1,34,3,3,3,3,6,6,6,3,17,17,17,1,16,34,16,16,14,2,2,2,5,5,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1],"branch":[[0,0],[18.0,32],[90.0,1],[49,1],[18.0,32],[2.0,48],[1.0,1],[1.0,19],[1.0,1],[1.0,18],[1,1],[1.0,18],[1,1],[1.0,0],[1.0,2],[1.0,0],[1.0,0],[1.0,0],[1.0,1],[0,17],[0,17],[2.0,14],[0,1],[16,1],[0,6],[5.0,1],[5.0,1],[1.0,33],[3.0,31],[1.0,16],[14.0,2],[1.0,4],[1.0,1],[1.0,0],[1.0,0]],"time":[9,2,2,1,13,2,1,16,250,7,2,269,1,14,296,1,18,3,1,12,313,1,14,248,23492,21,4,1,38,2,1,20,2,2,19,2,2,16,3,1,4,1107,12,4,3,6,12,2,3,2,2,3,2,null,null,null,null,300,4,5,4,3,2,838,105,113,24,58,74,53,116,115,81,103,128,1,99,43,116,88,3,56,75,4,5,3,2,1,10,10,57,50,6,6,3,12,46,830,7,8,3,2,6,1,2,10,6,33,42,1,26,2,4,1,2,2,34,45,2,41,333,4,1,1,2,12,6,3,2,2,3,2,2,1,300,24,12,416,21,7,2053,32,14,313,6,2,1063,32,22,15,1117,3,6,6,10,5,16,12,13,2,2,2,3,2,3,36,4,2,2,15,3,4,4,2,5,4,5,3,2,2,2,4,2,3,5,3,9,9,5,19,36,47,40,54,45,31,91,4907,597,464,228,28,null,47,27,null,59,13991152,242,61,11,15,8,null,469,15,17,15,null,8,30,5,15,15,11,12,5,5,9,2,5,2,1,2,2,4,1,3,1,3,2,6,13,19,572,5,2,1,6,1,372,2,386,2,366,3,1,3,4,2,29,21,47,40,52,2,67,4,5,6,5,6,12,9,5,31,31,52,2,27,93,36,42,22,5,3,5,6,13,2,1,6,3,5,5,2,2,2,1,2,1,3,2,8],"condition":[[0,0,0],[32,0,18],[32,0,18],[1,0,1],[0,3.0]],"subroutine":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,0,2,2,50,2,5,20,2,19,2,19,2,4,1,1,8,7,12,3,11,3,3,1,2,17,6,1,1,1,1,1,1,2,17,17],"pod":[1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]}},"digests":{"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm":"898e18dd366f01e293d13d2c6c29e160","blib/lib/WebService/Hexonet/Connector.pm":"1c21266662929d6c29977d81f8030152","blib/lib/WebService/Hexonet/Connector/SocketConfig.pm":"e936d83d6990004dbec16569c190df09","blib/lib/WebService/Hexonet/Connector/APIClient.pm":"74c3e2fa572ac2dd5f1348fde238f8c0","blib/lib/WebService/Hexonet/Connector/Response.pm":"15072ba5bfa718522fa24cf248e85d90","blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm":"014c53d8d69b2acdb6a0f925bfd767c9","blib/lib/WebService/Hexonet/Connector/Column.pm":"140f2f8a417cbacc14af0da67b3c426c","blib/lib/WebService/Hexonet/Connector/Logger.pm":"187e602cadf3bd2675a6d11ebc19118f","t/Hexonet-connector.t":"59c57db5678312b654eb208041b2dd04","blib/lib/WebService/Hexonet/Connector/Record.pm":"850d642e7016f744662773458db483cd","blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm":"ea5528def978821c0e3cab7b6dab910c"},"abstract":"Connector library for the insanely fast L.","name":"WebService-Hexonet-Connector","start":1611584138.09394}}} \ No newline at end of file diff --git a/cover_db/coverage.html b/cover_db/coverage.html index 9e0b313..5e832d1 100644 --- a/cover_db/coverage.html +++ b/cover_db/coverage.html @@ -19,9 +19,9 @@

Coverage Summary

- - - + + + @@ -31,12 +31,12 @@

Coverage Summary


Database:/home/travis/build/hexonet/perl-sdk/cover_db
Report Date:2020-07-16 09:00:10
Perl Version:v5.30.1
Database:/__w/perl-sdk/perl-sdk/cover_db
Report Date:2021-01-25 14:15:53
Perl Version:v5.32.0
OS:linux
Thresholds:
- - - + + + - + diff --git a/cover_db/digests b/cover_db/digests index 588610e..0e98b40 100644 --- a/cover_db/digests +++ b/cover_db/digests @@ -1 +1 @@ -{"aa5fa6fb7e189f8dc1dcc06db9d3489c":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Uncompress/Gunzip.pm","641dfe74c961eb0f4e4831423364efc0":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/warnings.pm","22ed1308a3f31a5f94e71c6f0fb34dbe":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Socket.pm","429499151c687182d1d4725e94fac5e6":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Date.pm","c911f5d0b24115fed5e55a7865d0998d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Util.pm","eea1fad1472e4c671a8fcd825165666f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/File/GlobMapper.pm","6b7a4d75d42c87da3929354fafa2a5a6":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Pod/InputObjects.pm","f868a2bca863df438aafe6a677cbfa42":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/XSLoader.pm","b337d563fd4bc958c7e0a2bba2ca86d2":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Fcntl.pm","4136dc3706a65eb00f81d47936e6a656":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/re.pm","13ca964f6779eaf669dc0a2cb16e4a1e":"t/Hexonet-connector.t","b4d42971e241d31070dc751c90e66338":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/LWP/Protocol/http.pm","bddc465e351ad0508581b94ef112d322":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/SelectSaver.pm","6ea40800cd7019daaf8702c93445e0cc":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/_punycode.pm","54f6832e36166f99576275b9c125dd18":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Condition_or_2.pm","fbbb05055b4bf56d4466313d2e9749d1":"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm","f63c5882d2a67daa05494df80602f925":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Cpanel/JSON/XS.pm","e395ee8ed56e0d580999a13a11137d1c":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/API/Stack.pm","f4d72841ab28d69c261dccb6567d4330":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Dumper.pm","6d3c4ea187b6a6d35ce72f160ccf5d1b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/V2.pm","3a12d2af9d7b145bb4f16f0f80680430":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/utf8.pm","502cf1815edcbc3fd20df299d975ea23":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Compress/Zlib/Extra.pm","a62c399466c51c4edef26948eaa0ab9a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/LWP/UserAgent.pm","723d59333870ac19c0245d3279738fc8":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/B.pm","15bec5c271d5dcd5ecf2d7954844ac7a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Statement.pm","3f40faa217288ed2cb4e34af87b6bfd6":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Encode/Encoding.pm","bfd43ce94a1665104db658d2eb351f6d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Message.pm","441328c7ffbbe42a0226ec65bde71715":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/strict.pm","bf0863d476e14e8f18602cb4e44ce4c3":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Formatter/TAP.pm","a3747c723c3e4f7277a3d214aac7cad6":"blib/lib/WebService/Hexonet/Connector/Logger.pm","8526a49ee2a041a636ce734cf5528937":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/feature.pm","3e3fdd13f63dc92a8a9915a0bd157c9f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Compress/Base/Common.pm","0d2dc88c29d9839e0eeca3d4d112f2e6":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Uncompress/Adapter/Inflate.pm","a850fcd07c6afd92aa12a113db4f227e":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Test/RequiresInternet.pm","86359e4992b99074a7f4dec5408cad5b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Scalar/Util.pm","726b74c4a599821f885c8c8a54f9adc8":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Subtest.pm","2086b44491a169338f753b5a6e662e1e":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet.pm","1091d34b57e795bdeee98f6b176ca46a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Waiting.pm","ac129b0bf9fb64817490fa63e9aa1bec":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Test/Exception.pm","056ea8f31df117e2984d9bd3a77555dc":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Encode/MIME/Name.pm","eb975164c364fa49a10fcba0ac61f890":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/Escape.pm","7259394001a24e37b135726cd925d57c":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Status.pm","53ec480788926d9bd7e6e4a17dfd366f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Condition_and_2.pm","83e752528c185f0c77dcc305bb79763a":"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm","734b0e1efb13c56e725161bc47a3a50b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Errno.pm","79abcb8ff581f4fb38ea655ac7a1fe14":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test/More.pm","bff2601248f0ce0a38ad1206ef1a4412":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Trace.pm","d3799a94cd737cfe97a66a04e560c85b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI.pm","9b166f82ac0afacbb4e2c0140725f29d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Pod/Parser.pm","f261ff12097b376fceb636639aa228c8":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Symbol.pm","ce2be007acae5d83793f7a8e2467c6d3":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/List/MoreUtils/XS.pm","e649ab91a4890ab2543e821daef73079":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Devel/Symdump.pm","8e6548e9adbc78fd971a704921e88dd0":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/List/MoreUtils/PP.pm","55f76e668fc2bba7621dd546702480ff":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/List/MoreUtils.pm","060f029d056cc44e536c7d278f69bf43":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/File/Basename.pm","fcebfe6eda6a60d759025e69d1937f07":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Net/HTTPS.pm","5dce40cd9431cfac0bc8cd59233a3b92":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/LWP.pm","dca928bbc99ebcb0ce8b8ca29c0e8518":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/IO/Socket/INET.pm","a36230b1acd9724ea3464fae5c2fa563":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Hub.pm","a3365f38a0d18cf7edc6fd4609f37216":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/LWP/Protocol.pm","4693075868b4d0372e7ee8949c804797":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/DB/Digests.pm","cd1c8a04db0a2e321825c2e09c5d04fe":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Time/Local.pm","71902954d83a25e67f455ed9996366db":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Hub/Interceptor/Terminator.pm","64b237eb89af05d90c0eb2a2db1f8a3a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test/Builder/Formatter.pm","3e4db8a2c1fb5383ddc310ec76c0836d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Fail.pm","7b8c63a78f7f5670a2abba011426c5db":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/IO/Socket/SSL.pm","e1a0cdc7842bcc1d5da2737c93e11ee5":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Condition_xor_4.pm","fec1c1985d96c2edd842ff2b71821afb":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/vars.pm","2d8f6ce093a2176b982c0e12c0194b3b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/warnings/register.pm","216f4e9da17d718aa13f04245e54316d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test/Builder/TodoDiag.pm","d89736db8fa61623ca85dcccd3678b4d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Try/Tiny.pm","765af19c195c47738cf8a9a9b18758fb":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Pass.pm","eb660dfff8e48791db52d8d7e9c72e86":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Parent.pm","36e1b34f8175e036d57e51fd7d56becd":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/overloading.pm","118f47a7245b8d8026e8a9ac78f35ebb":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Exporter.pm","b06e59e8a8a3610d1873602fa2764f28":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Config.pm","fd0a0a99ec82b3bf762eb204d32352bc":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Hub/Subtest.pm","2bb6b7fb8c733376ac82dcd6e009a9b1":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/DynaLoader.pm","7a43b540967f12cfef86857a15ffb1b7":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Branch.pm","7f6ca9c3a5e324d2b930bf484f8368f8":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/DB/IO.pm","19eb9be95022dc74914a463ed69b5a79":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Condition_or_3.pm","f53203362ec0d1a6a6511fb40d7783f4":"blib/lib/WebService/Hexonet/Connector/Response.pm","4db7e6224d25af9b1b445a77339a78e9":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/_generic.pm","19acb86e3078eff61653ff5cc8fd557a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Util/Facets2Legacy.pm","e45975770af354328fdac78e9facee40":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/bytes.pm","9e97e4101da1b7160454270a61978ad2":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/File/Find.pm","f99518263f74b3fd734893c5bbe2220b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/File/Path.pm","73fa4822fa83a3af9a52a1f9473cc3d1":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Headers.pm","10eaeacede24ef53769068e840cde7ad":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Info.pm","14ff0430d99f6872092ebed93a3553d6":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Control.pm","0021b70f7a42ecbf37c407f821ba0400":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/File/Spec/Unix.pm","aff30db1aba163c970c903942895e8b3":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Amnesty.pm","c923fac66a84c6b5dbbf01250e7c1a42":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/AutoLoader.pm","94e7b07a1e46723925348dd74e36e00e":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/IO/Seekable.pm","6743581412f90804ee1c75ddf785f507":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test/Builder.pm","91dd649602c04eaf8e17af42c908941f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Sub/Uplevel.pm","9decbec384749bf2d03f50e0092fed6c":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/JSON/MaybeXS.pm","b4c34a9ffab5e8200d7000038360f724":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/API/Context.pm","69585bcc08511ae70e57bf21ba5725bd":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Storable.pm","c4c4038f120a27913fff93deecb578af":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/POSIX.pm","abf68e57127eecdc40762020a9fd45d1":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/API/Instance.pm","ac626dcb9f8a0ed3a30098573c6ed645":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/https.pm","1804cdcea69766fe0b4587f713779d20":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/version/regex.pm","d53035083682c2a78d56d998ad7239d2":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Pod/Coverage.pm","6c33880fc6407db9a4c753e5fe46dc6d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Hub.pm","18fb8e22ce04b77a0f8031d8eb09a738":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Hub/Interceptor.pm","78c343914bca8a919d1b2e1381b8d568":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Criterion.pm","6420d689c07bb0257f37753566aec0a2":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/B/Debug.pm","35d487b01b91eb228714a3f20ce8d463":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Request.pm","bab19aa853ab850839111661b558b889":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Net/SSLeay.pm","7613d0044331ded306a09d0b3dd751f5":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Util.pm","1e7c7464cdeed5985f502156b6842c2a":"blib/lib/WebService/Hexonet/Connector/Column.pm","23b7d65e22b42927d6fcec631ab1c211":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/base.pm","0c2fafeb21af6756c8d43636888344dc":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Plan.pm","bfb4190646a2ab762a5739dc42e31e91":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Util/HashBase.pm","2260a67f78359774f10f0d3748497026":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/LWP/Protocol/https.pm","325b2a54fef3af456a516ba9e7907012":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Bail.pm","933bdc87bc7bb10108d02f18b50aa0e3":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Uncompress/RawInflate.pm","49ce31b1dc3e29d9b76b12b13412eb9a":"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm","a5b0ea0e398abace1564dc842d25e6b7":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/IO/Socket/SSL/PublicSuffix.pm","bd2cd34bc2f9f24ad6aadc997896af60":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/_idna.pm","c39c98b8678e56f8d2f371a6ba9fabfb":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Socket/IP.pm","fd1cbb1af0ada8dec295b3f1d6ee07a3":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Note.pm","9778e446baf468e32438510dd15a237f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/IO/File.pm","6fa4d12fa3a3472bc89a811f18b29ae9":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Condition_and_3.pm","1a9ca09c45cd30a045b7252284827e56":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/IO/Socket.pm","bc63a46cbb8145100f78c050d64890f0":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/IO/Handle.pm","a1f393ef9b566a209b56457b4162ac15":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Tie/Hash/NamedCapture.pm","ddc11e45a8b7e8ca9ac3ddad60ed19ae":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Plan.pm","ccb3ff7195925d66a4322e9e2f7b5091":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover.pm","9e9122bfa8bc731887ded9555b91e3ad":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/parent.pm","6ab484cf5d0dca06880566e6b0c68add":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/IO.pm","418d4e489848f0fcb1f5758d4c7f41e1":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Data/Dumper.pm","050e848d76ad5f64934101e76441bf88":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Mozilla/CA.pm","7bdd1d8dffa8d3500086802451fc020d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Encode/Config.pm","66c4f1af51bbeb98e0f6ca863f8d1615":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/PerlIO.pm","badbc5ed1a593ba6f6c88a51e9b74ead":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Exporter/Tiny.pm","405d2fac2c2c3b6ad22b62a8c19b33cc":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/http.pm","90609ebac52a5bf8bca0215a7c6fd587":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/DB/Structure.pm","bd4094c5ba749c6c6ded11dcf32a8cdb":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/About.pm","d70adb9df5f7a6e6583da3e71c707bd7":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/auto/Net/SSLeay/autosplit.ix","deb8763b49b844d004de39403966cd49":"blib/lib/WebService/Hexonet/Connector.pm","9f19550b260cc6d5c5ec05f60211329a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Encode.pm","5d974e0be05f6905bfc92ea2bbf4eb7d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Subroutine.pm","495bfd6362ba0078fafa552045acccb0":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event.pm","a2026359a587904950ea41fd9fac2fa2":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Config_heavy.pl","08d759b7d4574570858339bcbfb6dead":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Config.pm","e4222efea44983f9a3a27c6dd2e37d6b":"blib/lib/WebService/Hexonet/Connector/APIClient.pm","f0f0f2e64dad909c1e0b452cf9f7d400":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/LWP/MemberMixin.pm","c95eb51076caeff43cd14e8ba8cecc61":"blib/lib/WebService/Hexonet/Connector/Record.pm","743f957ce52c60e7206c7557800a26a4":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/List/Util.pm","9c4453fbd1e79cde4afdd5b748eadea6":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/API.pm","db4329840fa366c91d18c00712d4013f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Skip.pm","7704708f836440510aafd15b6444ca3b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/DB/IO/Base.pm","425d3fa9359e1848d00398f62207b901":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Error.pm","2508f2cf80552c1548bf8ed1c9502f87":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/DB/File.pm","fd0079470b79b95c83e81f3b1dd45b5c":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Net/HTTP/Methods.pm","51303ebe15b198e8fa1055d17fe1c4e8":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Response.pm","fc85fc813134eedf68cdbf532f5ba41b":"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm","d8032ca40b44e010673e6dd5816ca66b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Exporter/Heavy.pm","7fa64838505e4c422ed93ac3bb557671":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/deprecate.pm","6317f9f2e0e8e8677bc6d701ea020e90":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Util/ExternalMeta.pm","01d59a664a69ffaed1bd0300ba0c7134":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Carp.pm","3e5ff5fb486c95945e10e79859dd5bfb":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/integer.pm","78d0c58ceec69a2ddd7ef8807d8494ee":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/B/Deparse.pm","243b0115937229411761ef353a5541ae":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Readonly.pm","1383744e59090addf74b0862eb19299f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Diag.pm","2fb33315bc350bfa9d714d1bdac703b1":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Headers/Util.pm","c0d35a89094e0900cf5cf489dd669937":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Meta.pm","5145a64cb609481627321868ac8cfc5b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Sub/Util.pm","135b5f0b79b95fb2866bdc20d22270dc":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/DB.pm","cba56bde22624ef2137426fb334f5e88":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Time.pm","61a8e75097c29675552d31fbe494cba8":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/EventFacet/Assert.pm","ce5a27133fe88398bd1e8b74b5c69b80":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Util/Trace.pm","e60bdde345251ac96b5f59aaeb77b683":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/version.pm","35e01c1aa7d55d0ba53dfdef6be2d803":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/overload.pm","9f93ec0fd009f7ca0499666e67af455a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Uncompress/Base.pm","a8642051a53bc41f8829ae2548279c4a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/_server.pm","c3280193456386938373947a4be14c6b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Encode/Alias.pm","b4b1e951415e801a7e515c2868bccc02":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Pod.pm","cb2dfe85830228bd01da1c85867ba42d":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/attributes.pm","4f78f72b1e8039446e6206fa07e36828":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/File/Glob.pm","56cde6eba0f667ab56196613df3933c1":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/constant.pm","14b6712a337e81032e7065e8b64fc876":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test/Builder/Module.pm","c6814d673ccdacef74079d9bbc5369a2":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/DB/IO/JSON.pm","c75a6b3666713b9548b3081fad43bd09":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Exception.pm","39568935d59f143328ea6e20d30a5a9a":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/x86_64-linux/Devel/Cover/Condition.pm","ab151d4c9765559dd9ec67e80faa35e3":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Event/Ok.pm","223e01ee29ca18c38e275f8fb9156596":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/blib.pm","c46e2ebb720ee7d9c600ce5acbf34291":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Digest/base.pm","53d4e4ff093a357f9e154cedd85621af":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Net/HTTP.pm","1e09437d4c107f7ef2690f6b9995dbd7":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Pod/Find.pm","3741fe9186eb501745a73aacf8dc4900":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/Pod/Coverage/CountParents.pm","0043ba76f86652dcbd565fed7632f387":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/URI/_query.pm","084778af79fab962e27cfc585fd0aff9":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Test2/Formatter.pm","7de04e56f6795997f7d28913a2aea731":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Compress/Raw/Zlib.pm","8f8b28518975e75b60c8484e9048183f":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/IO/Socket/UNIX.pm","86e0a3269c6dcb7255e416505e1f5551":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/IO/Compress/Gzip/Constants.pm","35968627324b71ec08e9a019e7047ce3":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/Cwd.pm","ceaa202f99a130f2781db933e6629951":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/x86_64-linux/mro.pm","acc4709f0adb89bef2863771b6995d2b":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/5.30.1/Tie/Hash.pm","8a69694fc7cdab96653e2eef45ed2a0e":"/home/travis/perl5/perlbrew/perls/5.30.1/lib/site_perl/5.30.1/HTTP/Request/Common.pm"} \ No newline at end of file +{"acc4709f0adb89bef2863771b6995d2b":"/usr/local/lib/perl5/5.32.0/Tie/Hash.pm","4f1d230887cc01378d6bb3033c186a6e":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/About.pm","7704708f836440510aafd15b6444ca3b":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/DB/IO/Base.pm","ae1657871c87fe4782c6468e70a6463f":"/usr/local/lib/perl5/5.32.0/overload.pm","ab8a4ab48b1da0cfd98aea5e8dd82be9":"/usr/local/lib/perl5/5.32.0/Exporter.pm","2a6db1e064fc08fdfb8fe5ca75ba1386":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Assert.pm","05ab9141e7ecb4e49e9ef7e4cc407ee4":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/IO.pm","52deb134b96a409c666be4e83de355bd":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Util/ExternalMeta.pm","056ea8f31df117e2984d9bd3a77555dc":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Encode/MIME/Name.pm","4ae0149239e63617560a9bd9f1fd9e48":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Compress/Raw/Zlib.pm","71c68f1eb680376efc265a3caedf8022":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/API/Context.pm","f4d72841ab28d69c261dccb6567d4330":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Dumper.pm","9b166f82ac0afacbb4e2c0140725f29d":"/usr/local/lib/perl5/5.32.0/Pod/Parser.pm","e60bdde345251ac96b5f59aaeb77b683":"/usr/local/lib/perl5/5.32.0/version.pm","b41612e0f7a4c24c167f106d87a50856":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Util/Trace.pm","9f286d9c2efd7e23bf69ac980d9f4ec2":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Encode.pm","e78ef4a29b234d0318e99cad4857e999":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Socket.pm","fa6b5ca7a27f804f3940d79b4a232ab9":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Config_heavy.pl","53d4e4ff093a357f9e154cedd85621af":"/usr/local/lib/perl5/site_perl/5.32.0/Net/HTTP.pm","8da2ca640c8bdb0d1b4dc33e0dac47d4":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event.pm","ba9a4166062d8893f5b07a8bdffb3d02":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Meta.pm","1e09437d4c107f7ef2690f6b9995dbd7":"/usr/local/lib/perl5/5.32.0/Pod/Find.pm","b542fc33c207e13a297caafbaeb9f953":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/IO/File.pm","d853bc6471d69e7e877ba9c8c34b9854":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Headers.pm","fd0079470b79b95c83e81f3b1dd45b5c":"/usr/local/lib/perl5/site_perl/5.32.0/Net/HTTP/Methods.pm","b5bc84e5bfa3004326504b9e6eb608f8":"/usr/local/lib/perl5/site_perl/5.32.0/JSON/MaybeXS.pm","04943320e9647887ae846fe0304ce5ca":"/usr/local/lib/perl5/5.32.0/IO/Compress/Gzip/Constants.pm","80199417d006ea4698f0ec0cd3a83465":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Util/HashBase.pm","ea5528def978821c0e3cab7b6dab910c":"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm","f261ff12097b376fceb636639aa228c8":"/usr/local/lib/perl5/5.32.0/Symbol.pm","eea1fad1472e4c671a8fcd825165666f":"/usr/local/lib/perl5/5.32.0/File/GlobMapper.pm","223e01ee29ca18c38e275f8fb9156596":"/usr/local/lib/perl5/5.32.0/blib.pm","0558782b30619acef945db4f11265cbb":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/API.pm","bf41dfe84426559433a4ece7a763669b":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/List/MoreUtils/XS.pm","54f6832e36166f99576275b9c125dd18":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Condition_or_2.pm","35968627324b71ec08e9a019e7047ce3":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Cwd.pm","165fbab27d71898080d484e37080821c":"/usr/local/lib/perl5/5.32.0/IO/Uncompress/RawInflate.pm","760f3b80b76dcecdee601551ce1c6fa3":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Request/Common.pm","39568935d59f143328ea6e20d30a5a9a":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Condition.pm","2da5d41c1813f58af5ab01e200df616c":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Skip.pm","362e81bd6dedebc3758ecd422e84ee05":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Request.pm","a5aa8d77ab729f60922e3e8895ce2880":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/IO/Socket.pm","1c21266662929d6c29977d81f8030152":"blib/lib/WebService/Hexonet/Connector.pm","91dd649602c04eaf8e17af42c908941f":"/usr/local/lib/perl5/site_perl/5.32.0/Sub/Uplevel.pm","19eb9be95022dc74914a463ed69b5a79":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Condition_or_3.pm","1804cdcea69766fe0b4587f713779d20":"/usr/local/lib/perl5/5.32.0/version/regex.pm","6b7a4d75d42c87da3929354fafa2a5a6":"/usr/local/lib/perl5/5.32.0/Pod/InputObjects.pm","a98656fb553039f92b86eaeee6d39286":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Waiting.pm","ef141a1fa0bd32f9c47b3b1b5bfe26d8":"/usr/local/lib/perl5/5.32.0/IO/Compress/Base/Common.pm","bab19aa853ab850839111661b558b889":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Net/SSLeay.pm","4eba414010ff4178e33ab36a25633df5":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Formatter.pm","c46e2ebb720ee7d9c600ce5acbf34291":"/usr/local/lib/perl5/5.32.0/Digest/base.pm","40f6af6eedf793474e122fee93949428":"/usr/local/lib/perl5/site_perl/5.32.0/List/MoreUtils/PP.pm","2cac8fca6134693a7cc4a8eda2872716":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/IO/Handle.pm","257d13a4eb8cb5849202e96ab45814a3":"/usr/local/lib/perl5/site_perl/5.32.0/URI/_idna.pm","f868a2bca863df438aafe6a677cbfa42":"/usr/local/lib/perl5/5.32.0/XSLoader.pm","14e6f67a891acd42dfba1fdc8fbfe537":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/POSIX.pm","6fa4d12fa3a3472bc89a811f18b29ae9":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Condition_and_3.pm","a45f95fb7d59a43a30bba66c8e21f1a2":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Pass.pm","87fae078fb279e49475da7182a5df232":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/DynaLoader.pm","014c53d8d69b2acdb6a0f925bfd767c9":"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm","3f77958ef2743a5c47c6146838f4828f":"/usr/local/lib/perl5/site_perl/5.32.0/Test/Builder/Formatter.pm","0921ec15aa13688a65c12919e85f1257":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Clone.pm","e45975770af354328fdac78e9facee40":"/usr/local/lib/perl5/5.32.0/bytes.pm","d8e2251aba27dba3d26721d84d63aabc":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Ok.pm","9e21c1d5f6a1c2643ee9f151760bfd40":"/usr/local/lib/perl5/site_perl/5.32.0/Test/More.pm","7bdd1d8dffa8d3500086802451fc020d":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Encode/Config.pm","a0559e507a57905a15bb18dafb286d4e":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Subtest.pm","3d3a0ce0305d98bfaeeb2aa1e9b5b6f4":"/usr/local/lib/perl5/site_perl/5.32.0/LWP.pm","d70adb9df5f7a6e6583da3e71c707bd7":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/auto/Net/SSLeay/autosplit.ix","34620538f770a535b8a6017edff8c98d":"/usr/local/lib/perl5/5.32.0/B/Deparse.pm","c923fac66a84c6b5dbbf01250e7c1a42":"/usr/local/lib/perl5/5.32.0/AutoLoader.pm","585026d38a916f0d49b964e44dd042cd":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Plan.pm","898e18dd366f01e293d13d2c6c29e160":"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm","850d642e7016f744662773458db483cd":"blib/lib/WebService/Hexonet/Connector/Record.pm","53ec480788926d9bd7e6e4a17dfd366f":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Condition_and_2.pm","b39eb9ff8b0dc80c2889fec674352877":"/usr/local/lib/perl5/site_perl/5.32.0/URI/_generic.pm","1ec528af491eaba49489aa00ea1a8d73":"/usr/local/lib/perl5/site_perl/5.32.0/IO/Socket/SSL/PublicSuffix.pm","743485741ffe1a8b479a119e65f68c63":"/usr/local/lib/perl5/site_perl/5.32.0/Mozilla/CA.pm","fec1c1985d96c2edd842ff2b71821afb":"/usr/local/lib/perl5/5.32.0/vars.pm","b18c17780b4cee3860944f1a528a5322":"/usr/local/lib/perl5/5.32.0/IO/Uncompress/Base.pm","759149871a1e2e06fbd6bc505f09960d":"/usr/local/lib/perl5/5.32.0/feature.pm","77232fa70a84cbc1e9c58c4959afa1c1":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Hub/Interceptor/Terminator.pm","09d024affae4ccfbc343ddc7e427e732":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Fail.pm","e649ab91a4890ab2543e821daef73079":"/usr/local/lib/perl5/site_perl/5.32.0/Devel/Symdump.pm","8ef2dd5040198e663e35ef095f19ec46":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Diag.pm","140f2f8a417cbacc14af0da67b3c426c":"blib/lib/WebService/Hexonet/Connector/Column.pm","6304aaa44293182ba995c4a757556cab":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Storable.pm","15072ba5bfa718522fa24cf248e85d90":"blib/lib/WebService/Hexonet/Connector/Response.pm","1e569bf180f62dbb2ada581d96b2a13b":"/usr/local/lib/perl5/site_perl/5.32.0/Test/Builder/Module.pm","1a1afdae0ca85c086c9ca824e6f1b90e":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Hub.pm","c6a94e4523e7de420a26268beaebd076":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Exception.pm","5a0595733469980dcc1efd7670c80e76":"/usr/local/lib/perl5/site_perl/5.32.0/LWP/Protocol/https.pm","b4b1e951415e801a7e515c2868bccc02":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Pod.pm","20a75bea600620f1e140d595942f84de":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Info.pm","7f6ca9c3a5e324d2b930bf484f8368f8":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/DB/IO.pm","428d6d46a8df452963d79d4a79e1bd48":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Error.pm","e1d4cf9ef957b7205cfd357f832d9883":"/usr/local/lib/perl5/site_perl/5.32.0/URI/_query.pm","a22d28f90955ff2a37ae8b1dec4611a0":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Scalar/Util.pm","2f8b3de012d1010dc9f6c84833d52c7c":"/usr/local/lib/perl5/5.32.0/IO/Uncompress/Gunzip.pm","9e4fb3e9ce2ce52fa241d7147c361133":"/usr/local/lib/perl5/5.32.0/warnings.pm","bddc465e351ad0508581b94ef112d322":"/usr/local/lib/perl5/5.32.0/SelectSaver.pm","c56b9c7f30ea334867f6c63dfe43e0cd":"/usr/local/lib/perl5/site_perl/5.32.0/LWP/Protocol/http.pm","01d59a664a69ffaed1bd0300ba0c7134":"/usr/local/lib/perl5/5.32.0/Carp.pm","fcebfe6eda6a60d759025e69d1937f07":"/usr/local/lib/perl5/site_perl/5.32.0/Net/HTTPS.pm","3741fe9186eb501745a73aacf8dc4900":"/usr/local/lib/perl5/site_perl/5.32.0/Pod/Coverage/CountParents.pm","3b5b6ed59333b99a52dab28068df7180":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Hub/Subtest.pm","1bc9200cea677db363a0ecc1a2a7c45a":"/usr/local/lib/perl5/site_perl/5.32.0/URI/_server.pm","53a0531131976c4091d66b73f5f9da19":"/usr/local/lib/perl5/5.32.0/IO/Compress/Zlib/Extra.pm","418d4e489848f0fcb1f5758d4c7f41e1":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Data/Dumper.pm","d53035083682c2a78d56d998ad7239d2":"/usr/local/lib/perl5/site_perl/5.32.0/Pod/Coverage.pm","bc841e455d781039c264158f6fc48cd9":"/usr/local/lib/perl5/5.32.0/PerlIO.pm","ac129b0bf9fb64817490fa63e9aa1bec":"/usr/local/lib/perl5/site_perl/5.32.0/Test/Exception.pm","662f048b1d26e0184e204122d57e2da4":"/usr/local/lib/perl5/site_perl/5.32.0/Test/Builder.pm","b97d8fd5a2e67810bd658c6adee41010":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/IO/Socket/UNIX.pm","59c57db5678312b654eb208041b2dd04":"t/Hexonet-connector.t","d0b8bcd2233f97242244f19a45e54fb4":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Config.pm","7613d0044331ded306a09d0b3dd751f5":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Util.pm","e936d83d6990004dbec16569c190df09":"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm","1858aea3ff04a20c8e73de55b27427fc":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/IO/Socket/INET.pm","7fa64838505e4c422ed93ac3bb557671":"/usr/local/lib/perl5/5.32.0/deprecate.pm","cb2dfe85830228bd01da1c85867ba42d":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/attributes.pm","060f029d056cc44e536c7d278f69bf43":"/usr/local/lib/perl5/5.32.0/File/Basename.pm","0b482786278b5e79d0c61d5cb4f64a91":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/re.pm","09d50ad513c52b1c1b1bf4e0f60f3c69":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Bail.pm","70ce4d2181fd70b13861566b5b76dc23":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Headers/Util.pm","bb5d333117d6a63c7f784be95f3b5d3c":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/B.pm","2149ee4f6a812a59fb3a8adf0d19cd20":"/usr/local/lib/perl5/site_perl/5.32.0/LWP/MemberMixin.pm","23b7d65e22b42927d6fcec631ab1c211":"/usr/local/lib/perl5/5.32.0/base.pm","243b0115937229411761ef353a5541ae":"/usr/local/lib/perl5/site_perl/5.32.0/Readonly.pm","0e54bf15c81d6ccfcee515ec1676aed5":"/usr/local/lib/perl5/site_perl/5.32.0/URI.pm","9339f9e86bd5ed7caff8f0d42495e422":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/File/Glob.pm","cbe1600ad9832afc25c693103f9713a4":"/usr/local/lib/perl5/site_perl/5.32.0/URI/http.pm","7e1303211a97edca3318eaeb5d765d9d":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Sub/Util.pm","36e1b34f8175e036d57e51fd7d56becd":"/usr/local/lib/perl5/5.32.0/overloading.pm","ebcd5cfd2288291a4d7d10ef626b76e3":"/usr/local/lib/perl5/5.32.0/IO/Uncompress/Adapter/Inflate.pm","90609ebac52a5bf8bca0215a7c6fd587":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/DB/Structure.pm","679c8e85b5440320ef24e2b7caeea18a":"/usr/local/lib/perl5/site_perl/5.32.0/LWP/UserAgent.pm","862111462b694463422e674e1ab83ac3":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/API/Stack.pm","3bb536b6e4c0dc8411540c0d0c745faa":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Amnesty.pm","8d3ac59a205c7fe0c092341f8e95a026":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/IO/Seekable.pm","c39c98b8678e56f8d2f371a6ba9fabfb":"/usr/local/lib/perl5/5.32.0/IO/Socket/IP.pm","78c343914bca8a919d1b2e1381b8d568":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Criterion.pm","20279b94df9b9dbc76a3b4d0439324a8":"/usr/local/lib/perl5/5.32.0/Exporter/Heavy.pm","2d8f6ce093a2176b982c0e12c0194b3b":"/usr/local/lib/perl5/5.32.0/warnings/register.pm","15650a3dba0d2e7914c08a0c29a54b95":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Hub.pm","56cde6eba0f667ab56196613df3933c1":"/usr/local/lib/perl5/5.32.0/constant.pm","ece8cc9510aeac6d1a4205eacf297241":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Config.pm","3a12d2af9d7b145bb4f16f0f80680430":"/usr/local/lib/perl5/5.32.0/utf8.pm","7bb1ee0d94b85e96c4dd8800d9b93c5a":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/mro.pm","3e5ff5fb486c95945e10e79859dd5bfb":"/usr/local/lib/perl5/5.32.0/integer.pm","615276c00c03ab274730894c9d72e2c6":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Status.pm","06c5174d5be74c84821e733caeaf8342":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/List/Util.pm","c9a850d325fba61d65035abe50fdf207":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Response.pm","6420d689c07bb0257f37753566aec0a2":"/usr/local/lib/perl5/site_perl/5.32.0/B/Debug.pm","15bec5c271d5dcd5ecf2d7954844ac7a":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Statement.pm","687e948530ea3552ccc1485cd6bad882":"/usr/local/lib/perl5/site_perl/5.32.0/URI/_punycode.pm","4693075868b4d0372e7ee8949c804797":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/DB/Digests.pm","0cb4732c1304c6aeaa4963da6a85271d":"/usr/local/lib/perl5/site_perl/5.32.0/List/MoreUtils.pm","2e37e0dc6105b58bf379c073a8c65a9e":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Util/Facets2Legacy.pm","579c78cc80b06ef614e86e9bc0bb0ad7":"/usr/local/lib/perl5/5.32.0/File/Find.pm","e1a0cdc7842bcc1d5da2737c93e11ee5":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Condition_xor_4.pm","ccb3ff7195925d66a4322e9e2f7b5091":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover.pm","135b5f0b79b95fb2866bdc20d22270dc":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/DB.pm","187e602cadf3bd2675a6d11ebc19118f":"blib/lib/WebService/Hexonet/Connector/Logger.pm","2792d0dfdb9b839f20194ca40b0ca29b":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Formatter/TAP.pm","74c3e2fa572ac2dd5f1348fde238f8c0":"blib/lib/WebService/Hexonet/Connector/APIClient.pm","9f3083782b240d4a04b59bb2abca5d8f":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Cpanel/JSON/XS.pm","7d46d20db1b4ec4f03717270e2a3e82e":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet.pm","632ec54c3bd298e21a47d1c12e7153ae":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/API/Instance.pm","de7046efa7428ea635dbb5c6567d8774":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Note.pm","c4843ed2f492c2624b71f14cc29864e6":"/usr/local/lib/perl5/site_perl/5.32.0/LWP/Protocol.pm","c3280193456386938373947a4be14c6b":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Encode/Alias.pm","441328c7ffbbe42a0226ec65bde71715":"/usr/local/lib/perl5/5.32.0/strict.pm","22e5f888b47a0cbea617ba76c28a78ec":"/usr/local/lib/perl5/site_perl/5.32.0/Exporter/Tiny.pm","0021b70f7a42ecbf37c407f821ba0400":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/File/Spec/Unix.pm","2508f2cf80552c1548bf8ed1c9502f87":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/DB/File.pm","0fe9e48f14ed0c36279b1760fd60792e":"/usr/local/lib/perl5/site_perl/5.32.0/IO/Socket/SSL.pm","fdb5f9877d9c7a060f125fccd78f2e72":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Util.pm","33ceb12a2f4a71ee41cc6e0d87203fb3":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/V2.pm","cba56bde22624ef2137426fb334f5e88":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Time.pm","d89736db8fa61623ca85dcccd3678b4d":"/usr/local/lib/perl5/site_perl/5.32.0/Try/Tiny.pm","7a43b540967f12cfef86857a15ffb1b7":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Branch.pm","3f40faa217288ed2cb4e34af87b6bfd6":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Encode/Encoding.pm","c6814d673ccdacef74079d9bbc5369a2":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/DB/IO/JSON.pm","cd1c8a04db0a2e321825c2e09c5d04fe":"/usr/local/lib/perl5/5.32.0/Time/Local.pm","1f276e9adc90e85144ac43b3ec0fcb6c":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Hub/Interceptor.pm","a39bb86fee661d92b42c3dbd99500fcb":"/usr/local/lib/perl5/site_perl/5.32.0/URI/Escape.pm","27d6a0e22b386f69ef628554a1e5ddb2":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Errno.pm","1abaf367f411a7a8634a80d8d12c3761":"/usr/local/lib/perl5/5.32.0/parent.pm","13e97e2e035e935d0b4ba1aa03a62f99":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Date.pm","876a1ad31e31f7b3d7988ffa0e79bfaf":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Control.pm","f99518263f74b3fd734893c5bbe2220b":"/usr/local/lib/perl5/5.32.0/File/Path.pm","b337d563fd4bc958c7e0a2bba2ca86d2":"/usr/local/lib/perl5/5.32.0/x86_64-linux-gnu/Fcntl.pm","60f231f16b05b236f1e20deac893a298":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Parent.pm","9ac3faadfa29004613793e2c4b5100df":"/usr/local/lib/perl5/site_perl/5.32.0/Test/Builder/TodoDiag.pm","230cc1f1993d8e14b1a240978fae0560":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/Event/Plan.pm","2e5083f26bfdc29efaa005a463b76677":"/usr/local/lib/perl5/site_perl/5.32.0/HTTP/Message.pm","a850fcd07c6afd92aa12a113db4f227e":"/usr/local/lib/perl5/site_perl/5.32.0/Test/RequiresInternet.pm","5d974e0be05f6905bfc92ea2bbf4eb7d":"/usr/local/lib/perl5/site_perl/5.32.0/x86_64-linux-gnu/Devel/Cover/Subroutine.pm","3d7bced967ec36cd894c3ac82344f94b":"/usr/local/lib/perl5/site_perl/5.32.0/Test2/EventFacet/Trace.pm","5e0846ba3d1c49ec87a1c750c5ef2de5":"/usr/local/lib/perl5/site_perl/5.32.0/URI/https.pm"} \ No newline at end of file diff --git a/cover_db/structure/014c53d8d69b2acdb6a0f925bfd767c9 b/cover_db/structure/014c53d8d69b2acdb6a0f925bfd767c9 new file mode 100644 index 0000000..6df42ad --- /dev/null +++ b/cover_db/structure/014c53d8d69b2acdb6a0f925bfd767c9 @@ -0,0 +1 @@ +{"file":"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm","pod":[[15,"new"],[31,"getCode"],[37,"getDescription"],[43,"getPlain"],[49,"getQueuetime"],[58,"getHash"],[64,"getRuntime"],[73,"isError"],[80,"isSuccess"],[87,"isTmpError"],[94,"isPending"]],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[9,"BEGIN"],[15,"new"],[31,"getCode"],[37,"getDescription"],[43,"getPlain"],[49,"getQueuetime"],[58,"getHash"],[64,"getRuntime"],[73,"isError"],[80,"isSuccess"],[87,"isTmpError"],[94,"isPending"]],"start":{"7":{"BEGIN":[{"statement":11,"time":null,"condition":null,"branch":null,"subroutine":4,"pod":null}]},"31":{"getCode":[{"pod":1,"subroutine":7,"statement":27,"condition":2,"time":null,"branch":2}]},"94":{"isPending":[{"subroutine":16,"pod":10,"branch":4,"time":null,"condition":2,"statement":52}]},"5":{"BEGIN":[{"subroutine":2,"pod":null,"statement":5,"condition":null,"time":null,"branch":null}]},"4":{"BEGIN":[{"pod":null,"subroutine":1,"statement":2,"branch":null,"time":null,"condition":null}]},"80":{"isSuccess":[{"statement":46,"condition":2,"time":null,"branch":4,"subroutine":14,"pod":8}]},"15":{"new":[{"statement":17,"time":null,"condition":null,"branch":null,"subroutine":6,"pod":null}]},"6":{"BEGIN":[{"subroutine":3,"pod":null,"statement":8,"branch":null,"time":null,"condition":null}]},"58":{"getHash":[{"pod":5,"subroutine":11,"statement":37,"condition":2,"time":null,"branch":3}]},"43":{"getPlain":[{"condition":2,"time":null,"branch":2,"statement":31,"pod":3,"subroutine":9}]},"73":{"isError":[{"pod":7,"subroutine":13,"condition":2,"time":null,"branch":4,"statement":43}]},"49":{"getQueuetime":[{"pod":4,"subroutine":10,"branch":2,"condition":2,"time":null,"statement":33}]},"37":{"getDescription":[{"subroutine":8,"pod":2,"statement":29,"condition":2,"time":null,"branch":2}]},"-1":{"__COVER__":[{"statement":56,"branch":5,"condition":2,"time":null,"subroutine":17,"pod":11}]},"9":{"BEGIN":[{"statement":14,"branch":null,"condition":null,"time":null,"subroutine":5,"pod":null}]},"87":{"isTmpError":[{"pod":9,"subroutine":15,"time":null,"condition":2,"branch":4,"statement":49}]},"64":{"getRuntime":[{"time":null,"condition":2,"branch":3,"statement":39,"subroutine":12,"pod":6}]},"3":{"BEGIN":[{"statement":null,"time":null,"condition":null,"branch":null,"subroutine":null,"pod":null}]}},"branch":[[17,{"text":"if (not defined $raw or length $raw == 0)"}],[22,{"text":"unless (defined $self->{'hash'}{'DESCRIPTION'} and defined $self->{'hash'}{'CODE'})"}],[50,{"text":"if (defined $self->{'hash'}{'QUEUETIME'})"}],[65,{"text":"if (defined $self->{'hash'}{'RUNTIME'})"}],[95,{"text":"if (defined $self->{'hash'}{'PENDING'})"}]],"condition":[[17,{"left":"not defined $raw","right":"length $raw == 0","op":"or","type":"or_3"}],[22,{"type":"and_3","op":"and","right":"defined $self->{'hash'}{'CODE'}","left":"defined $self->{'hash'}{'DESCRIPTION'}"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,9,9,9,15,16,17,18,20,21,22,23,24,26,31,32,37,38,43,44,49,50,51,53,58,59,64,65,66,68,73,74,75,80,81,82,87,88,89,94,95,96,98],"digest":"014c53d8d69b2acdb6a0f925bfd767c9"} \ No newline at end of file diff --git a/cover_db/structure/1e7c7464cdeed5985f502156b6842c2a.lock b/cover_db/structure/014c53d8d69b2acdb6a0f925bfd767c9.lock similarity index 100% rename from cover_db/structure/1e7c7464cdeed5985f502156b6842c2a.lock rename to cover_db/structure/014c53d8d69b2acdb6a0f925bfd767c9.lock diff --git a/cover_db/structure/140f2f8a417cbacc14af0da67b3c426c b/cover_db/structure/140f2f8a417cbacc14af0da67b3c426c new file mode 100644 index 0000000..f563258 --- /dev/null +++ b/cover_db/structure/140f2f8a417cbacc14af0da67b3c426c @@ -0,0 +1 @@ +{"branch":[[35,{"text":"if $self->hasDataIndex($idx)"}]],"digest":"140f2f8a417cbacc14af0da67b3c426c","statement":[3,3,4,4,4,5,5,5,7,7,7,11,12,13,14,14,15,16,21,22,27,28,33,34,35,37,42,43,44],"pod":[[11,"new"],[21,"getKey"],[27,"getData"],[33,"getDataByIndex"],[42,"hasDataIndex"]],"file":"blib/lib/WebService/Hexonet/Connector/Column.pm","subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[7,"BEGIN"],[11,"new"],[21,"getKey"],[27,"getData"],[33,"getDataByIndex"],[42,"hasDataIndex"]],"start":{"4":{"BEGIN":[{"statement":2,"condition":null,"time":null,"branch":null,"pod":null,"subroutine":1}]},"5":{"BEGIN":[{"subroutine":2,"pod":null,"statement":5,"time":null,"condition":null,"branch":null}]},"11":{"new":[{"subroutine":4,"pod":null,"statement":11,"branch":null,"condition":null,"time":null}]},"7":{"BEGIN":[{"statement":8,"branch":null,"condition":null,"time":null,"subroutine":3,"pod":null}]},"33":{"getDataByIndex":[{"pod":3,"subroutine":7,"time":null,"condition":null,"branch":null,"statement":22}]},"21":{"getKey":[{"statement":18,"condition":null,"time":null,"branch":null,"subroutine":5,"pod":1}]},"27":{"getData":[{"pod":2,"subroutine":6,"branch":null,"condition":null,"time":null,"statement":20}]},"42":{"hasDataIndex":[{"time":null,"condition":null,"branch":1,"statement":26,"pod":4,"subroutine":8}]},"-1":{"__COVER__":[{"branch":1,"condition":null,"time":null,"statement":29,"pod":5,"subroutine":9}]},"3":{"BEGIN":[{"time":null,"condition":null,"branch":null,"statement":null,"pod":null,"subroutine":null}]}}} \ No newline at end of file diff --git a/cover_db/structure/49ce31b1dc3e29d9b76b12b13412eb9a.lock b/cover_db/structure/140f2f8a417cbacc14af0da67b3c426c.lock similarity index 100% rename from cover_db/structure/49ce31b1dc3e29d9b76b12b13412eb9a.lock rename to cover_db/structure/140f2f8a417cbacc14af0da67b3c426c.lock diff --git a/cover_db/structure/15072ba5bfa718522fa24cf248e85d90 b/cover_db/structure/15072ba5bfa718522fa24cf248e85d90 new file mode 100644 index 0000000..0892ab3 --- /dev/null +++ b/cover_db/structure/15072ba5bfa718522fa24cf248e85d90 @@ -0,0 +1 @@ +{"digest":"15072ba5bfa718522fa24cf248e85d90","statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,14,14,14,18,19,21,22,23,25,25,26,27,28,30,31,33,34,35,37,39,40,41,42,44,45,46,46,47,48,49,49,50,51,52,53,56,57,58,59,60,61,62,63,64,68,71,76,77,77,78,78,79,84,85,85,86,91,92,93,93,93,94,96,101,102,103,104,109,110,110,115,116,116,121,122,127,128,129,129,130,131,133,138,139,140,141,142,144,149,150,152,157,158,159,160,161,162,165,165,166,167,172,173,174,175,176,177,180,181,182,184,189,190,191,191,192,194,201,206,207,209,214,215,216,217,219,220,221,222,227,228,229,230,231,233,238,239,250,255,256,257,258,260,261,262,267,268,270,275,276,277,279,284,285,285,290,291,291,292,297,298,299,300,301,302,305,310,311,312,313,314,315,318,323,324,325,326,328,329,330,332,337,338,339,340,342,343,344,346,351,352,353,358,359,359,359,360,365,366,366,367,372,373,374,374,375,380,381],"condition":[[141,{"op":"and","left":"defined $first","right":"$limit > 0","type":"and_3"}],[230,{"right":"$limit > 0","left":"$t > 0","op":"and","type":"and_3"}],[276,{"op":"and","right":"$self->getRecordsCount > $idx","left":"$idx >= 0","type":"and_3"}],[367,{"type":"and_3","right":"$self->{'recordIndex'} < $len","left":"$len > 0 && $self->{'recordIndex'} >= 0","op":"&&"}],[375,{"right":"$next < $len","left":"$self->_hasCurrentRecord","op":"&&","type":"and_3"}],[381,{"type":"and_3","op":"&&","right":"$self->_hasCurrentRecord","left":"$self->{'recordIndex'} > 0"}]],"branch":[[22,{"text":"unless (defined $ph)"}],[21,{"text":"if ($self->{'raw'} =~ /[{][[:upper:]_]+[}]/gmsux)"}],[35,{"text":"if (defined $self->{'command'}{'PASSWORD'})"}],[52,{"text":"if ($len > $count)"}],[63,{"text":"if (defined $v)"}],[61,{"text":"if (defined $col)"}],[45,{"text":"if (defined $h->{'PROPERTY'})"}],[92,{"text":"if ($self->_hasColumn($key))"}],[103,{"text":"if defined $col"}],[141,{"text":"if (defined $first and $limit > 0)"}],[150,{"text":"if $self->_hasCurrentRecord"}],[161,{"text":"if (defined $f)"}],[159,{"text":"if (defined $col)"}],[166,{"text":"if $len > 0"}],[176,{"text":"if (defined $l)"}],[174,{"text":"if (defined $col)"}],[181,{"text":"if ($len > 0)"}],[207,{"text":"if $self->_hasNextRecord"}],[216,{"text":"if ($cp < 0)"}],[221,{"text":"if $page <= $pages"}],[230,{"text":"if ($t > 0 and $limit > 0)"}],[257,{"text":"if ($cp < 0)"}],[261,{"text":"if $np > 0"}],[268,{"text":"if $self->_hasPreviousRecord"}],[276,{"text":"if ($idx >= 0 and $self->getRecordsCount > $idx)"}],[301,{"text":"if (defined $t)"}],[299,{"text":"if (defined $col)"}],[314,{"text":"if (defined $l)"}],[312,{"text":"if (defined $col)"}],[325,{"text":"if ($cp < 0)"}],[329,{"text":"if ($np <= $self->getNumberOfPages)"}],[339,{"text":"if ($cp < 0)"}],[343,{"text":"if ($pp > 0)"}]],"start":{"127":{"getCommandPlain":[{"pod":8,"subroutine":19,"statement":101,"branch":9,"time":null,"condition":null}]},"227":{"getNumberOfPages":[{"pod":16,"subroutine":27,"branch":20,"condition":1,"time":null,"statement":155}]},"109":{"getColumnKeys":[{"statement":93,"branch":9,"time":null,"condition":null,"subroutine":16,"pod":5}]},"380":{"_hasPreviousRecord":[{"statement":232,"branch":33,"condition":5,"time":null,"pod":28,"subroutine":43}]},"76":{"addColumn":[{"time":null,"condition":null,"branch":7,"statement":72,"pod":1,"subroutine":11}]},"5":{"BEGIN":[{"subroutine":2,"pod":null,"statement":5,"condition":null,"time":null,"branch":null}]},"157":{"getFirstRecordIndex":[{"time":null,"condition":1,"branch":11,"statement":117,"pod":11,"subroutine":22}]},"206":{"getNextRecord":[{"branch":17,"time":null,"condition":1,"statement":144,"subroutine":25,"pod":14}]},"310":{"getRecordsLimitation":[{"time":null,"condition":3,"branch":27,"statement":192,"pod":24,"subroutine":35}]},"121":{"getCommand":[{"pod":7,"subroutine":18,"statement":99,"condition":null,"time":null,"branch":9}]},"290":{"getRecordsCount":[{"statement":181,"condition":3,"time":null,"branch":25,"subroutine":33,"pod":22}]},"267":{"getPreviousRecord":[{"statement":171,"condition":2,"time":null,"branch":23,"subroutine":30,"pod":19}]},"255":{"getPreviousPageNumber":[{"pod":18,"subroutine":29,"time":null,"condition":2,"branch":21,"statement":164}]},"172":{"getLastRecordIndex":[{"statement":127,"time":null,"condition":1,"branch":14,"subroutine":23,"pod":12}]},"323":{"hasNextPage":[{"statement":199,"time":null,"condition":3,"branch":29,"subroutine":36,"pod":25}]},"11":{"BEGIN":[{"subroutine":8,"pod":null,"statement":23,"condition":null,"time":null,"branch":null}]},"14":{"BEGIN":[{"pod":null,"subroutine":9,"statement":26,"branch":null,"time":null,"condition":null}]},"101":{"getColumnIndex":[{"pod":4,"subroutine":15,"statement":89,"condition":null,"time":null,"branch":8}]},"93":{"__ANON__":[{"time":null,"condition":null,"branch":8,"statement":89,"pod":4,"subroutine":14}]},"18":{"new":[{"statement":29,"branch":null,"time":null,"condition":null,"pod":null,"subroutine":10}]},"4":{"BEGIN":[{"branch":null,"condition":null,"time":null,"statement":2,"pod":null,"subroutine":1}]},"297":{"getRecordsTotalCount":[{"pod":23,"subroutine":34,"branch":25,"condition":3,"time":null,"statement":185}]},"358":{"_hasColumn":[{"condition":3,"time":null,"branch":33,"statement":218,"subroutine":39,"pod":28}]},"138":{"getCurrentPageNumber":[{"pod":9,"subroutine":20,"branch":9,"condition":null,"time":null,"statement":108}]},"84":{"addRecord":[{"statement":78,"branch":7,"condition":null,"time":null,"subroutine":12,"pod":2}]},"189":{"getListHash":[{"subroutine":24,"pod":13,"statement":137,"condition":1,"time":null,"branch":17}]},"238":{"getPagination":[{"statement":161,"branch":21,"time":null,"condition":2,"subroutine":28,"pod":17}]},"115":{"getColumns":[{"subroutine":17,"pod":6,"statement":96,"condition":null,"time":null,"branch":9}]},"149":{"getCurrentRecord":[{"statement":114,"branch":10,"time":null,"condition":1,"pod":10,"subroutine":21}]},"351":{"rewindRecordList":[{"condition":3,"time":null,"branch":33,"statement":215,"subroutine":38,"pod":27}]},"-1":{"__COVER__":[{"statement":234,"branch":33,"condition":6,"time":null,"subroutine":44,"pod":28}]},"8":{"BEGIN":[{"pod":null,"subroutine":5,"statement":14,"condition":null,"time":null,"branch":null}]},"6":{"BEGIN":[{"statement":8,"branch":null,"condition":null,"time":null,"pod":null,"subroutine":3}]},"337":{"hasPreviousPage":[{"statement":207,"branch":31,"time":null,"condition":3,"subroutine":37,"pod":26}]},"214":{"getNextPageNumber":[{"subroutine":26,"pod":15,"statement":147,"branch":18,"condition":1,"time":null}]},"9":{"BEGIN":[{"time":null,"condition":null,"branch":null,"statement":17,"pod":null,"subroutine":6}]},"3":{"BEGIN":[{"statement":null,"branch":null,"condition":null,"time":null,"pod":null,"subroutine":null}]},"7":{"BEGIN":[{"pod":null,"subroutine":4,"time":null,"condition":null,"branch":null,"statement":11}]},"372":{"_hasNextRecord":[{"subroutine":42,"pod":28,"statement":227,"time":null,"condition":4,"branch":33}]},"284":{"getRecords":[{"subroutine":32,"pod":21,"statement":178,"condition":3,"time":null,"branch":25}]},"10":{"BEGIN":[{"statement":20,"condition":null,"time":null,"branch":null,"pod":null,"subroutine":7}]},"275":{"getRecord":[{"pod":20,"subroutine":31,"condition":2,"time":null,"branch":24,"statement":174}]},"359":{"__ANON__":[{"statement":223,"condition":3,"time":null,"branch":33,"subroutine":40,"pod":28}]},"365":{"_hasCurrentRecord":[{"subroutine":41,"pod":28,"condition":3,"time":null,"branch":33,"statement":223}]},"91":{"getColumn":[{"pod":3,"subroutine":13,"statement":82,"branch":7,"time":null,"condition":null}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[9,"BEGIN"],[10,"BEGIN"],[11,"BEGIN"],[14,"BEGIN"],[18,"new"],[76,"addColumn"],[84,"addRecord"],[91,"getColumn"],[93,"__ANON__"],[101,"getColumnIndex"],[109,"getColumnKeys"],[115,"getColumns"],[121,"getCommand"],[127,"getCommandPlain"],[138,"getCurrentPageNumber"],[149,"getCurrentRecord"],[157,"getFirstRecordIndex"],[172,"getLastRecordIndex"],[189,"getListHash"],[206,"getNextRecord"],[214,"getNextPageNumber"],[227,"getNumberOfPages"],[238,"getPagination"],[255,"getPreviousPageNumber"],[267,"getPreviousRecord"],[275,"getRecord"],[284,"getRecords"],[290,"getRecordsCount"],[297,"getRecordsTotalCount"],[310,"getRecordsLimitation"],[323,"hasNextPage"],[337,"hasPreviousPage"],[351,"rewindRecordList"],[358,"_hasColumn"],[359,"__ANON__"],[365,"_hasCurrentRecord"],[372,"_hasNextRecord"],[380,"_hasPreviousRecord"]],"pod":[[18,"new"],[76,"addColumn"],[84,"addRecord"],[91,"getColumn"],[101,"getColumnIndex"],[109,"getColumnKeys"],[115,"getColumns"],[121,"getCommand"],[127,"getCommandPlain"],[138,"getCurrentPageNumber"],[149,"getCurrentRecord"],[157,"getFirstRecordIndex"],[172,"getLastRecordIndex"],[189,"getListHash"],[206,"getNextRecord"],[214,"getNextPageNumber"],[227,"getNumberOfPages"],[238,"getPagination"],[255,"getPreviousPageNumber"],[267,"getPreviousRecord"],[275,"getRecord"],[284,"getRecords"],[290,"getRecordsCount"],[297,"getRecordsTotalCount"],[310,"getRecordsLimitation"],[323,"hasNextPage"],[337,"hasPreviousPage"],[351,"rewindRecordList"]],"file":"blib/lib/WebService/Hexonet/Connector/Response.pm"} \ No newline at end of file diff --git a/cover_db/structure/83e752528c185f0c77dcc305bb79763a.lock b/cover_db/structure/15072ba5bfa718522fa24cf248e85d90.lock similarity index 100% rename from cover_db/structure/83e752528c185f0c77dcc305bb79763a.lock rename to cover_db/structure/15072ba5bfa718522fa24cf248e85d90.lock diff --git a/cover_db/structure/187e602cadf3bd2675a6d11ebc19118f b/cover_db/structure/187e602cadf3bd2675a6d11ebc19118f new file mode 100644 index 0000000..84cafd2 --- /dev/null +++ b/cover_db/structure/187e602cadf3bd2675a6d11ebc19118f @@ -0,0 +1 @@ +{"branch":[[19,{"text":"if (defined $error) { }"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,8,8,8,12,13,18,19,20,20,21,21,22,22,23,23,25,25,26,26,27,27,29],"digest":"187e602cadf3bd2675a6d11ebc19118f","start":{"18":{"log":[{"pod":1,"subroutine":6,"statement":16,"condition":null,"time":null,"branch":null}]},"4":{"BEGIN":[{"statement":2,"condition":null,"time":null,"branch":null,"pod":null,"subroutine":1}]},"5":{"BEGIN":[{"pod":null,"subroutine":2,"statement":5,"time":null,"condition":null,"branch":null}]},"12":{"new":[{"pod":null,"subroutine":5,"branch":null,"condition":null,"time":null,"statement":14}]},"3":{"BEGIN":[{"statement":null,"time":null,"condition":null,"branch":null,"pod":null,"subroutine":null}]},"-1":{"__COVER__":[{"pod":2,"subroutine":7,"statement":33,"condition":null,"time":null,"branch":1}]},"8":{"BEGIN":[{"subroutine":4,"pod":null,"branch":null,"condition":null,"time":null,"statement":11}]},"6":{"BEGIN":[{"branch":null,"condition":null,"time":null,"statement":8,"subroutine":3,"pod":null}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[8,"BEGIN"],[12,"new"],[18,"log"]],"pod":[[12,"new"],[18,"log"]],"file":"blib/lib/WebService/Hexonet/Connector/Logger.pm"} \ No newline at end of file diff --git a/cover_db/structure/a3747c723c3e4f7277a3d214aac7cad6.lock b/cover_db/structure/187e602cadf3bd2675a6d11ebc19118f.lock similarity index 100% rename from cover_db/structure/a3747c723c3e4f7277a3d214aac7cad6.lock rename to cover_db/structure/187e602cadf3bd2675a6d11ebc19118f.lock diff --git a/cover_db/structure/1c21266662929d6c29977d81f8030152 b/cover_db/structure/1c21266662929d6c29977d81f8030152 new file mode 100644 index 0000000..bef24d0 --- /dev/null +++ b/cover_db/structure/1c21266662929d6c29977d81f8030152 @@ -0,0 +1 @@ +{"file":"blib/lib/WebService/Hexonet/Connector.pm","statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12,12,13,13,13,15,15,15],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[9,"BEGIN"],[10,"BEGIN"],[11,"BEGIN"],[12,"BEGIN"],[13,"BEGIN"],[15,"BEGIN"]],"start":{"-1":{"__COVER__":[{"subroutine":12,"pod":null,"time":null,"condition":null,"branch":null,"statement":35}]},"8":{"BEGIN":[{"pod":null,"subroutine":5,"statement":14,"branch":null,"condition":null,"time":null}]},"6":{"BEGIN":[{"statement":8,"condition":null,"time":null,"branch":null,"pod":null,"subroutine":3}]},"15":{"BEGIN":[{"branch":null,"time":null,"condition":null,"statement":32,"subroutine":11,"pod":null}]},"4":{"BEGIN":[{"subroutine":1,"pod":null,"time":null,"condition":null,"branch":null,"statement":2}]},"5":{"BEGIN":[{"pod":null,"subroutine":2,"statement":5,"condition":null,"time":null,"branch":null}]},"7":{"BEGIN":[{"subroutine":4,"pod":null,"condition":null,"time":null,"branch":null,"statement":11}]},"10":{"BEGIN":[{"pod":null,"subroutine":7,"statement":20,"branch":null,"condition":null,"time":null}]},"13":{"BEGIN":[{"pod":null,"subroutine":10,"branch":null,"time":null,"condition":null,"statement":29}]},"3":{"BEGIN":[{"subroutine":null,"pod":null,"statement":null,"time":null,"condition":null,"branch":null}]},"9":{"BEGIN":[{"statement":17,"branch":null,"time":null,"condition":null,"pod":null,"subroutine":6}]},"11":{"BEGIN":[{"subroutine":8,"pod":null,"statement":23,"branch":null,"time":null,"condition":null}]},"12":{"BEGIN":[{"statement":26,"branch":null,"condition":null,"time":null,"subroutine":9,"pod":null}]}},"digest":"1c21266662929d6c29977d81f8030152"} \ No newline at end of file diff --git a/cover_db/structure/c95eb51076caeff43cd14e8ba8cecc61.lock b/cover_db/structure/1c21266662929d6c29977d81f8030152.lock similarity index 100% rename from cover_db/structure/c95eb51076caeff43cd14e8ba8cecc61.lock rename to cover_db/structure/1c21266662929d6c29977d81f8030152.lock diff --git a/cover_db/structure/1e7c7464cdeed5985f502156b6842c2a b/cover_db/structure/1e7c7464cdeed5985f502156b6842c2a deleted file mode 100644 index 32295ba..0000000 --- a/cover_db/structure/1e7c7464cdeed5985f502156b6842c2a +++ /dev/null @@ -1 +0,0 @@ -{"branch":[[35,{"text":"if $self->hasDataIndex($idx)"}]],"statement":[3,3,4,4,4,5,5,5,7,7,7,11,12,13,14,14,15,16,21,22,27,28,33,34,35,37,42,43,44],"file":"blib/lib/WebService/Hexonet/Connector/Column.pm","digest":"1e7c7464cdeed5985f502156b6842c2a","start":{"7":{"BEGIN":[{"time":null,"subroutine":3,"pod":null,"condition":null,"branch":null,"statement":8}]},"-1":{"__COVER__":[{"pod":5,"subroutine":9,"time":null,"branch":1,"condition":null,"statement":29}]},"4":{"BEGIN":[{"statement":2,"branch":null,"condition":null,"subroutine":1,"pod":null,"time":null}]},"21":{"getKey":[{"branch":null,"condition":null,"statement":18,"subroutine":5,"pod":1,"time":null}]},"42":{"hasDataIndex":[{"statement":26,"branch":1,"condition":null,"pod":4,"subroutine":8,"time":null}]},"11":{"new":[{"subroutine":4,"pod":null,"time":null,"statement":11,"branch":null,"condition":null}]},"5":{"BEGIN":[{"statement":5,"condition":null,"branch":null,"time":null,"subroutine":2,"pod":null}]},"33":{"getDataByIndex":[{"subroutine":7,"pod":3,"time":null,"statement":22,"branch":null,"condition":null}]},"3":{"BEGIN":[{"pod":null,"subroutine":null,"time":null,"statement":null,"branch":null,"condition":null}]},"27":{"getData":[{"time":null,"pod":2,"subroutine":6,"statement":20,"condition":null,"branch":null}]}},"pod":[[11,"new"],[21,"getKey"],[27,"getData"],[33,"getDataByIndex"],[42,"hasDataIndex"]],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[7,"BEGIN"],[11,"new"],[21,"getKey"],[27,"getData"],[33,"getDataByIndex"],[42,"hasDataIndex"]]} \ No newline at end of file diff --git a/cover_db/structure/49ce31b1dc3e29d9b76b12b13412eb9a b/cover_db/structure/49ce31b1dc3e29d9b76b12b13412eb9a deleted file mode 100644 index 05feeaf..0000000 --- a/cover_db/structure/49ce31b1dc3e29d9b76b12b13412eb9a +++ /dev/null @@ -1 +0,0 @@ -{"file":"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm","branch":[[20,{"text":"unless (defined $hash{'PROPERTY'})"}],[25,{"text":"if (defined $hash{'PROPERTY'}{$prop}) { }"}],[19,{"text":"if ($attr =~ /^property\\[([^\\]]*)\\]/imsux) { }"}],[15,{"text":"if (/^([^\\=]*[^\\t\\= ])[\\t ]*=[\\t ]*(.+)/msux)"}],[42,{"text":"if (defined $h->{'PROPERTY'})"}],[52,{"text":"if (defined $h->{'CODE'})"}],[55,{"text":"if (defined $h->{'DESCRIPTION'})"}],[58,{"text":"if (defined $h->{'QUEUETIME'})"}],[61,{"text":"if (defined $h->{'RUNTIME'})"}]],"statement":[3,3,4,4,4,5,5,5,7,7,7,11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,26,28,31,35,40,41,42,43,44,44,45,46,46,47,48,52,53,55,56,58,59,61,62,64,65],"start":{"40":{"serialize":[{"subroutine":5,"pod":1,"time":null,"branch":4,"condition":null,"statement":30}]},"11":{"parse":[{"time":null,"pod":null,"subroutine":4,"condition":null,"branch":null,"statement":11}]},"4":{"BEGIN":[{"statement":2,"condition":null,"branch":null,"time":null,"subroutine":1,"pod":null}]},"-1":{"__COVER__":[{"pod":2,"subroutine":6,"time":null,"statement":51,"branch":9,"condition":null}]},"7":{"BEGIN":[{"time":null,"subroutine":3,"pod":null,"condition":null,"branch":null,"statement":8}]},"5":{"BEGIN":[{"time":null,"subroutine":2,"pod":null,"condition":null,"branch":null,"statement":5}]},"3":{"BEGIN":[{"time":null,"pod":null,"subroutine":null,"statement":null,"condition":null,"branch":null}]}},"pod":[[11,"parse"],[40,"serialize"]],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[7,"BEGIN"],[11,"parse"],[40,"serialize"]],"digest":"49ce31b1dc3e29d9b76b12b13412eb9a"} \ No newline at end of file diff --git a/cover_db/structure/74c3e2fa572ac2dd5f1348fde238f8c0 b/cover_db/structure/74c3e2fa572ac2dd5f1348fde238f8c0 new file mode 100644 index 0000000..280f699 --- /dev/null +++ b/cover_db/structure/74c3e2fa572ac2dd5f1348fde238f8c0 @@ -0,0 +1 @@ +{"file":"blib/lib/WebService/Hexonet/Connector/APIClient.pm","pod":[[29,"new"],[46,"setDefaultLogger"],[53,"setCustomLogger"],[62,"enableDebugMode"],[69,"disableDebugMode"],[76,"getPOSTData"],[106,"getSession"],[116,"getURL"],[122,"getUserAgent"],[134,"setUserAgent"],[148,"getProxy"],[157,"setProxy"],[168,"getReferer"],[177,"setReferer"],[188,"getVersion"],[194,"saveSession"],[204,"reuseSession"],[212,"setURL"],[219,"setOTP"],[226,"setSession"],[233,"setRemoteIPAddress"],[240,"setCredentials"],[248,"setRoleCredentials"],[256,"login"],[274,"loginExtended"],[300,"logout"],[310,"request"],[351,"requestNextResponsePage"],[373,"requestAllResponsePages"],[392,"setUserView"],[399,"resetUserView"],[406,"useDefaultConnectionSetup"],[412,"useHighPerformanceConnectionSetup"],[418,"useOTESystem"],[425,"useLIVESystem"]],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[9,"BEGIN"],[10,"BEGIN"],[11,"BEGIN"],[12,"BEGIN"],[13,"BEGIN"],[14,"BEGIN"],[15,"BEGIN"],[16,"BEGIN"],[23,"BEGIN"],[29,"new"],[46,"setDefaultLogger"],[53,"setCustomLogger"],[62,"enableDebugMode"],[69,"disableDebugMode"],[76,"getPOSTData"],[106,"getSession"],[116,"getURL"],[122,"getUserAgent"],[134,"setUserAgent"],[148,"getProxy"],[157,"setProxy"],[168,"getReferer"],[177,"setReferer"],[188,"getVersion"],[194,"saveSession"],[204,"reuseSession"],[212,"setURL"],[219,"setOTP"],[226,"setSession"],[233,"setRemoteIPAddress"],[240,"setCredentials"],[248,"setRoleCredentials"],[256,"login"],[274,"loginExtended"],[300,"logout"],[310,"request"],[351,"requestNextResponsePage"],[373,"requestAllResponsePages"],[392,"setUserView"],[399,"resetUserView"],[406,"useDefaultConnectionSetup"],[412,"useHighPerformanceConnectionSetup"],[418,"useOTESystem"],[425,"useLIVESystem"],[432,"_flattenCommand"],[454,"_autoIDNConvert"]],"start":{"7":{"BEGIN":[{"condition":null,"time":null,"branch":null,"statement":11,"pod":null,"subroutine":4}]},"13":{"BEGIN":[{"statement":29,"condition":null,"time":null,"branch":null,"pod":null,"subroutine":10}]},"10":{"BEGIN":[{"branch":null,"condition":null,"time":null,"statement":20,"pod":null,"subroutine":7}]},"23":{"BEGIN":[{"condition":null,"time":null,"branch":null,"statement":41,"pod":null,"subroutine":14}]},"29":{"new":[{"time":null,"condition":null,"branch":null,"statement":44,"pod":null,"subroutine":15}]},"122":{"getUserAgent":[{"statement":90,"time":null,"condition":3,"branch":7,"subroutine":23,"pod":8}]},"373":{"requestAllResponsePages":[{"pod":28,"subroutine":43,"branch":27,"time":null,"condition":5,"statement":230}]},"3":{"BEGIN":[{"subroutine":null,"pod":null,"condition":null,"time":null,"branch":null,"statement":null}]},"168":{"getReferer":[{"statement":116,"condition":4,"time":null,"branch":11,"pod":12,"subroutine":27}]},"9":{"BEGIN":[{"pod":null,"subroutine":6,"branch":null,"time":null,"condition":null,"statement":17}]},"399":{"resetUserView":[{"time":null,"condition":5,"branch":27,"statement":247,"subroutine":45,"pod":30}]},"8":{"BEGIN":[{"subroutine":5,"pod":null,"condition":null,"time":null,"branch":null,"statement":14}]},"16":{"BEGIN":[{"statement":38,"branch":null,"time":null,"condition":null,"subroutine":13,"pod":null}]},"6":{"BEGIN":[{"statement":8,"branch":null,"condition":null,"time":null,"pod":null,"subroutine":3}]},"219":{"setOTP":[{"subroutine":33,"pod":18,"statement":137,"time":null,"condition":4,"branch":13}]},"53":{"setCustomLogger":[{"subroutine":17,"pod":2,"statement":53,"branch":null,"time":null,"condition":null}]},"-1":{"__COVER__":[{"pod":35,"subroutine":52,"branch":35,"condition":5,"time":null,"statement":304}]},"351":{"requestNextResponsePage":[{"time":null,"condition":5,"branch":24,"statement":215,"subroutine":42,"pod":27}]},"432":{"_flattenCommand":[{"subroutine":50,"pod":35,"statement":260,"branch":27,"condition":5,"time":null}]},"15":{"BEGIN":[{"subroutine":12,"pod":null,"time":null,"condition":null,"branch":null,"statement":35}]},"46":{"setDefaultLogger":[{"subroutine":16,"pod":1,"branch":null,"condition":null,"time":null,"statement":50}]},"274":{"loginExtended":[{"statement":166,"branch":15,"condition":5,"time":null,"subroutine":39,"pod":24}]},"177":{"setReferer":[{"subroutine":28,"pod":13,"statement":120,"branch":12,"time":null,"condition":4}]},"116":{"getURL":[{"pod":7,"subroutine":22,"statement":88,"branch":7,"condition":3,"time":null}]},"300":{"logout":[{"statement":185,"time":null,"condition":5,"branch":18,"subroutine":40,"pod":25}]},"240":{"setCredentials":[{"pod":21,"subroutine":36,"branch":13,"condition":4,"time":null,"statement":146}]},"12":{"BEGIN":[{"subroutine":9,"pod":null,"statement":26,"condition":null,"time":null,"branch":null}]},"233":{"setRemoteIPAddress":[{"pod":20,"subroutine":35,"branch":13,"condition":4,"time":null,"statement":143}]},"425":{"useLIVESystem":[{"statement":257,"time":null,"condition":5,"branch":27,"subroutine":49,"pod":34}]},"256":{"login":[{"statement":154,"branch":13,"time":null,"condition":4,"subroutine":38,"pod":23}]},"4":{"BEGIN":[{"statement":2,"branch":null,"condition":null,"time":null,"subroutine":1,"pod":null}]},"134":{"setUserAgent":[{"pod":9,"subroutine":24,"statement":97,"time":null,"condition":3,"branch":8}]},"194":{"saveSession":[{"subroutine":30,"pod":15,"time":null,"condition":4,"branch":13,"statement":127}]},"204":{"reuseSession":[{"statement":130,"branch":13,"time":null,"condition":4,"pod":16,"subroutine":31}]},"14":{"BEGIN":[{"subroutine":11,"pod":null,"condition":null,"time":null,"branch":null,"statement":32}]},"226":{"setSession":[{"subroutine":34,"pod":19,"time":null,"condition":4,"branch":13,"statement":140}]},"11":{"BEGIN":[{"subroutine":8,"pod":null,"condition":null,"time":null,"branch":null,"statement":23}]},"62":{"enableDebugMode":[{"subroutine":18,"pod":3,"condition":1,"time":null,"branch":1,"statement":57}]},"454":{"_autoIDNConvert":[{"subroutine":51,"pod":35,"statement":276,"time":null,"condition":5,"branch":29}]},"106":{"getSession":[{"condition":3,"time":null,"branch":6,"statement":83,"subroutine":21,"pod":6}]},"310":{"request":[{"pod":26,"subroutine":41,"branch":19,"condition":5,"time":null,"statement":190}]},"5":{"BEGIN":[{"subroutine":2,"pod":null,"statement":5,"time":null,"condition":null,"branch":null}]},"418":{"useOTESystem":[{"statement":254,"branch":27,"condition":5,"time":null,"pod":33,"subroutine":48}]},"248":{"setRoleCredentials":[{"pod":22,"subroutine":37,"branch":13,"time":null,"condition":4,"statement":150}]},"157":{"setProxy":[{"statement":111,"time":null,"condition":4,"branch":10,"pod":11,"subroutine":26}]},"148":{"getProxy":[{"subroutine":25,"pod":10,"statement":107,"condition":4,"time":null,"branch":9}]},"69":{"disableDebugMode":[{"pod":4,"subroutine":19,"branch":1,"condition":1,"time":null,"statement":60}]},"406":{"useDefaultConnectionSetup":[{"time":null,"condition":5,"branch":27,"statement":250,"subroutine":46,"pod":31}]},"76":{"getPOSTData":[{"subroutine":20,"pod":5,"statement":63,"branch":1,"time":null,"condition":1}]},"188":{"getVersion":[{"branch":13,"condition":4,"time":null,"statement":125,"pod":14,"subroutine":29}]},"212":{"setURL":[{"pod":17,"subroutine":32,"statement":134,"condition":4,"time":null,"branch":13}]},"392":{"setUserView":[{"subroutine":44,"pod":29,"statement":244,"branch":27,"condition":5,"time":null}]},"412":{"useHighPerformanceConnectionSetup":[{"statement":252,"branch":27,"condition":5,"time":null,"pod":32,"subroutine":47}]}},"branch":[[54,{"text":"if (defined $logger and $logger->can(\"log\"))"}],[78,{"text":"if (defined $secured and $secured == 1)"}],[84,{"text":"if (defined $cmd->{$key})"}],[82,{"text":"if (ref $cmd eq 'HASH') { }"}],[93,{"text":"if (defined $secured and $secured == 1)"}],[97,{"text":"if (utf8::is_utf8($tmp))"}],[108,{"text":"if (length $sessid)"}],[123,{"text":"unless (length $self->{'ua'})"}],[139,{"text":"if (defined $modules and length $modules > 0)"}],[149,{"text":"if (exists $self->{'curlopts'}{'PROXY'})"}],[158,{"text":"if (length $proxy == 0) { }"}],[169,{"text":"if (exists $self->{'curlopts'}{'REFERER'})"}],[178,{"text":"if (length $referer == 0) { }"}],[263,{"text":"if (defined $col)"}],[260,{"text":"if ($rr->isSuccess)"}],[277,{"text":"unless (defined $otpc)"}],[289,{"text":"if (defined $col)"}],[286,{"text":"if ($rr->isSuccess)"}],[302,{"text":"if ($rr->isSuccess)"}],[326,{"text":"if ($referer)"}],[330,{"text":"if ($proxy)"}],[337,{"text":"if ($self->{'debugMode'})"}],[342,{"text":"if ($self->{'debugMode'})"}],[335,{"text":"if ($r->is_success) { }"}],[353,{"text":"if (defined $mycmd->{'LAST'})"}],[357,{"text":"if (defined $mycmd->{'FIRST'})"}],[363,{"text":"if ($first < $total)"}],[435,{"text":"if ($newkey ne $key)"}],[438,{"text":"if (ref $cmd->{$newkey} eq \"ARRAY\")"}],[455,{"text":"if ($cmd->{'COMMAND'} =~ /^CONVERTIDN$/imsux)"}],[459,{"text":"if (scalar @keys == 0)"}],[466,{"text":"if ($val =~ /[^[:lower:]\\d. -]/imsux)"}],[471,{"text":"if (scalar @toconvert == 0)"}],[481,{"text":"if ($col)"}],[479,{"text":"if ($r->isSuccess)"}]],"condition":[[54,{"type":"and_3","op":"and","right":"$logger->can(\"log\")","left":"defined $logger"}],[78,{"type":"and_3","op":"and","left":"defined $secured","right":"$secured == 1"}],[93,{"type":"and_3","op":"and","left":"defined $secured","right":"$secured == 1"}],[139,{"left":"defined $modules","right":"length $modules > 0","op":"and","type":"and_3"}],[258,{"right":"''","left":"$otp","op":"||","type":"or_2"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15,16,16,16,23,23,23,29,30,38,39,40,41,46,47,48,53,54,55,57,62,63,64,69,70,71,76,77,78,79,81,82,83,83,84,85,86,87,91,93,94,96,97,98,100,101,106,107,108,109,111,116,117,122,123,124,125,126,127,129,134,135,136,137,138,139,140,140,142,143,148,149,150,152,157,158,159,161,163,168,169,170,172,177,178,179,181,183,188,189,194,198,199,204,205,206,207,212,213,214,219,220,221,226,227,228,233,234,235,240,241,242,243,248,249,250,251,256,257,258,259,260,261,262,263,264,265,267,269,274,275,276,277,278,280,281,282,282,283,285,286,287,288,289,290,291,293,295,300,301,302,303,305,310,312,314,317,318,319,321,322,323,324,325,326,327,329,330,331,334,335,336,337,338,341,342,343,346,351,352,353,354,356,357,358,360,361,362,363,364,365,366,368,373,374,375,376,376,377,379,380,381,382,383,384,385,387,392,393,394,399,400,401,406,407,412,413,418,419,420,425,426,427,432,433,433,434,435,436,438,439,439,440,441,442,443,444,446,449,454,455,456,458,458,458,459,460,462,463,464,465,466,467,468,471,472,474,479,480,481,482,483,484,484,485,486,490],"digest":"74c3e2fa572ac2dd5f1348fde238f8c0"} \ No newline at end of file diff --git a/cover_db/structure/deb8763b49b844d004de39403966cd49.lock b/cover_db/structure/74c3e2fa572ac2dd5f1348fde238f8c0.lock similarity index 100% rename from cover_db/structure/deb8763b49b844d004de39403966cd49.lock rename to cover_db/structure/74c3e2fa572ac2dd5f1348fde238f8c0.lock diff --git a/cover_db/structure/83e752528c185f0c77dcc305bb79763a b/cover_db/structure/83e752528c185f0c77dcc305bb79763a deleted file mode 100644 index d0a3043..0000000 --- a/cover_db/structure/83e752528c185f0c77dcc305bb79763a +++ /dev/null @@ -1 +0,0 @@ -{"file":"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm","branch":[[15,{"text":"unless (defined $instance)"}],[47,{"text":"if ($self->hasTemplate($id)) { }"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,9,9,9,15,16,17,18,19,20,21,22,23,24,25,27,32,33,38,39,40,45,46,47,48,50,52,57,58,59,60,60,61,63,68,69,74,75,76,77,82,83,84],"start":{"5":{"BEGIN":[{"pod":null,"subroutine":2,"time":null,"branch":null,"condition":null,"statement":5}]},"32":{"generateTemplate":[{"statement":29,"condition":null,"branch":1,"time":null,"subroutine":7,"pod":1}]},"38":{"addTemplate":[{"condition":null,"branch":1,"statement":31,"time":null,"subroutine":8,"pod":2}]},"7":{"BEGIN":[{"time":null,"pod":null,"subroutine":4,"condition":null,"branch":null,"statement":11}]},"-1":{"__COVER__":[{"statement":56,"condition":1,"branch":2,"time":null,"pod":8,"subroutine":14}]},"68":{"hasTemplate":[{"condition":null,"branch":2,"statement":47,"time":null,"subroutine":11,"pod":5}]},"3":{"BEGIN":[{"subroutine":null,"pod":null,"time":null,"statement":null,"branch":null,"condition":null}]},"6":{"BEGIN":[{"time":null,"subroutine":3,"pod":null,"condition":null,"branch":null,"statement":8}]},"15":{"getInstance":[{"statement":17,"branch":null,"condition":null,"pod":null,"subroutine":6,"time":null}]},"74":{"isTemplateMatchHash":[{"pod":6,"subroutine":12,"time":null,"statement":49,"branch":2,"condition":null}]},"57":{"getTemplates":[{"subroutine":10,"pod":4,"time":null,"branch":2,"condition":null,"statement":40}]},"45":{"getTemplate":[{"condition":null,"branch":1,"statement":34,"time":null,"subroutine":9,"pod":3}]},"82":{"isTemplateMatchPlain":[{"condition":1,"branch":2,"statement":53,"time":null,"subroutine":13,"pod":7}]},"4":{"BEGIN":[{"branch":null,"condition":null,"statement":2,"pod":null,"subroutine":1,"time":null}]},"9":{"BEGIN":[{"time":null,"pod":null,"subroutine":5,"condition":null,"branch":null,"statement":14}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[9,"BEGIN"],[15,"getInstance"],[32,"generateTemplate"],[38,"addTemplate"],[45,"getTemplate"],[57,"getTemplates"],[68,"hasTemplate"],[74,"isTemplateMatchHash"],[82,"isTemplateMatchPlain"]],"pod":[[15,"getInstance"],[32,"generateTemplate"],[38,"addTemplate"],[45,"getTemplate"],[57,"getTemplates"],[68,"hasTemplate"],[74,"isTemplateMatchHash"],[82,"isTemplateMatchPlain"]],"condition":[[77,{"right":"$h->{'DESCRIPTION'} eq $tpl2->{'DESCRIPTION'}","left":"$h->{'CODE'} eq $tpl2->{'CODE'}","op":"&&","type":"and_3"}]],"digest":"83e752528c185f0c77dcc305bb79763a"} \ No newline at end of file diff --git a/cover_db/structure/850d642e7016f744662773458db483cd b/cover_db/structure/850d642e7016f744662773458db483cd new file mode 100644 index 0000000..acdd7f1 --- /dev/null +++ b/cover_db/structure/850d642e7016f744662773458db483cd @@ -0,0 +1 @@ +{"file":"blib/lib/WebService/Hexonet/Connector/Record.pm","pod":[[11,"new"],[17,"getData"],[23,"getDataByKey"],[32,"hasData"]],"start":{"23":{"getDataByKey":[{"statement":15,"condition":null,"time":null,"branch":null,"pod":2,"subroutine":6}]},"11":{"new":[{"time":null,"condition":null,"branch":null,"statement":11,"pod":null,"subroutine":4}]},"4":{"BEGIN":[{"branch":null,"condition":null,"time":null,"statement":2,"pod":null,"subroutine":1}]},"5":{"BEGIN":[{"condition":null,"time":null,"branch":null,"statement":5,"pod":null,"subroutine":2}]},"7":{"BEGIN":[{"subroutine":3,"pod":null,"statement":8,"time":null,"condition":null,"branch":null}]},"32":{"hasData":[{"condition":null,"time":null,"branch":1,"statement":19,"subroutine":7,"pod":3}]},"17":{"getData":[{"statement":13,"time":null,"condition":null,"branch":null,"pod":1,"subroutine":5}]},"-1":{"__COVER__":[{"pod":4,"subroutine":8,"statement":22,"branch":1,"condition":null,"time":null}]},"3":{"BEGIN":[{"branch":null,"condition":null,"time":null,"statement":null,"pod":null,"subroutine":null}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[7,"BEGIN"],[11,"new"],[17,"getData"],[23,"getDataByKey"],[32,"hasData"]],"branch":[[25,{"text":"if $self->hasData($key)"}]],"statement":[3,3,4,4,4,5,5,5,7,7,7,11,12,17,18,23,24,25,27,32,33,34],"digest":"850d642e7016f744662773458db483cd"} \ No newline at end of file diff --git a/cover_db/structure/e4222efea44983f9a3a27c6dd2e37d6b.lock b/cover_db/structure/850d642e7016f744662773458db483cd.lock similarity index 100% rename from cover_db/structure/e4222efea44983f9a3a27c6dd2e37d6b.lock rename to cover_db/structure/850d642e7016f744662773458db483cd.lock diff --git a/cover_db/structure/898e18dd366f01e293d13d2c6c29e160 b/cover_db/structure/898e18dd366f01e293d13d2c6c29e160 new file mode 100644 index 0000000..a6254b3 --- /dev/null +++ b/cover_db/structure/898e18dd366f01e293d13d2c6c29e160 @@ -0,0 +1 @@ +{"branch":[[20,{"text":"unless (defined $hash{'PROPERTY'})"}],[25,{"text":"if (defined $hash{'PROPERTY'}{$prop}) { }"}],[19,{"text":"if ($attr =~ /^property\\[([^\\]]*)\\]/imsux) { }"}],[15,{"text":"if (/^([^\\=]*[^\\t\\= ])[\\t ]*=[\\t ]*(.+)/msux)"}],[42,{"text":"if (defined $h->{'PROPERTY'})"}],[52,{"text":"if (defined $h->{'CODE'})"}],[55,{"text":"if (defined $h->{'DESCRIPTION'})"}],[58,{"text":"if (defined $h->{'QUEUETIME'})"}],[61,{"text":"if (defined $h->{'RUNTIME'})"}]],"statement":[3,3,4,4,4,5,5,5,7,7,7,11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,26,28,31,35,40,41,42,43,44,44,45,46,46,47,48,52,53,55,56,58,59,61,62,64,65],"digest":"898e18dd366f01e293d13d2c6c29e160","subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[7,"BEGIN"],[11,"parse"],[40,"serialize"]],"start":{"5":{"BEGIN":[{"branch":null,"condition":null,"time":null,"statement":5,"subroutine":2,"pod":null}]},"4":{"BEGIN":[{"statement":2,"time":null,"condition":null,"branch":null,"subroutine":1,"pod":null}]},"11":{"parse":[{"subroutine":4,"pod":null,"time":null,"condition":null,"branch":null,"statement":11}]},"7":{"BEGIN":[{"statement":8,"condition":null,"time":null,"branch":null,"subroutine":3,"pod":null}]},"40":{"serialize":[{"condition":null,"time":null,"branch":4,"statement":30,"pod":1,"subroutine":5}]},"-1":{"__COVER__":[{"branch":9,"condition":null,"time":null,"statement":51,"subroutine":6,"pod":2}]},"3":{"BEGIN":[{"condition":null,"time":null,"branch":null,"statement":null,"subroutine":null,"pod":null}]}},"file":"blib/lib/WebService/Hexonet/Connector/ResponseParser.pm","pod":[[11,"parse"],[40,"serialize"]]} \ No newline at end of file diff --git a/cover_db/structure/f53203362ec0d1a6a6511fb40d7783f4.lock b/cover_db/structure/898e18dd366f01e293d13d2c6c29e160.lock similarity index 100% rename from cover_db/structure/f53203362ec0d1a6a6511fb40d7783f4.lock rename to cover_db/structure/898e18dd366f01e293d13d2c6c29e160.lock diff --git a/cover_db/structure/a3747c723c3e4f7277a3d214aac7cad6 b/cover_db/structure/a3747c723c3e4f7277a3d214aac7cad6 deleted file mode 100644 index 2849211..0000000 --- a/cover_db/structure/a3747c723c3e4f7277a3d214aac7cad6 +++ /dev/null @@ -1 +0,0 @@ -{"branch":[[19,{"text":"if (defined $error) { }"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,8,8,8,12,13,18,19,20,20,21,21,22,22,23,23,25,25,26,26,27,27,29],"file":"blib/lib/WebService/Hexonet/Connector/Logger.pm","digest":"a3747c723c3e4f7277a3d214aac7cad6","start":{"5":{"BEGIN":[{"branch":null,"condition":null,"statement":5,"subroutine":2,"pod":null,"time":null}]},"3":{"BEGIN":[{"pod":null,"subroutine":null,"time":null,"statement":null,"branch":null,"condition":null}]},"6":{"BEGIN":[{"subroutine":3,"pod":null,"time":null,"statement":8,"branch":null,"condition":null}]},"12":{"new":[{"condition":null,"branch":null,"statement":14,"time":null,"subroutine":5,"pod":null}]},"-1":{"__COVER__":[{"condition":null,"branch":1,"statement":33,"time":null,"pod":2,"subroutine":7}]},"8":{"BEGIN":[{"condition":null,"branch":null,"statement":11,"time":null,"subroutine":4,"pod":null}]},"4":{"BEGIN":[{"time":null,"pod":null,"subroutine":1,"statement":2,"condition":null,"branch":null}]},"18":{"log":[{"condition":null,"branch":null,"statement":16,"time":null,"subroutine":6,"pod":1}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[8,"BEGIN"],[12,"new"],[18,"log"]],"pod":[[12,"new"],[18,"log"]]} \ No newline at end of file diff --git a/cover_db/structure/c95eb51076caeff43cd14e8ba8cecc61 b/cover_db/structure/c95eb51076caeff43cd14e8ba8cecc61 deleted file mode 100644 index 273dda0..0000000 --- a/cover_db/structure/c95eb51076caeff43cd14e8ba8cecc61 +++ /dev/null @@ -1 +0,0 @@ -{"start":{"4":{"BEGIN":[{"statement":2,"condition":null,"branch":null,"time":null,"subroutine":1,"pod":null}]},"11":{"new":[{"branch":null,"condition":null,"statement":11,"pod":null,"subroutine":4,"time":null}]},"-1":{"__COVER__":[{"statement":22,"condition":null,"branch":1,"time":null,"pod":4,"subroutine":8}]},"7":{"BEGIN":[{"pod":null,"subroutine":3,"time":null,"branch":null,"condition":null,"statement":8}]},"23":{"getDataByKey":[{"statement":15,"condition":null,"branch":null,"time":null,"pod":2,"subroutine":6}]},"5":{"BEGIN":[{"pod":null,"subroutine":2,"time":null,"branch":null,"condition":null,"statement":5}]},"17":{"getData":[{"pod":1,"subroutine":5,"time":null,"branch":null,"condition":null,"statement":13}]},"3":{"BEGIN":[{"time":null,"pod":null,"subroutine":null,"condition":null,"branch":null,"statement":null}]},"32":{"hasData":[{"condition":null,"branch":1,"statement":19,"time":null,"pod":3,"subroutine":7}]}},"pod":[[11,"new"],[17,"getData"],[23,"getDataByKey"],[32,"hasData"]],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[7,"BEGIN"],[11,"new"],[17,"getData"],[23,"getDataByKey"],[32,"hasData"]],"digest":"c95eb51076caeff43cd14e8ba8cecc61","file":"blib/lib/WebService/Hexonet/Connector/Record.pm","branch":[[25,{"text":"if $self->hasData($key)"}]],"statement":[3,3,4,4,4,5,5,5,7,7,7,11,12,17,18,23,24,25,27,32,33,34]} \ No newline at end of file diff --git a/cover_db/structure/deb8763b49b844d004de39403966cd49 b/cover_db/structure/deb8763b49b844d004de39403966cd49 deleted file mode 100644 index 370fa13..0000000 --- a/cover_db/structure/deb8763b49b844d004de39403966cd49 +++ /dev/null @@ -1 +0,0 @@ -{"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[9,"BEGIN"],[10,"BEGIN"],[11,"BEGIN"],[12,"BEGIN"],[13,"BEGIN"],[15,"BEGIN"]],"file":"blib/lib/WebService/Hexonet/Connector.pm","start":{"3":{"BEGIN":[{"subroutine":null,"pod":null,"time":null,"branch":null,"condition":null,"statement":null}]},"6":{"BEGIN":[{"branch":null,"condition":null,"statement":8,"pod":null,"subroutine":3,"time":null}]},"15":{"BEGIN":[{"branch":null,"condition":null,"statement":32,"pod":null,"subroutine":11,"time":null}]},"13":{"BEGIN":[{"time":null,"pod":null,"subroutine":10,"condition":null,"branch":null,"statement":29}]},"4":{"BEGIN":[{"time":null,"subroutine":1,"pod":null,"statement":2,"condition":null,"branch":null}]},"9":{"BEGIN":[{"statement":17,"condition":null,"branch":null,"time":null,"pod":null,"subroutine":6}]},"5":{"BEGIN":[{"subroutine":2,"pod":null,"time":null,"statement":5,"branch":null,"condition":null}]},"12":{"BEGIN":[{"time":null,"subroutine":9,"pod":null,"condition":null,"branch":null,"statement":26}]},"10":{"BEGIN":[{"branch":null,"condition":null,"statement":20,"pod":null,"subroutine":7,"time":null}]},"7":{"BEGIN":[{"time":null,"pod":null,"subroutine":4,"statement":11,"condition":null,"branch":null}]},"-1":{"__COVER__":[{"time":null,"pod":null,"subroutine":12,"statement":35,"condition":null,"branch":null}]},"8":{"BEGIN":[{"condition":null,"branch":null,"statement":14,"time":null,"pod":null,"subroutine":5}]},"11":{"BEGIN":[{"condition":null,"branch":null,"statement":23,"time":null,"pod":null,"subroutine":8}]}},"digest":"deb8763b49b844d004de39403966cd49","statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12,12,13,13,13,15,15,15]} \ No newline at end of file diff --git a/cover_db/structure/e4222efea44983f9a3a27c6dd2e37d6b b/cover_db/structure/e4222efea44983f9a3a27c6dd2e37d6b deleted file mode 100644 index e460e04..0000000 --- a/cover_db/structure/e4222efea44983f9a3a27c6dd2e37d6b +++ /dev/null @@ -1 +0,0 @@ -{"condition":[[54,{"type":"and_3","op":"and","right":"$logger->can(\"log\")","left":"defined $logger"}],[78,{"type":"and_3","op":"and","right":"$secured == 1","left":"defined $secured"}],[93,{"type":"and_3","op":"and","left":"defined $secured","right":"$secured == 1"}],[139,{"left":"defined $modules","right":"length $modules > 0","op":"and","type":"and_3"}],[258,{"type":"or_2","op":"||","left":"$otp","right":"''"}]],"digest":"e4222efea44983f9a3a27c6dd2e37d6b","start":{"351":{"requestNextResponsePage":[{"pod":27,"subroutine":42,"time":null,"branch":24,"condition":5,"statement":215}]},"134":{"setUserAgent":[{"pod":9,"subroutine":24,"time":null,"statement":97,"branch":8,"condition":3}]},"300":{"logout":[{"statement":185,"condition":5,"branch":18,"time":null,"pod":25,"subroutine":40}]},"62":{"enableDebugMode":[{"branch":1,"condition":1,"statement":57,"subroutine":18,"pod":3,"time":null}]},"4":{"BEGIN":[{"time":null,"subroutine":1,"pod":null,"statement":2,"condition":null,"branch":null}]},"399":{"resetUserView":[{"statement":247,"branch":27,"condition":5,"pod":30,"subroutine":45,"time":null}]},"432":{"_flattenCommand":[{"pod":35,"subroutine":50,"time":null,"branch":27,"condition":5,"statement":260}]},"106":{"getSession":[{"branch":6,"condition":3,"statement":83,"pod":6,"subroutine":21,"time":null}]},"157":{"setProxy":[{"condition":4,"branch":10,"statement":111,"time":null,"pod":11,"subroutine":26}]},"46":{"setDefaultLogger":[{"pod":1,"subroutine":16,"time":null,"branch":null,"condition":null,"statement":50}]},"13":{"BEGIN":[{"statement":29,"branch":null,"condition":null,"subroutine":10,"pod":null,"time":null}]},"16":{"BEGIN":[{"time":null,"subroutine":13,"pod":null,"statement":38,"condition":null,"branch":null}]},"406":{"useDefaultConnectionSetup":[{"condition":5,"branch":27,"statement":250,"time":null,"pod":31,"subroutine":46}]},"11":{"BEGIN":[{"condition":null,"branch":null,"statement":23,"time":null,"pod":null,"subroutine":8}]},"148":{"getProxy":[{"subroutine":25,"pod":10,"time":null,"statement":107,"branch":9,"condition":4}]},"425":{"useLIVESystem":[{"branch":27,"condition":5,"statement":257,"subroutine":49,"pod":34,"time":null}]},"412":{"useHighPerformanceConnectionSetup":[{"branch":27,"condition":5,"statement":252,"pod":32,"subroutine":47,"time":null}]},"204":{"reuseSession":[{"condition":4,"branch":13,"statement":130,"time":null,"pod":16,"subroutine":31}]},"29":{"new":[{"time":null,"pod":null,"subroutine":15,"condition":null,"branch":null,"statement":44}]},"240":{"setCredentials":[{"statement":146,"branch":13,"condition":4,"pod":21,"subroutine":36,"time":null}]},"69":{"disableDebugMode":[{"statement":60,"branch":1,"condition":1,"pod":4,"subroutine":19,"time":null}]},"392":{"setUserView":[{"statement":244,"condition":5,"branch":27,"time":null,"pod":29,"subroutine":44}]},"8":{"BEGIN":[{"time":null,"pod":null,"subroutine":5,"condition":null,"branch":null,"statement":14}]},"-1":{"__COVER__":[{"time":null,"subroutine":52,"pod":35,"condition":5,"branch":35,"statement":304}]},"226":{"setSession":[{"time":null,"subroutine":34,"pod":19,"statement":140,"condition":4,"branch":13}]},"233":{"setRemoteIPAddress":[{"pod":20,"subroutine":35,"time":null,"branch":13,"condition":4,"statement":143}]},"10":{"BEGIN":[{"branch":null,"condition":null,"statement":20,"pod":null,"subroutine":7,"time":null}]},"373":{"requestAllResponsePages":[{"subroutine":43,"pod":28,"time":null,"statement":230,"branch":27,"condition":5}]},"194":{"saveSession":[{"pod":15,"subroutine":30,"time":null,"statement":127,"branch":13,"condition":4}]},"53":{"setCustomLogger":[{"time":null,"subroutine":17,"pod":2,"condition":null,"branch":null,"statement":53}]},"5":{"BEGIN":[{"statement":5,"branch":null,"condition":null,"subroutine":2,"pod":null,"time":null}]},"256":{"login":[{"branch":13,"condition":4,"statement":154,"subroutine":38,"pod":23,"time":null}]},"212":{"setURL":[{"pod":17,"subroutine":32,"time":null,"statement":134,"branch":13,"condition":4}]},"248":{"setRoleCredentials":[{"time":null,"subroutine":37,"pod":22,"statement":150,"condition":4,"branch":13}]},"168":{"getReferer":[{"subroutine":27,"pod":12,"time":null,"branch":11,"condition":4,"statement":116}]},"188":{"getVersion":[{"pod":14,"subroutine":29,"time":null,"statement":125,"branch":13,"condition":4}]},"454":{"_autoIDNConvert":[{"statement":276,"condition":5,"branch":29,"time":null,"subroutine":51,"pod":35}]},"76":{"getPOSTData":[{"time":null,"pod":5,"subroutine":20,"statement":63,"condition":1,"branch":1}]},"7":{"BEGIN":[{"statement":11,"branch":null,"condition":null,"pod":null,"subroutine":4,"time":null}]},"14":{"BEGIN":[{"time":null,"pod":null,"subroutine":11,"statement":32,"condition":null,"branch":null}]},"310":{"request":[{"statement":190,"condition":5,"branch":19,"time":null,"pod":26,"subroutine":41}]},"177":{"setReferer":[{"condition":4,"branch":12,"statement":120,"time":null,"pod":13,"subroutine":28}]},"23":{"BEGIN":[{"branch":null,"condition":null,"statement":41,"pod":null,"subroutine":14,"time":null}]},"274":{"loginExtended":[{"pod":24,"subroutine":39,"time":null,"branch":15,"condition":5,"statement":166}]},"418":{"useOTESystem":[{"statement":254,"condition":5,"branch":27,"time":null,"subroutine":48,"pod":33}]},"12":{"BEGIN":[{"subroutine":9,"pod":null,"time":null,"statement":26,"branch":null,"condition":null}]},"122":{"getUserAgent":[{"branch":7,"condition":3,"statement":90,"pod":8,"subroutine":23,"time":null}]},"9":{"BEGIN":[{"time":null,"subroutine":6,"pod":null,"condition":null,"branch":null,"statement":17}]},"219":{"setOTP":[{"statement":137,"condition":4,"branch":13,"time":null,"subroutine":33,"pod":18}]},"3":{"BEGIN":[{"condition":null,"branch":null,"statement":null,"time":null,"subroutine":null,"pod":null}]},"116":{"getURL":[{"time":null,"pod":7,"subroutine":22,"statement":88,"condition":3,"branch":7}]},"15":{"BEGIN":[{"pod":null,"subroutine":12,"time":null,"statement":35,"branch":null,"condition":null}]},"6":{"BEGIN":[{"pod":null,"subroutine":3,"time":null,"branch":null,"condition":null,"statement":8}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[9,"BEGIN"],[10,"BEGIN"],[11,"BEGIN"],[12,"BEGIN"],[13,"BEGIN"],[14,"BEGIN"],[15,"BEGIN"],[16,"BEGIN"],[23,"BEGIN"],[29,"new"],[46,"setDefaultLogger"],[53,"setCustomLogger"],[62,"enableDebugMode"],[69,"disableDebugMode"],[76,"getPOSTData"],[106,"getSession"],[116,"getURL"],[122,"getUserAgent"],[134,"setUserAgent"],[148,"getProxy"],[157,"setProxy"],[168,"getReferer"],[177,"setReferer"],[188,"getVersion"],[194,"saveSession"],[204,"reuseSession"],[212,"setURL"],[219,"setOTP"],[226,"setSession"],[233,"setRemoteIPAddress"],[240,"setCredentials"],[248,"setRoleCredentials"],[256,"login"],[274,"loginExtended"],[300,"logout"],[310,"request"],[351,"requestNextResponsePage"],[373,"requestAllResponsePages"],[392,"setUserView"],[399,"resetUserView"],[406,"useDefaultConnectionSetup"],[412,"useHighPerformanceConnectionSetup"],[418,"useOTESystem"],[425,"useLIVESystem"],[432,"_flattenCommand"],[454,"_autoIDNConvert"]],"pod":[[29,"new"],[46,"setDefaultLogger"],[53,"setCustomLogger"],[62,"enableDebugMode"],[69,"disableDebugMode"],[76,"getPOSTData"],[106,"getSession"],[116,"getURL"],[122,"getUserAgent"],[134,"setUserAgent"],[148,"getProxy"],[157,"setProxy"],[168,"getReferer"],[177,"setReferer"],[188,"getVersion"],[194,"saveSession"],[204,"reuseSession"],[212,"setURL"],[219,"setOTP"],[226,"setSession"],[233,"setRemoteIPAddress"],[240,"setCredentials"],[248,"setRoleCredentials"],[256,"login"],[274,"loginExtended"],[300,"logout"],[310,"request"],[351,"requestNextResponsePage"],[373,"requestAllResponsePages"],[392,"setUserView"],[399,"resetUserView"],[406,"useDefaultConnectionSetup"],[412,"useHighPerformanceConnectionSetup"],[418,"useOTESystem"],[425,"useLIVESystem"]],"branch":[[54,{"text":"if (defined $logger and $logger->can(\"log\"))"}],[78,{"text":"if (defined $secured and $secured == 1)"}],[84,{"text":"if (defined $cmd->{$key})"}],[82,{"text":"if (ref $cmd eq 'HASH') { }"}],[93,{"text":"if (defined $secured and $secured == 1)"}],[97,{"text":"if (utf8::is_utf8($tmp))"}],[108,{"text":"if (length $sessid)"}],[123,{"text":"unless (length $self->{'ua'})"}],[139,{"text":"if (defined $modules and length $modules > 0)"}],[149,{"text":"if (exists $self->{'curlopts'}{'PROXY'})"}],[158,{"text":"if (length $proxy == 0) { }"}],[169,{"text":"if (exists $self->{'curlopts'}{'REFERER'})"}],[178,{"text":"if (length $referer == 0) { }"}],[263,{"text":"if (defined $col)"}],[260,{"text":"if ($rr->isSuccess)"}],[277,{"text":"unless (defined $otpc)"}],[289,{"text":"if (defined $col)"}],[286,{"text":"if ($rr->isSuccess)"}],[302,{"text":"if ($rr->isSuccess)"}],[326,{"text":"if ($referer)"}],[330,{"text":"if ($proxy)"}],[337,{"text":"if ($self->{'debugMode'})"}],[342,{"text":"if ($self->{'debugMode'})"}],[335,{"text":"if ($r->is_success) { }"}],[353,{"text":"if (defined $mycmd->{'LAST'})"}],[357,{"text":"if (defined $mycmd->{'FIRST'})"}],[363,{"text":"if ($first < $total)"}],[435,{"text":"if ($newkey ne $key)"}],[438,{"text":"if (ref $cmd->{$newkey} eq \"ARRAY\")"}],[455,{"text":"if ($cmd->{'COMMAND'} =~ /^CONVERTIDN$/imsux)"}],[459,{"text":"if (scalar @keys == 0)"}],[466,{"text":"if ($val =~ /[^[:lower:]\\d. -]/imsux)"}],[471,{"text":"if (scalar @toconvert == 0)"}],[481,{"text":"if ($col)"}],[479,{"text":"if ($r->isSuccess)"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12,12,13,13,13,14,14,14,15,15,15,16,16,16,23,23,23,29,30,38,39,40,41,46,47,48,53,54,55,57,62,63,64,69,70,71,76,77,78,79,81,82,83,83,84,85,86,87,91,93,94,96,97,98,100,101,106,107,108,109,111,116,117,122,123,124,125,126,127,129,134,135,136,137,138,139,140,140,142,143,148,149,150,152,157,158,159,161,163,168,169,170,172,177,178,179,181,183,188,189,194,198,199,204,205,206,207,212,213,214,219,220,221,226,227,228,233,234,235,240,241,242,243,248,249,250,251,256,257,258,259,260,261,262,263,264,265,267,269,274,275,276,277,278,280,281,282,282,283,285,286,287,288,289,290,291,293,295,300,301,302,303,305,310,312,314,317,318,319,321,322,323,324,325,326,327,329,330,331,334,335,336,337,338,341,342,343,346,351,352,353,354,356,357,358,360,361,362,363,364,365,366,368,373,374,375,376,376,377,379,380,381,382,383,384,385,387,392,393,394,399,400,401,406,407,412,413,418,419,420,425,426,427,432,433,433,434,435,436,438,439,439,440,441,442,443,444,446,449,454,455,456,458,458,458,459,460,462,463,464,465,466,467,468,471,472,474,479,480,481,482,483,484,484,485,486,490],"file":"blib/lib/WebService/Hexonet/Connector/APIClient.pm"} \ No newline at end of file diff --git a/cover_db/structure/e936d83d6990004dbec16569c190df09 b/cover_db/structure/e936d83d6990004dbec16569c190df09 new file mode 100644 index 0000000..955a301 --- /dev/null +++ b/cover_db/structure/e936d83d6990004dbec16569c190df09 @@ -0,0 +1 @@ +{"branch":[[28,{"text":"if (length $self->{'entity'})"}],[31,{"text":"if (length $self->{'login'})"}],[34,{"text":"if (length $self->{'otp'})"}],[37,{"text":"if (length $self->{'pw'})"}],[40,{"text":"if (length $self->{'remoteaddr'})"}],[43,{"text":"if (length $self->{'session'})"}],[46,{"text":"if (length $self->{'user'})"}]],"digest":"e936d83d6990004dbec16569c190df09","statement":[3,3,4,4,4,5,5,5,6,6,6,8,8,8,12,13,26,27,28,29,31,32,34,35,37,38,40,41,43,44,46,47,49,54,55,60,61,66,67,68,69,74,75,76,77,82,83,84,85,90,91,92,97,98,99,100,101,102,107,108,109,114,115,116],"start":{"60":{"getSystemEntity":[{"pod":3,"subroutine":8,"statement":35,"branch":7,"condition":null,"time":null}]},"97":{"setSession":[{"pod":8,"subroutine":13,"time":null,"condition":null,"branch":7,"statement":52}]},"107":{"setSystemEntity":[{"subroutine":14,"pod":9,"branch":7,"condition":null,"time":null,"statement":58}]},"5":{"BEGIN":[{"time":null,"condition":null,"branch":null,"statement":5,"pod":null,"subroutine":2}]},"4":{"BEGIN":[{"statement":2,"time":null,"condition":null,"branch":null,"pod":null,"subroutine":1}]},"-1":{"__COVER__":[{"subroutine":16,"pod":11,"statement":64,"branch":7,"condition":null,"time":null}]},"66":{"setLogin":[{"subroutine":9,"pod":4,"time":null,"condition":null,"branch":7,"statement":37}]},"26":{"getPOSTData":[{"statement":16,"time":null,"condition":null,"branch":null,"pod":1,"subroutine":6}]},"8":{"BEGIN":[{"subroutine":4,"pod":null,"branch":null,"time":null,"condition":null,"statement":11}]},"6":{"BEGIN":[{"subroutine":3,"pod":null,"condition":null,"time":null,"branch":null,"statement":8}]},"82":{"setPassword":[{"pod":6,"subroutine":11,"statement":45,"branch":7,"time":null,"condition":null}]},"54":{"getSession":[{"pod":2,"subroutine":7,"statement":33,"branch":7,"condition":null,"time":null}]},"74":{"setOTP":[{"pod":5,"subroutine":10,"branch":7,"time":null,"condition":null,"statement":41}]},"114":{"setUser":[{"pod":10,"subroutine":15,"branch":7,"condition":null,"time":null,"statement":61}]},"12":{"new":[{"pod":null,"subroutine":5,"statement":14,"time":null,"condition":null,"branch":null}]},"3":{"BEGIN":[{"pod":null,"subroutine":null,"condition":null,"time":null,"branch":null,"statement":null}]},"90":{"setRemoteAddress":[{"branch":7,"time":null,"condition":null,"statement":49,"pod":7,"subroutine":12}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[8,"BEGIN"],[12,"new"],[26,"getPOSTData"],[54,"getSession"],[60,"getSystemEntity"],[66,"setLogin"],[74,"setOTP"],[82,"setPassword"],[90,"setRemoteAddress"],[97,"setSession"],[107,"setSystemEntity"],[114,"setUser"]],"file":"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm","pod":[[12,"new"],[26,"getPOSTData"],[54,"getSession"],[60,"getSystemEntity"],[66,"setLogin"],[74,"setOTP"],[82,"setPassword"],[90,"setRemoteAddress"],[97,"setSession"],[107,"setSystemEntity"],[114,"setUser"]]} \ No newline at end of file diff --git a/cover_db/structure/fbbb05055b4bf56d4466313d2e9749d1.lock b/cover_db/structure/e936d83d6990004dbec16569c190df09.lock similarity index 100% rename from cover_db/structure/fbbb05055b4bf56d4466313d2e9749d1.lock rename to cover_db/structure/e936d83d6990004dbec16569c190df09.lock diff --git a/cover_db/structure/ea5528def978821c0e3cab7b6dab910c b/cover_db/structure/ea5528def978821c0e3cab7b6dab910c new file mode 100644 index 0000000..ded0410 --- /dev/null +++ b/cover_db/structure/ea5528def978821c0e3cab7b6dab910c @@ -0,0 +1 @@ +{"pod":[[15,"getInstance"],[32,"generateTemplate"],[38,"addTemplate"],[45,"getTemplate"],[57,"getTemplates"],[68,"hasTemplate"],[74,"isTemplateMatchHash"],[82,"isTemplateMatchPlain"]],"file":"blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm","start":{"6":{"BEGIN":[{"statement":8,"branch":null,"time":null,"condition":null,"subroutine":3,"pod":null}]},"45":{"getTemplate":[{"subroutine":9,"pod":3,"branch":1,"condition":null,"time":null,"statement":34}]},"-1":{"__COVER__":[{"subroutine":14,"pod":8,"branch":2,"condition":1,"time":null,"statement":56}]},"68":{"hasTemplate":[{"branch":2,"condition":null,"time":null,"statement":47,"pod":5,"subroutine":11}]},"32":{"generateTemplate":[{"pod":1,"subroutine":7,"branch":1,"time":null,"condition":null,"statement":29}]},"4":{"BEGIN":[{"subroutine":1,"pod":null,"branch":null,"time":null,"condition":null,"statement":2}]},"5":{"BEGIN":[{"pod":null,"subroutine":2,"branch":null,"time":null,"condition":null,"statement":5}]},"7":{"BEGIN":[{"branch":null,"time":null,"condition":null,"statement":11,"pod":null,"subroutine":4}]},"15":{"getInstance":[{"statement":17,"condition":null,"time":null,"branch":null,"pod":null,"subroutine":6}]},"3":{"BEGIN":[{"subroutine":null,"pod":null,"statement":null,"branch":null,"condition":null,"time":null}]},"57":{"getTemplates":[{"time":null,"condition":null,"branch":2,"statement":40,"subroutine":10,"pod":4}]},"9":{"BEGIN":[{"statement":14,"branch":null,"condition":null,"time":null,"pod":null,"subroutine":5}]},"74":{"isTemplateMatchHash":[{"pod":6,"subroutine":12,"branch":2,"time":null,"condition":null,"statement":49}]},"82":{"isTemplateMatchPlain":[{"pod":7,"subroutine":13,"statement":53,"condition":1,"time":null,"branch":2}]},"38":{"addTemplate":[{"time":null,"condition":null,"branch":1,"statement":31,"subroutine":8,"pod":2}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[9,"BEGIN"],[15,"getInstance"],[32,"generateTemplate"],[38,"addTemplate"],[45,"getTemplate"],[57,"getTemplates"],[68,"hasTemplate"],[74,"isTemplateMatchHash"],[82,"isTemplateMatchPlain"]],"branch":[[15,{"text":"unless (defined $instance)"}],[47,{"text":"if ($self->hasTemplate($id)) { }"}]],"condition":[[77,{"op":"&&","right":"$h->{'DESCRIPTION'} eq $tpl2->{'DESCRIPTION'}","left":"$h->{'CODE'} eq $tpl2->{'CODE'}","type":"and_3"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,9,9,9,15,16,17,18,19,20,21,22,23,24,25,27,32,33,38,39,40,45,46,47,48,50,52,57,58,59,60,60,61,63,68,69,74,75,76,77,82,83,84],"digest":"ea5528def978821c0e3cab7b6dab910c"} \ No newline at end of file diff --git a/cover_db/structure/fc85fc813134eedf68cdbf532f5ba41b.lock b/cover_db/structure/ea5528def978821c0e3cab7b6dab910c.lock similarity index 100% rename from cover_db/structure/fc85fc813134eedf68cdbf532f5ba41b.lock rename to cover_db/structure/ea5528def978821c0e3cab7b6dab910c.lock diff --git a/cover_db/structure/f53203362ec0d1a6a6511fb40d7783f4 b/cover_db/structure/f53203362ec0d1a6a6511fb40d7783f4 deleted file mode 100644 index d45072d..0000000 --- a/cover_db/structure/f53203362ec0d1a6a6511fb40d7783f4 +++ /dev/null @@ -1 +0,0 @@ -{"start":{"214":{"getNextPageNumber":[{"pod":15,"subroutine":26,"time":null,"statement":147,"branch":18,"condition":1}]},"284":{"getRecords":[{"subroutine":32,"pod":21,"time":null,"statement":178,"branch":25,"condition":3}]},"-1":{"__COVER__":[{"subroutine":44,"pod":28,"time":null,"branch":33,"condition":6,"statement":234}]},"297":{"getRecordsTotalCount":[{"statement":185,"condition":3,"branch":25,"time":null,"pod":23,"subroutine":34}]},"255":{"getPreviousPageNumber":[{"pod":18,"subroutine":29,"time":null,"branch":21,"condition":2,"statement":164}]},"8":{"BEGIN":[{"condition":null,"branch":null,"statement":14,"time":null,"pod":null,"subroutine":5}]},"91":{"getColumn":[{"statement":82,"branch":7,"condition":null,"subroutine":13,"pod":3,"time":null}]},"10":{"BEGIN":[{"time":null,"pod":null,"subroutine":7,"statement":20,"condition":null,"branch":null}]},"149":{"getCurrentRecord":[{"time":null,"pod":10,"subroutine":21,"condition":1,"branch":10,"statement":114}]},"5":{"BEGIN":[{"condition":null,"branch":null,"statement":5,"time":null,"subroutine":2,"pod":null}]},"101":{"getColumnIndex":[{"pod":4,"subroutine":15,"time":null,"statement":89,"branch":8,"condition":null}]},"138":{"getCurrentPageNumber":[{"time":null,"pod":9,"subroutine":20,"statement":108,"condition":null,"branch":9}]},"358":{"_hasColumn":[{"time":null,"subroutine":39,"pod":28,"condition":3,"branch":33,"statement":218}]},"76":{"addColumn":[{"statement":72,"condition":null,"branch":7,"time":null,"subroutine":11,"pod":1}]},"109":{"getColumnKeys":[{"condition":null,"branch":9,"statement":93,"time":null,"subroutine":16,"pod":5}]},"380":{"_hasPreviousRecord":[{"condition":5,"branch":33,"statement":232,"time":null,"pod":28,"subroutine":43}]},"206":{"getNextRecord":[{"statement":144,"condition":1,"branch":17,"time":null,"pod":14,"subroutine":25}]},"14":{"BEGIN":[{"subroutine":9,"pod":null,"time":null,"statement":26,"branch":null,"condition":null}]},"310":{"getRecordsLimitation":[{"time":null,"subroutine":35,"pod":24,"condition":3,"branch":27,"statement":192}]},"7":{"BEGIN":[{"pod":null,"subroutine":4,"time":null,"branch":null,"condition":null,"statement":11}]},"115":{"getColumns":[{"condition":null,"branch":9,"statement":96,"time":null,"subroutine":17,"pod":6}]},"372":{"_hasNextRecord":[{"statement":227,"condition":4,"branch":33,"time":null,"subroutine":42,"pod":28}]},"121":{"getCommand":[{"condition":null,"branch":9,"statement":99,"time":null,"pod":7,"subroutine":18}]},"9":{"BEGIN":[{"condition":null,"branch":null,"statement":17,"time":null,"pod":null,"subroutine":6}]},"227":{"getNumberOfPages":[{"time":null,"subroutine":27,"pod":16,"statement":155,"condition":1,"branch":20}]},"93":{"__ANON__":[{"pod":4,"subroutine":14,"time":null,"statement":89,"branch":8,"condition":null}]},"6":{"BEGIN":[{"statement":8,"condition":null,"branch":null,"time":null,"pod":null,"subroutine":3}]},"3":{"BEGIN":[{"branch":null,"condition":null,"statement":null,"pod":null,"subroutine":null,"time":null}]},"351":{"rewindRecordList":[{"pod":27,"subroutine":38,"time":null,"statement":215,"branch":33,"condition":3}]},"127":{"getCommandPlain":[{"branch":9,"condition":null,"statement":101,"pod":8,"subroutine":19,"time":null}]},"267":{"getPreviousRecord":[{"branch":23,"condition":2,"statement":171,"subroutine":30,"pod":19,"time":null}]},"189":{"getListHash":[{"statement":137,"branch":17,"condition":1,"pod":13,"subroutine":24,"time":null}]},"172":{"getLastRecordIndex":[{"statement":127,"condition":1,"branch":14,"time":null,"pod":12,"subroutine":23}]},"290":{"getRecordsCount":[{"time":null,"subroutine":33,"pod":22,"condition":3,"branch":25,"statement":181}]},"4":{"BEGIN":[{"time":null,"pod":null,"subroutine":1,"statement":2,"condition":null,"branch":null}]},"337":{"hasPreviousPage":[{"pod":26,"subroutine":37,"time":null,"statement":207,"branch":31,"condition":3}]},"157":{"getFirstRecordIndex":[{"pod":11,"subroutine":22,"time":null,"statement":117,"branch":11,"condition":1}]},"11":{"BEGIN":[{"subroutine":8,"pod":null,"time":null,"statement":23,"branch":null,"condition":null}]},"18":{"new":[{"time":null,"subroutine":10,"pod":null,"condition":null,"branch":null,"statement":29}]},"238":{"getPagination":[{"branch":21,"condition":2,"statement":161,"subroutine":28,"pod":17,"time":null}]},"323":{"hasNextPage":[{"condition":3,"branch":29,"statement":199,"time":null,"pod":25,"subroutine":36}]},"365":{"_hasCurrentRecord":[{"time":null,"pod":28,"subroutine":41,"condition":3,"branch":33,"statement":223}]},"359":{"__ANON__":[{"pod":28,"subroutine":40,"time":null,"branch":33,"condition":3,"statement":223}]},"275":{"getRecord":[{"statement":174,"branch":24,"condition":2,"subroutine":31,"pod":20,"time":null}]},"84":{"addRecord":[{"time":null,"subroutine":12,"pod":2,"statement":78,"condition":null,"branch":7}]}},"pod":[[18,"new"],[76,"addColumn"],[84,"addRecord"],[91,"getColumn"],[101,"getColumnIndex"],[109,"getColumnKeys"],[115,"getColumns"],[121,"getCommand"],[127,"getCommandPlain"],[138,"getCurrentPageNumber"],[149,"getCurrentRecord"],[157,"getFirstRecordIndex"],[172,"getLastRecordIndex"],[189,"getListHash"],[206,"getNextRecord"],[214,"getNextPageNumber"],[227,"getNumberOfPages"],[238,"getPagination"],[255,"getPreviousPageNumber"],[267,"getPreviousRecord"],[275,"getRecord"],[284,"getRecords"],[290,"getRecordsCount"],[297,"getRecordsTotalCount"],[310,"getRecordsLimitation"],[323,"hasNextPage"],[337,"hasPreviousPage"],[351,"rewindRecordList"]],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[9,"BEGIN"],[10,"BEGIN"],[11,"BEGIN"],[14,"BEGIN"],[18,"new"],[76,"addColumn"],[84,"addRecord"],[91,"getColumn"],[93,"__ANON__"],[101,"getColumnIndex"],[109,"getColumnKeys"],[115,"getColumns"],[121,"getCommand"],[127,"getCommandPlain"],[138,"getCurrentPageNumber"],[149,"getCurrentRecord"],[157,"getFirstRecordIndex"],[172,"getLastRecordIndex"],[189,"getListHash"],[206,"getNextRecord"],[214,"getNextPageNumber"],[227,"getNumberOfPages"],[238,"getPagination"],[255,"getPreviousPageNumber"],[267,"getPreviousRecord"],[275,"getRecord"],[284,"getRecords"],[290,"getRecordsCount"],[297,"getRecordsTotalCount"],[310,"getRecordsLimitation"],[323,"hasNextPage"],[337,"hasPreviousPage"],[351,"rewindRecordList"],[358,"_hasColumn"],[359,"__ANON__"],[365,"_hasCurrentRecord"],[372,"_hasNextRecord"],[380,"_hasPreviousRecord"]],"condition":[[141,{"type":"and_3","right":"$limit > 0","left":"defined $first","op":"and"}],[230,{"type":"and_3","right":"$limit > 0","left":"$t > 0","op":"and"}],[276,{"type":"and_3","left":"$idx >= 0","right":"$self->getRecordsCount > $idx","op":"and"}],[367,{"type":"and_3","right":"$self->{'recordIndex'} < $len","left":"$len > 0 && $self->{'recordIndex'} >= 0","op":"&&"}],[375,{"left":"$self->_hasCurrentRecord","right":"$next < $len","op":"&&","type":"and_3"}],[381,{"type":"and_3","left":"$self->{'recordIndex'} > 0","right":"$self->_hasCurrentRecord","op":"&&"}]],"digest":"f53203362ec0d1a6a6511fb40d7783f4","file":"blib/lib/WebService/Hexonet/Connector/Response.pm","branch":[[22,{"text":"unless (defined $ph)"}],[21,{"text":"if ($self->{'raw'} =~ /[{][[:upper:]_]+[}]/gmsux)"}],[35,{"text":"if (defined $self->{'command'}{'PASSWORD'})"}],[52,{"text":"if ($len > $count)"}],[63,{"text":"if (defined $v)"}],[61,{"text":"if (defined $col)"}],[45,{"text":"if (defined $h->{'PROPERTY'})"}],[92,{"text":"if ($self->_hasColumn($key))"}],[103,{"text":"if defined $col"}],[141,{"text":"if (defined $first and $limit > 0)"}],[150,{"text":"if $self->_hasCurrentRecord"}],[161,{"text":"if (defined $f)"}],[159,{"text":"if (defined $col)"}],[166,{"text":"if $len > 0"}],[176,{"text":"if (defined $l)"}],[174,{"text":"if (defined $col)"}],[181,{"text":"if ($len > 0)"}],[207,{"text":"if $self->_hasNextRecord"}],[216,{"text":"if ($cp < 0)"}],[221,{"text":"if $page <= $pages"}],[230,{"text":"if ($t > 0 and $limit > 0)"}],[257,{"text":"if ($cp < 0)"}],[261,{"text":"if $np > 0"}],[268,{"text":"if $self->_hasPreviousRecord"}],[276,{"text":"if ($idx >= 0 and $self->getRecordsCount > $idx)"}],[301,{"text":"if (defined $t)"}],[299,{"text":"if (defined $col)"}],[314,{"text":"if (defined $l)"}],[312,{"text":"if (defined $col)"}],[325,{"text":"if ($cp < 0)"}],[329,{"text":"if ($np <= $self->getNumberOfPages)"}],[339,{"text":"if ($cp < 0)"}],[343,{"text":"if ($pp > 0)"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,14,14,14,18,19,21,22,23,25,25,26,27,28,30,31,33,34,35,37,39,40,41,42,44,45,46,46,47,48,49,49,50,51,52,53,56,57,58,59,60,61,62,63,64,68,71,76,77,77,78,78,79,84,85,85,86,91,92,93,93,93,94,96,101,102,103,104,109,110,110,115,116,116,121,122,127,128,129,129,130,131,133,138,139,140,141,142,144,149,150,152,157,158,159,160,161,162,165,165,166,167,172,173,174,175,176,177,180,181,182,184,189,190,191,191,192,194,201,206,207,209,214,215,216,217,219,220,221,222,227,228,229,230,231,233,238,239,250,255,256,257,258,260,261,262,267,268,270,275,276,277,279,284,285,285,290,291,291,292,297,298,299,300,301,302,305,310,311,312,313,314,315,318,323,324,325,326,328,329,330,332,337,338,339,340,342,343,344,346,351,352,353,358,359,359,359,360,365,366,366,367,372,373,374,374,375,380,381]} \ No newline at end of file diff --git a/cover_db/structure/fbbb05055b4bf56d4466313d2e9749d1 b/cover_db/structure/fbbb05055b4bf56d4466313d2e9749d1 deleted file mode 100644 index 2184261..0000000 --- a/cover_db/structure/fbbb05055b4bf56d4466313d2e9749d1 +++ /dev/null @@ -1 +0,0 @@ -{"file":"blib/lib/WebService/Hexonet/Connector/SocketConfig.pm","branch":[[28,{"text":"if (length $self->{'entity'})"}],[31,{"text":"if (length $self->{'login'})"}],[34,{"text":"if (length $self->{'otp'})"}],[37,{"text":"if (length $self->{'pw'})"}],[40,{"text":"if (length $self->{'remoteaddr'})"}],[43,{"text":"if (length $self->{'session'})"}],[46,{"text":"if (length $self->{'user'})"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,8,8,8,12,13,26,27,28,29,31,32,34,35,37,38,40,41,43,44,46,47,49,54,55,60,61,66,67,68,69,74,75,76,77,82,83,84,85,90,91,92,97,98,99,100,101,102,107,108,109,114,115,116],"start":{"-1":{"__COVER__":[{"subroutine":16,"pod":11,"time":null,"statement":64,"branch":7,"condition":null}]},"8":{"BEGIN":[{"subroutine":4,"pod":null,"time":null,"statement":11,"branch":null,"condition":null}]},"97":{"setSession":[{"time":null,"pod":8,"subroutine":13,"statement":52,"condition":null,"branch":7}]},"90":{"setRemoteAddress":[{"subroutine":12,"pod":7,"time":null,"branch":7,"condition":null,"statement":49}]},"107":{"setSystemEntity":[{"statement":58,"branch":7,"condition":null,"pod":9,"subroutine":14,"time":null}]},"60":{"getSystemEntity":[{"statement":35,"condition":null,"branch":7,"time":null,"pod":3,"subroutine":8}]},"5":{"BEGIN":[{"branch":null,"condition":null,"statement":5,"pod":null,"subroutine":2,"time":null}]},"26":{"getPOSTData":[{"statement":16,"condition":null,"branch":null,"time":null,"pod":1,"subroutine":6}]},"12":{"new":[{"subroutine":5,"pod":null,"time":null,"statement":14,"branch":null,"condition":null}]},"114":{"setUser":[{"condition":null,"branch":7,"statement":61,"time":null,"subroutine":15,"pod":10}]},"82":{"setPassword":[{"time":null,"pod":6,"subroutine":11,"statement":45,"condition":null,"branch":7}]},"4":{"BEGIN":[{"time":null,"pod":null,"subroutine":1,"statement":2,"condition":null,"branch":null}]},"54":{"getSession":[{"subroutine":7,"pod":2,"time":null,"statement":33,"branch":7,"condition":null}]},"3":{"BEGIN":[{"pod":null,"subroutine":null,"time":null,"statement":null,"branch":null,"condition":null}]},"6":{"BEGIN":[{"branch":null,"condition":null,"statement":8,"pod":null,"subroutine":3,"time":null}]},"74":{"setOTP":[{"subroutine":10,"pod":5,"time":null,"branch":7,"condition":null,"statement":41}]},"66":{"setLogin":[{"pod":4,"subroutine":9,"time":null,"statement":37,"branch":7,"condition":null}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[8,"BEGIN"],[12,"new"],[26,"getPOSTData"],[54,"getSession"],[60,"getSystemEntity"],[66,"setLogin"],[74,"setOTP"],[82,"setPassword"],[90,"setRemoteAddress"],[97,"setSession"],[107,"setSystemEntity"],[114,"setUser"]],"pod":[[12,"new"],[26,"getPOSTData"],[54,"getSession"],[60,"getSystemEntity"],[66,"setLogin"],[74,"setOTP"],[82,"setPassword"],[90,"setRemoteAddress"],[97,"setSession"],[107,"setSystemEntity"],[114,"setUser"]],"digest":"fbbb05055b4bf56d4466313d2e9749d1"} \ No newline at end of file diff --git a/cover_db/structure/fc85fc813134eedf68cdbf532f5ba41b b/cover_db/structure/fc85fc813134eedf68cdbf532f5ba41b deleted file mode 100644 index 01dd85e..0000000 --- a/cover_db/structure/fc85fc813134eedf68cdbf532f5ba41b +++ /dev/null @@ -1 +0,0 @@ -{"file":"blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm","branch":[[17,{"text":"if (not defined $raw or length $raw == 0)"}],[22,{"text":"unless (defined $self->{'hash'}{'DESCRIPTION'} and defined $self->{'hash'}{'CODE'})"}],[50,{"text":"if (defined $self->{'hash'}{'QUEUETIME'})"}],[65,{"text":"if (defined $self->{'hash'}{'RUNTIME'})"}],[95,{"text":"if (defined $self->{'hash'}{'PENDING'})"}]],"statement":[3,3,4,4,4,5,5,5,6,6,6,7,7,7,9,9,9,15,16,17,18,20,21,22,23,24,26,31,32,37,38,43,44,49,50,51,53,58,59,64,65,66,68,73,74,75,80,81,82,87,88,89,94,95,96,98],"start":{"58":{"getHash":[{"time":null,"subroutine":11,"pod":5,"statement":37,"condition":2,"branch":3}]},"49":{"getQueuetime":[{"statement":33,"branch":2,"condition":2,"subroutine":10,"pod":4,"time":null}]},"80":{"isSuccess":[{"statement":46,"condition":2,"branch":4,"time":null,"pod":8,"subroutine":14}]},"43":{"getPlain":[{"branch":2,"condition":2,"statement":31,"subroutine":9,"pod":3,"time":null}]},"9":{"BEGIN":[{"time":null,"subroutine":5,"pod":null,"condition":null,"branch":null,"statement":14}]},"4":{"BEGIN":[{"condition":null,"branch":null,"statement":2,"time":null,"subroutine":1,"pod":null}]},"87":{"isTmpError":[{"pod":9,"subroutine":15,"time":null,"statement":49,"branch":4,"condition":2}]},"3":{"BEGIN":[{"time":null,"subroutine":null,"pod":null,"statement":null,"condition":null,"branch":null}]},"15":{"new":[{"statement":17,"branch":null,"condition":null,"subroutine":6,"pod":null,"time":null}]},"6":{"BEGIN":[{"pod":null,"subroutine":3,"time":null,"branch":null,"condition":null,"statement":8}]},"73":{"isError":[{"statement":43,"branch":4,"condition":2,"pod":7,"subroutine":13,"time":null}]},"7":{"BEGIN":[{"time":null,"subroutine":4,"pod":null,"statement":11,"condition":null,"branch":null}]},"-1":{"__COVER__":[{"statement":56,"condition":2,"branch":5,"time":null,"subroutine":17,"pod":11}]},"31":{"getCode":[{"statement":27,"condition":2,"branch":2,"time":null,"subroutine":7,"pod":1}]},"64":{"getRuntime":[{"subroutine":12,"pod":6,"time":null,"branch":3,"condition":2,"statement":39}]},"5":{"BEGIN":[{"time":null,"pod":null,"subroutine":2,"condition":null,"branch":null,"statement":5}]},"94":{"isPending":[{"subroutine":16,"pod":10,"time":null,"branch":4,"condition":2,"statement":52}]},"37":{"getDescription":[{"condition":2,"branch":2,"statement":29,"time":null,"subroutine":8,"pod":2}]}},"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[5,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[9,"BEGIN"],[15,"new"],[31,"getCode"],[37,"getDescription"],[43,"getPlain"],[49,"getQueuetime"],[58,"getHash"],[64,"getRuntime"],[73,"isError"],[80,"isSuccess"],[87,"isTmpError"],[94,"isPending"]],"pod":[[15,"new"],[31,"getCode"],[37,"getDescription"],[43,"getPlain"],[49,"getQueuetime"],[58,"getHash"],[64,"getRuntime"],[73,"isError"],[80,"isSuccess"],[87,"isTmpError"],[94,"isPending"]],"condition":[[17,{"type":"or_3","op":"or","right":"length $raw == 0","left":"not defined $raw"}],[22,{"type":"and_3","left":"defined $self->{'hash'}{'DESCRIPTION'}","right":"defined $self->{'hash'}{'CODE'}","op":"and"}]],"digest":"fc85fc813134eedf68cdbf532f5ba41b"} \ No newline at end of file diff --git a/lib/WebService/Hexonet.pm b/lib/WebService/Hexonet.pm index f563a2d..14692d2 100644 --- a/lib/WebService/Hexonet.pm +++ b/lib/WebService/Hexonet.pm @@ -5,7 +5,7 @@ use strict; use warnings; use WebService::Hexonet::Connector; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); 1; diff --git a/lib/WebService/Hexonet/Connector.pm b/lib/WebService/Hexonet/Connector.pm index fd0757a..b9ae070 100644 --- a/lib/WebService/Hexonet/Connector.pm +++ b/lib/WebService/Hexonet/Connector.pm @@ -12,7 +12,7 @@ use WebService::Hexonet::Connector::ResponseTemplate; use WebService::Hexonet::Connector::ResponseTemplateManager; use WebService::Hexonet::Connector::SocketConfig; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); 1; diff --git a/lib/WebService/Hexonet/Connector/APIClient.pm b/lib/WebService/Hexonet/Connector/APIClient.pm index 1e12226..7606117 100644 --- a/lib/WebService/Hexonet/Connector/APIClient.pm +++ b/lib/WebService/Hexonet/Connector/APIClient.pm @@ -20,7 +20,7 @@ Readonly my $IDX4 => 4; Readonly our $ISPAPI_CONNECTION_URL => 'https://api.ispapi.net/api/call.cgi'; # Default Connection Setup URL Readonly our $ISPAPI_CONNECTION_URL_PROXY => 'http://127.0.0.1/api/call.cgi'; # High Speed Connection Setup URL -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); my $rtm = WebService::Hexonet::Connector::ResponseTemplateManager->getInstance(); diff --git a/lib/WebService/Hexonet/Connector/Column.pm b/lib/WebService/Hexonet/Connector/Column.pm index 12374de..314a6d9 100644 --- a/lib/WebService/Hexonet/Connector/Column.pm +++ b/lib/WebService/Hexonet/Connector/Column.pm @@ -4,7 +4,7 @@ use 5.030; use strict; use warnings; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); sub new { diff --git a/lib/WebService/Hexonet/Connector/Logger.pm b/lib/WebService/Hexonet/Connector/Logger.pm index d1d33c3..1ab9a1e 100644 --- a/lib/WebService/Hexonet/Connector/Logger.pm +++ b/lib/WebService/Hexonet/Connector/Logger.pm @@ -5,7 +5,7 @@ use strict; use warnings; use Data::Dumper; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); sub new { diff --git a/lib/WebService/Hexonet/Connector/Record.pm b/lib/WebService/Hexonet/Connector/Record.pm index 84fccc5..d06e16c 100644 --- a/lib/WebService/Hexonet/Connector/Record.pm +++ b/lib/WebService/Hexonet/Connector/Record.pm @@ -4,7 +4,7 @@ use 5.030; use strict; use warnings; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); sub new { diff --git a/lib/WebService/Hexonet/Connector/Response.pm b/lib/WebService/Hexonet/Connector/Response.pm index e7750a3..a850cd1 100644 --- a/lib/WebService/Hexonet/Connector/Response.pm +++ b/lib/WebService/Hexonet/Connector/Response.pm @@ -11,7 +11,7 @@ use List::MoreUtils qw(first_index); use Readonly; Readonly my $INDEX_NOT_FOUND => -1; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); sub new { diff --git a/lib/WebService/Hexonet/Connector/ResponseParser.pm b/lib/WebService/Hexonet/Connector/ResponseParser.pm index 2240280..8f78c35 100644 --- a/lib/WebService/Hexonet/Connector/ResponseParser.pm +++ b/lib/WebService/Hexonet/Connector/ResponseParser.pm @@ -4,7 +4,7 @@ use 5.030; use strict; use warnings; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); sub parse { diff --git a/lib/WebService/Hexonet/Connector/ResponseTemplate.pm b/lib/WebService/Hexonet/Connector/ResponseTemplate.pm index c89aa68..6c27e71 100644 --- a/lib/WebService/Hexonet/Connector/ResponseTemplate.pm +++ b/lib/WebService/Hexonet/Connector/ResponseTemplate.pm @@ -6,7 +6,7 @@ use warnings; use WebService::Hexonet::Connector::ResponseParser; use WebService::Hexonet::Connector::ResponseTemplateManager; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); my $rtm = WebService::Hexonet::Connector::ResponseTemplateManager->getInstance(); diff --git a/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm b/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm index 68c5afb..78e8006 100644 --- a/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm +++ b/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm @@ -6,7 +6,7 @@ use warnings; use WebService::Hexonet::Connector::ResponseTemplate; use WebService::Hexonet::Connector::ResponseParser; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); my $instance = undef; diff --git a/lib/WebService/Hexonet/Connector/SocketConfig.pm b/lib/WebService/Hexonet/Connector/SocketConfig.pm index 25b48b8..17bd38f 100644 --- a/lib/WebService/Hexonet/Connector/SocketConfig.pm +++ b/lib/WebService/Hexonet/Connector/SocketConfig.pm @@ -5,7 +5,7 @@ use strict; use warnings; use utf8; -use version 0.9917; our $VERSION = version->declare('v2.10.0'); +use version 0.9917; our $VERSION = version->declare('v2.10.1'); sub new {
filestmtbrancondsubpodtimetotal
blib/lib/WebService/Hexonet/Connector.pm100.0n/an/a100.0n/a 2.7100.0
blib/lib/WebService/Hexonet/Connector/APIClient.pm97.382.850.098.091.492.693.4
blib/lib/WebService/Hexonet/Connector/Column.pm100.0100.0n/a100.0100.0 0.8100.0
blib/lib/WebService/Hexonet/Connector.pm100.0n/an/a100.0n/a 2.6100.0
blib/lib/WebService/Hexonet/Connector/APIClient.pm97.382.850.098.091.493.093.4
blib/lib/WebService/Hexonet/Connector/Column.pm100.0100.0n/a100.0100.0 0.7100.0
blib/lib/WebService/Hexonet/Connector/Logger.pm75.750.0n/a100.0100.0 0.079.5
blib/lib/WebService/Hexonet/Connector/Record.pm100.0100.0n/a100.0100.0 0.0100.0
blib/lib/WebService/Hexonet/Connector/Response.pm98.284.861.1100.096.4 3.194.3
blib/lib/WebService/Hexonet/Connector/Response.pm98.284.861.1100.096.4 2.994.3
blib/lib/WebService/Hexonet/Connector/ResponseParser.pm100.0100.0n/a100.0100.0 0.3100.0
blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm100.0100.083.3100.0100.0 0.199.0
blib/lib/WebService/Hexonet/Connector/ResponseTemplateManager.pm100.0100.033.3100.0100.0 0.097.6