File Coverage

blib/lib/Locale/TextDomain/OO/Plugin/Expand/Gettext/DomainAndCategory.pm
Criterion Covered Total %
statement 20 69 28.9
branch 0 2 0.0
condition n/a
subroutine 7 30 23.3
pod n/a
total 27 101 26.7


line stmt bran cond sub pod time code
1             package Locale::TextDomain::OO::Plugin::Expand::Gettext::DomainAndCategory; ## no critic (TidyCode)
2            
3 6     6   7104 use strict;
  6         14  
  6         156  
4 6     6   27 use warnings;
  6         12  
  6         140  
5 6     6   1930 use Locale::Utils::PlaceholderNamed;
  6         23022  
  6         135  
6 6     6   34 use Moo::Role;
  6         11  
  6         26  
7            
8             our $VERSION = '1.030';
9            
10             with qw(
11             Locale::TextDomain::OO::Plugin::Expand::Gettext
12             Locale::TextDomain::OO::Role::DomainAndCategory
13             );
14            
15             requires qw(
16             __x
17             __nx
18             __px
19             __npx
20            
21             begin_c
22             begin_d
23             begin_dc
24             callback_scope
25             end_c
26             end_d
27             end_dc
28             );
29            
30             sub __dx {
31 0     0   0 my ( $self, $domain, @more ) = @_;
32            
33             return $self->callback_scope(
34             sub {
35 0     0   0 $self->begin_d($domain);
36 0         0 return $self->__x(@more);
37             },
38 0         0 );
39             }
40            
41             sub __cx {
42 0     0   0 my ($self, @more) = @_;
43            
44             return $self->callback_scope(
45             sub {
46 0     0   0 $self->begin_c( splice @more, 1, 1 );
47 0         0 return $self->__x(@more);
48             },
49 0         0 );
50             }
51            
52             sub __dcx {
53 0     0   0 my ( $self, $domain, @more ) = @_;
54            
55             return $self->callback_scope(
56             sub {
57 0     0   0 $self->begin_d($domain);
58 0         0 $self->begin_c( splice @more, 1, 1 );
59 0         0 return $self->__x(@more);
60             },
61 0         0 );
62             }
63            
64             sub __dnx {
65 0     0   0 my ( $self, $domain, @more ) = @_;
66            
67             return $self->callback_scope(
68             sub {
69 0     0   0 $self->begin_d($domain);
70 0         0 return $self->__nx(@more);
71             },
72 0         0 );
73             }
74            
75             sub __cnx {
76 0     0   0 my ( $self, @more ) = @_;
77            
78             return $self->callback_scope(
79             sub {
80 0     0   0 $self->begin_c( splice @more, 3, 1 ); ## no critic (MagicNumbers)
81 0         0 return $self->__nx(@more);
82             },
83 0         0 );
84             }
85            
86             sub __dcnx {
87 0     0   0 my ( $self, $domain, @more ) = @_;
88            
89             return $self->callback_scope(
90             sub {
91 0     0   0 $self->begin_d($domain);
92 0         0 $self->begin_c( splice @more, 3, 1 ); ## no critic (MagicNumbers)
93 0         0 return $self->__nx(@more);
94             },
95 0         0 );
96             }
97            
98             sub __dpx {
99 0     0   0 my ( $self, $domain, @more ) = @_;
100            
101             return $self->callback_scope(
102             sub {
103 0     0   0 $self->begin_d($domain);
104 0         0 return $self->__px(@more);
105             },
106 0         0 );
107             }
108            
109             sub __cpx {
110 0     0   0 my ( $self, @more ) = @_;
111            
112             return $self->callback_scope(
113             sub {
114 0     0   0 $self->begin_c( splice @more, 2, 1 );
115 0         0 return $self->__px(@more);
116             },
117 0         0 );
118             }
119            
120             sub __dcpx {
121 0     0   0 my ( $self, $domain, @more ) = @_;
122            
123             return $self->callback_scope(
124             sub {
125 0     0   0 $self->begin_d($domain);
126 0         0 $self->begin_c( splice @more, 2, 1 );
127 0         0 return $self->__px(@more);
128             },
129 0         0 );
130             }
131            
132             sub __dnpx {
133 0     0   0 my ( $self, $domain, @more ) = @_;
134            
135             return $self->callback_scope(
136             sub {
137 0     0   0 $self->begin_d($domain);
138 0         0 return $self->__npx(@more);
139             },
140 0         0 );
141             }
142            
143             sub __cnpx {
144 0     0   0 my ($self, @more) = @_;
145            
146             return $self->callback_scope(
147             sub {
148 0     0   0 $self->begin_c( splice @more, 4, 1 ); ## no critic (MagicNumbers)
149 0         0 return $self->__npx(@more);
150             },
151 0         0 );
152             }
153            
154             sub __dcnpx {
155 2     2   9 my ( $self, $domain, @more ) = @_;
156            
157             return $self->callback_scope(
158             sub {
159 2     2   8 $self->begin_d($domain);
160 2         8 $self->begin_c( splice @more, 4, 1 ); ## no critic (MagicNumbers)
161 2         9 return $self->__npx(@more);
162             },
163 2         14 );
164             }
165            
166             {
167 6     6   6161 no warnings qw(redefine); ## no critic (NoWarnings)
  6         22  
  6         1890  
168            
169             # Dummy methods for string marking.
170             my $dummy = sub {
171 0     0     my (undef, @more) = @_;
172 0 0         return wantarray ? @more : $more[0];
173             };
174            
175             *__begin_c = \&begin_c;
176             *__begin_d = \&begin_d;
177             *__begin_dc = \&begin_dc;
178            
179             *__end_c = \&end_c;
180             *__end_d = \&end_d;
181             *__end_dc = \&end_dc;
182            
183             *__d = \&__dx;
184             *__dn = \&__dnx;
185             *__dp = \&__dpx;
186             *__dnp = \&__dnpx;
187            
188             *__c = \&__cx;
189             *__cn = \&__cnx;
190             *__cp = \&__cpx;
191             *__cnp = \&__cnpx;
192            
193             *__dc = \&__dcx;
194             *__dcn = \&__dcnx;
195             *__dcp = \&__dcpx;
196             *__dcnp = \&__dcnpx;
197            
198             *N__d = $dummy;
199             *N__dn = $dummy;
200             *N__dp = $dummy;
201             *N__dnp = $dummy;
202            
203             *N__dx = $dummy;
204             *N__dnx = $dummy;
205             *N__dpx = $dummy;
206             *N__dnpx = $dummy;
207            
208             *N__c = $dummy;
209             *N__cn = $dummy;
210             *N__cp = $dummy;
211             *N__cnp = $dummy;
212            
213             *N__cx = $dummy;
214             *N__cnx = $dummy;
215             *N__cpx = $dummy;
216             *N__cnpx = $dummy;
217            
218             *N__dc = $dummy;
219             *N__dcn = $dummy;
220             *N__dcp = $dummy;
221             *N__dcnp = $dummy;
222            
223             *N__dcx = $dummy;
224             *N__dcnx = $dummy;
225             *N__dcpx = $dummy;
226             *N__dcnpx = $dummy;
227             }
228            
229             1;
230            
231             __END__