| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package MARC::Validator::Filter::Abstract; |
|
2
|
|
|
|
|
|
|
|
|
3
|
17
|
|
|
17
|
|
110757
|
use strict; |
|
|
17
|
|
|
|
|
34
|
|
|
|
17
|
|
|
|
|
672
|
|
|
4
|
17
|
|
|
17
|
|
88
|
use warnings; |
|
|
17
|
|
|
|
|
41
|
|
|
|
17
|
|
|
|
|
1159
|
|
|
5
|
|
|
|
|
|
|
|
|
6
|
17
|
|
|
17
|
|
8345
|
use Class::Utils qw(set_params); |
|
|
17
|
|
|
|
|
201805
|
|
|
|
17
|
|
|
|
|
591
|
|
|
7
|
17
|
|
|
17
|
|
1397
|
use Error::Pure qw(err); |
|
|
17
|
|
|
|
|
2739
|
|
|
|
17
|
|
|
|
|
4332
|
|
|
8
|
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
our $VERSION = 0.01; |
|
10
|
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
# Constructor. |
|
12
|
|
|
|
|
|
|
sub new { |
|
13
|
23
|
|
|
23
|
1
|
3390332
|
my ($class, @params) = @_; |
|
14
|
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
# Create object. |
|
16
|
23
|
|
|
|
|
70
|
my $self = bless {}, $class; |
|
17
|
|
|
|
|
|
|
|
|
18
|
|
|
|
|
|
|
# Process parameters. |
|
19
|
23
|
|
|
|
|
166
|
set_params($self, @params); |
|
20
|
|
|
|
|
|
|
|
|
21
|
20
|
|
|
|
|
203
|
return $self; |
|
22
|
|
|
|
|
|
|
} |
|
23
|
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
# Name of plugin. |
|
25
|
|
|
|
|
|
|
sub name { |
|
26
|
0
|
|
|
0
|
1
|
|
my $self = shift; |
|
27
|
|
|
|
|
|
|
|
|
28
|
0
|
|
|
|
|
|
err __PACKAGE__.' is abstract class,'; |
|
29
|
|
|
|
|
|
|
} |
|
30
|
|
|
|
|
|
|
|
|
31
|
|
|
|
|
|
|
# Process statistics. |
|
32
|
|
|
|
|
|
|
sub process { |
|
33
|
0
|
|
|
0
|
1
|
|
my ($self, $marc_record) = @_; |
|
34
|
|
|
|
|
|
|
|
|
35
|
0
|
|
|
|
|
|
err __PACKAGE__.' is abstract class.'; |
|
36
|
|
|
|
|
|
|
} |
|
37
|
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
1; |
|
39
|
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
__END__ |
|
41
|
|
|
|
|
|
|
|
|
42
|
|
|
|
|
|
|
=pod |
|
43
|
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
=encoding utf8 |
|
45
|
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
=head1 NAME |
|
47
|
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
MARC::Validator::Filter::Abstract - Abstract class for MARC::Validator::Filter plugins. |
|
49
|
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
=head1 SYNOPSIS |
|
51
|
|
|
|
|
|
|
|
|
52
|
|
|
|
|
|
|
my $obj = MARC::Validator::Filter::Abstract->new; |
|
53
|
|
|
|
|
|
|
my $name = $obj->name; |
|
54
|
|
|
|
|
|
|
my $filter_name = $obj->process($marc_record); |
|
55
|
|
|
|
|
|
|
|
|
56
|
|
|
|
|
|
|
=head1 DESCRIPTION |
|
57
|
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
This is abstract class for L<MARC::Validator::Filter> plugins, which are used in |
|
59
|
|
|
|
|
|
|
L<App::MARC::Validator> tool. |
|
60
|
|
|
|
|
|
|
|
|
61
|
|
|
|
|
|
|
=head1 METHODS |
|
62
|
|
|
|
|
|
|
|
|
63
|
|
|
|
|
|
|
=head2 C<new> |
|
64
|
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
my $obj = MARC::Validator::Filter::Abstract->new(%params); |
|
66
|
|
|
|
|
|
|
|
|
67
|
|
|
|
|
|
|
Constructor. |
|
68
|
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
Returns instance of object. |
|
70
|
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
=head2 C<name> |
|
72
|
|
|
|
|
|
|
|
|
73
|
|
|
|
|
|
|
my $name = $obj->name; |
|
74
|
|
|
|
|
|
|
|
|
75
|
|
|
|
|
|
|
Get name of plugin. |
|
76
|
|
|
|
|
|
|
|
|
77
|
|
|
|
|
|
|
Returns string. |
|
78
|
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
=head2 C<process> |
|
80
|
|
|
|
|
|
|
|
|
81
|
|
|
|
|
|
|
my $filter_name = $obj->proces($marc_record); |
|
82
|
|
|
|
|
|
|
|
|
83
|
|
|
|
|
|
|
Process L<MARC::Record> instance. |
|
84
|
|
|
|
|
|
|
|
|
85
|
|
|
|
|
|
|
Returns string with filter name. |
|
86
|
|
|
|
|
|
|
|
|
87
|
|
|
|
|
|
|
=head1 ERRORS |
|
88
|
|
|
|
|
|
|
|
|
89
|
|
|
|
|
|
|
new(): |
|
90
|
|
|
|
|
|
|
From Class::Utils::set_params(): |
|
91
|
|
|
|
|
|
|
Unknown parameter '%s'. |
|
92
|
|
|
|
|
|
|
|
|
93
|
|
|
|
|
|
|
(only in this abstract class) |
|
94
|
|
|
|
|
|
|
MARC::Validator::Filter::Abstract is abstract class. |
|
95
|
|
|
|
|
|
|
|
|
96
|
|
|
|
|
|
|
=head1 EXAMPLE |
|
97
|
|
|
|
|
|
|
|
|
98
|
|
|
|
|
|
|
=for comment filename=example_plugin.pl |
|
99
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
use strict; |
|
101
|
|
|
|
|
|
|
use warnings; |
|
102
|
|
|
|
|
|
|
|
|
103
|
|
|
|
|
|
|
package MARC::Validator::Filter::Plugin::Foo; |
|
104
|
|
|
|
|
|
|
|
|
105
|
|
|
|
|
|
|
use base qw(MARC::Validator::Filter::Abstract); |
|
106
|
|
|
|
|
|
|
|
|
107
|
|
|
|
|
|
|
our $VERSION = 1.01; |
|
108
|
|
|
|
|
|
|
|
|
109
|
|
|
|
|
|
|
sub name { |
|
110
|
|
|
|
|
|
|
my $self = shift; |
|
111
|
|
|
|
|
|
|
|
|
112
|
|
|
|
|
|
|
return 'foo'; |
|
113
|
|
|
|
|
|
|
} |
|
114
|
|
|
|
|
|
|
|
|
115
|
|
|
|
|
|
|
sub process { |
|
116
|
|
|
|
|
|
|
my ($self, $marc_record) = @_; |
|
117
|
|
|
|
|
|
|
|
|
118
|
|
|
|
|
|
|
my $field_040 = $marc_record->field('040'); |
|
119
|
|
|
|
|
|
|
my $field_040_a = $field_040->subfield('a'); |
|
120
|
|
|
|
|
|
|
|
|
121
|
|
|
|
|
|
|
return $field_040_a; |
|
122
|
|
|
|
|
|
|
} |
|
123
|
|
|
|
|
|
|
|
|
124
|
|
|
|
|
|
|
package main; |
|
125
|
|
|
|
|
|
|
|
|
126
|
|
|
|
|
|
|
use Data::Printer; |
|
127
|
|
|
|
|
|
|
use File::Temp qw(tempfile); |
|
128
|
|
|
|
|
|
|
use IO::Barf qw(barf); |
|
129
|
|
|
|
|
|
|
use MARC::File::XML (BinaryEncoding => 'utf8', RecordFormat => 'MARC21'); |
|
130
|
|
|
|
|
|
|
use MIME::Base64; |
|
131
|
|
|
|
|
|
|
|
|
132
|
|
|
|
|
|
|
# Content. |
|
133
|
|
|
|
|
|
|
my $marc_xml_example = <<'END'; |
|
134
|
|
|
|
|
|
|
PD94bWwgdmVyc2lvbiA9ICIxLjAiIGVuY29kaW5nID0gIlVURi04Ij8+CiAgPGNvbGxlY3Rpb24g |
|
135
|
|
|
|
|
|
|
eG1sbnM9Imh0dHA6Ly93d3cubG9jLmdvdi9NQVJDMjEvc2xpbSIKeG1sbnM6eHNpPSJodHRwOi8v |
|
136
|
|
|
|
|
|
|
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKeHNpOnNjaGVtYUxvY2F0aW9uPSJo |
|
137
|
|
|
|
|
|
|
dHRwOi8vd3d3LmxvYy5nb3YvTUFSQzIxL3NsaW0KaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJk |
|
138
|
|
|
|
|
|
|
cy9tYXJjeG1sL3NjaGVtYS9NQVJDMjFzbGltLnhzZCI+CiAgICA8cmVjb3JkIHhtbG5zPSJodHRw |
|
139
|
|
|
|
|
|
|
Oi8vd3d3LmxvYy5nb3YvTUFSQzIxL3NsaW0iCnhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcv |
|
140
|
|
|
|
|
|
|
MjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCnhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5s |
|
141
|
|
|
|
|
|
|
b2MuZ292L01BUkMyMS9zbGltCmh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvbWFyY3htbC9z |
|
142
|
|
|
|
|
|
|
Y2hlbWEvTUFSQzIxc2xpbS54c2QiPgogICAgICA8bGVhZGVyPiAgICAgbmFtIGEyMiAgICAgICAg |
|
143
|
|
|
|
|
|
|
NDUwMDwvbGVhZGVyPgogICAgICA8Y29udHJvbGZpZWxkIHRhZz0iMDAxIj5jazgzMDAwNzg8L2Nv |
|
144
|
|
|
|
|
|
|
bnRyb2xmaWVsZD4KICAgICAgPGNvbnRyb2xmaWVsZCB0YWc9IjAwMyI+Q1ogUHJOSzwvY29udHJv |
|
145
|
|
|
|
|
|
|
bGZpZWxkPgogICAgICA8Y29udHJvbGZpZWxkIHRhZz0iMDA1Ij4yMDIxMDMwOTEyMTk1MS4wPC9j |
|
146
|
|
|
|
|
|
|
b250cm9sZmllbGQ+CiAgICAgIDxjb250cm9sZmllbGQgdGFnPSIwMDciPnR1PC9jb250cm9sZmll |
|
147
|
|
|
|
|
|
|
bGQ+CiAgICAgIDxjb250cm9sZmllbGQgdGFnPSIwMDgiPjgzMDMwNHMxOTgyICAgIHhyIGEgICAg |
|
148
|
|
|
|
|
|
|
ICAgICB1MHwwIHwgY3plPC9jb250cm9sZmllbGQ+CiAgICAgIDxkYXRhZmllbGQgdGFnPSIwMTUi |
|
149
|
|
|
|
|
|
|
IGluZDE9IiAiIGluZDI9IiAiPgogICAgICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5jbmIwMDAwMDAw |
|
150
|
|
|
|
|
|
|
OTY8L3N1YmZpZWxkPgogICAgICA8L2RhdGFmaWVsZD4KICAgICAgPGRhdGFmaWVsZCB0YWc9IjAy |
|
151
|
|
|
|
|
|
|
MCIgaW5kMT0iICIgaW5kMj0iICI+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9InEiPihCcm/Fvi4p |
|
152
|
|
|
|
|
|
|
IDo8L3N1YmZpZWxkPgogICAgICAgIDxzdWJmaWVsZCBjb2RlPSJjIj45IEvEjXM8L3N1YmZpZWxk |
|
153
|
|
|
|
|
|
|
PgogICAgICA8L2RhdGFmaWVsZD4KICAgICAgPGRhdGFmaWVsZCB0YWc9IjAzNSIgaW5kMT0iICIg |
|
154
|
|
|
|
|
|
|
aW5kMj0iICI+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImEiPihPQ29MQykzOTU2MDY2NDwvc3Vi |
|
155
|
|
|
|
|
|
|
ZmllbGQ+CiAgICAgIDwvZGF0YWZpZWxkPgogICAgICA8ZGF0YWZpZWxkIHRhZz0iMDQwIiBpbmQx |
|
156
|
|
|
|
|
|
|
PSIgIiBpbmQyPSIgIj4KICAgICAgICA8c3ViZmllbGQgY29kZT0iYSI+QUJBMDAxPC9zdWJmaWVs |
|
157
|
|
|
|
|
|
|
ZD4KICAgICAgICA8c3ViZmllbGQgY29kZT0iYiI+Y3plPC9zdWJmaWVsZD4KICAgICAgICA8c3Vi |
|
158
|
|
|
|
|
|
|
ZmllbGQgY29kZT0iZCI+QUJBMDAxPC9zdWJmaWVsZD4KICAgICAgPC9kYXRhZmllbGQ+CiAgICAg |
|
159
|
|
|
|
|
|
|
IDxkYXRhZmllbGQgdGFnPSIwODAiIGluZDE9IiAiIGluZDI9IiAiPgogICAgICAgIDxzdWJmaWVs |
|
160
|
|
|
|
|
|
|
ZCBjb2RlPSJhIj4zNTIvMzUzPC9zdWJmaWVsZD4KICAgICAgICA8c3ViZmllbGQgY29kZT0iMiI+ |
|
161
|
|
|
|
|
|
|
dW5kZWY8L3N1YmZpZWxkPgogICAgICA8L2RhdGFmaWVsZD4KICAgICAgPGRhdGFmaWVsZCB0YWc9 |
|
162
|
|
|
|
|
|
|
IjA4MCIgaW5kMT0iICIgaW5kMj0iICI+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImEiPjMzOC40 |
|
163
|
|
|
|
|
|
|
Njwvc3ViZmllbGQ+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9IjIiPnVuZGVmPC9zdWJmaWVsZD4K |
|
164
|
|
|
|
|
|
|
ICAgICAgPC9kYXRhZmllbGQ+CiAgICAgIDxkYXRhZmllbGQgdGFnPSIxMDAiIGluZDE9IjEiIGlu |
|
165
|
|
|
|
|
|
|
ZDI9IiAiPgogICAgICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5HYWJyaWVsLCBWbGFkaXNsYXY8L3N1 |
|
166
|
|
|
|
|
|
|
YmZpZWxkPgogICAgICAgIDxzdWJmaWVsZCBjb2RlPSI3Ij5temsyMDE0ODUyNzIzPC9zdWJmaWVs |
|
167
|
|
|
|
|
|
|
ZD4KICAgICAgICA8c3ViZmllbGQgY29kZT0iNCI+YXV0PC9zdWJmaWVsZD4KICAgICAgPC9kYXRh |
|
168
|
|
|
|
|
|
|
ZmllbGQ+CiAgICAgIDxkYXRhZmllbGQgdGFnPSIyNDUiIGluZDE9IjEiIGluZDI9IjAiPgogICAg |
|
169
|
|
|
|
|
|
|
ICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5TbHXFvmJ5IHYgc3lzdMOpbXUgbsOhcm9kbsOtY2ggdsO9 |
|
170
|
|
|
|
|
|
|
Ym9yxa8gOjwvc3ViZmllbGQ+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImIiPnZ5YnJhbsOpIGth |
|
171
|
|
|
|
|
|
|
cGl0b2x5IDogdXLEjWVubyBwcm8gcG9zbC4gZmFrLiBvYmNob2Ruw60sIG9ib3IgRWtvbm9taWth |
|
172
|
|
|
|
|
|
|
IHNsdcW+ZWIgYSBjZXN0b3Zuw61obyBydWNodSAvPC9zdWJmaWVsZD4KICAgICAgICA8c3ViZmll |
|
173
|
|
|
|
|
|
|
bGQgY29kZT0iYyI+VmxhZGlzbGF2IEdhYnJpZWwsIExhZGlzbGF2IFphcGFkbG88L3N1YmZpZWxk |
|
174
|
|
|
|
|
|
|
PgogICAgICA8L2RhdGFmaWVsZD4KICAgICAgPGRhdGFmaWVsZCB0YWc9IjI1MCIgaW5kMT0iICIg |
|
175
|
|
|
|
|
|
|
aW5kMj0iICI+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImEiPjEuIHZ5ZC48L3N1YmZpZWxkPgog |
|
176
|
|
|
|
|
|
|
ICAgICA8L2RhdGFmaWVsZD4KICAgICAgPGRhdGFmaWVsZCB0YWc9IjI2MCIgaW5kMT0iICIgaW5k |
|
177
|
|
|
|
|
|
|
Mj0iICI+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImEiPlByYWhhIDo8L3N1YmZpZWxkPgogICAg |
|
178
|
|
|
|
|
|
|
ICAgIDxzdWJmaWVsZCBjb2RlPSJiIj5TUE4sPC9zdWJmaWVsZD4KICAgICAgICA8c3ViZmllbGQg |
|
179
|
|
|
|
|
|
|
Y29kZT0iYyI+MTk4Mjwvc3ViZmllbGQ+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImUiPihQxZnD |
|
180
|
|
|
|
|
|
|
rWJyYW0gOjwvc3ViZmllbGQ+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImYiPlRaIDY2KTwvc3Vi |
|
181
|
|
|
|
|
|
|
ZmllbGQ+CiAgICAgIDwvZGF0YWZpZWxkPgogICAgICA8ZGF0YWZpZWxkIHRhZz0iMzAwIiBpbmQx |
|
182
|
|
|
|
|
|
|
PSIgIiBpbmQyPSIgIj4KICAgICAgICA8c3ViZmllbGQgY29kZT0iYSI+MTkyIHMuIDo8L3N1YmZp |
|
183
|
|
|
|
|
|
|
ZWxkPgogICAgICAgIDxzdWJmaWVsZCBjb2RlPSJiIj5zY2jDqW1hdGEgOzwvc3ViZmllbGQ+CiAg |
|
184
|
|
|
|
|
|
|
ICAgICAgPHN1YmZpZWxkIGNvZGU9ImMiPjMwIGNtPC9zdWJmaWVsZD4KICAgICAgPC9kYXRhZmll |
|
185
|
|
|
|
|
|
|
bGQ+CiAgICAgIDxkYXRhZmllbGQgdGFnPSI1MDAiIGluZDE9IiAiIGluZDI9IiAiPgogICAgICAg |
|
186
|
|
|
|
|
|
|
IDxzdWJmaWVsZCBjb2RlPSJhIj5Sb3ptbi48L3N1YmZpZWxkPgogICAgICA8L2RhdGFmaWVsZD4K |
|
187
|
|
|
|
|
|
|
ICAgICAgPGRhdGFmaWVsZCB0YWc9IjUwMCIgaW5kMT0iICIgaW5kMj0iICI+CiAgICAgICAgPHN1 |
|
188
|
|
|
|
|
|
|
YmZpZWxkIGNvZGU9ImEiPjMwMCB2w710Ljwvc3ViZmllbGQ+CiAgICAgIDwvZGF0YWZpZWxkPgog |
|
189
|
|
|
|
|
|
|
ICAgICA8ZGF0YWZpZWxkIHRhZz0iNTAwIiBpbmQxPSIgIiBpbmQyPSIgIj4KICAgICAgICA8c3Vi |
|
190
|
|
|
|
|
|
|
ZmllbGQgY29kZT0iYSI+S2FwLiA0LiBuYXBzLiBSxa/FvmVuYSBEdWRvdsOhLCBrYXAuIDguIGpl |
|
191
|
|
|
|
|
|
|
IHNlc3QuIHogcMWZw61zcMSbdmvFryByxa96LiBhdXRvcsWvPC9zdWJmaWVsZD4KICAgICAgPC9k |
|
192
|
|
|
|
|
|
|
YXRhZmllbGQ+CiAgICAgIDxkYXRhZmllbGQgdGFnPSI1NTAiIGluZDE9IiAiIGluZDI9IiAiPgog |
|
193
|
|
|
|
|
|
|
ICAgICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5WeWRhdmF0ZWw6IFbFoEUgdiBQcmF6ZTwvc3ViZmll |
|
194
|
|
|
|
|
|
|
bGQ+CiAgICAgIDwvZGF0YWZpZWxkPgogICAgICA8ZGF0YWZpZWxkIHRhZz0iNjU1IiBpbmQxPSIg |
|
195
|
|
|
|
|
|
|
IiBpbmQyPSI3Ij4KICAgICAgICA8c3ViZmllbGQgY29kZT0iYSI+dcSNZWJuaWNlIHZ5c29rw71j |
|
196
|
|
|
|
|
|
|
aCDFoWtvbDwvc3ViZmllbGQ+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9IjciPmZkMTMzNzcyPC9z |
|
197
|
|
|
|
|
|
|
dWJmaWVsZD4KICAgICAgICA8c3ViZmllbGQgY29kZT0iMiI+Y3plbmFzPC9zdWJmaWVsZD4KICAg |
|
198
|
|
|
|
|
|
|
ICAgPC9kYXRhZmllbGQ+CiAgICAgIDxkYXRhZmllbGQgdGFnPSI3MDAiIGluZDE9IjEiIGluZDI9 |
|
199
|
|
|
|
|
|
|
IiAiPgogICAgICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5aYXBhZGxvLCBMYWRpc2xhdjwvc3ViZmll |
|
200
|
|
|
|
|
|
|
bGQ+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9IjQiPmF1dDwvc3ViZmllbGQ+CiAgICAgIDwvZGF0 |
|
201
|
|
|
|
|
|
|
YWZpZWxkPgogICAgICA8ZGF0YWZpZWxkIHRhZz0iNzEwIiBpbmQxPSIyIiBpbmQyPSIgIj4KICAg |
|
202
|
|
|
|
|
|
|
ICAgICA8c3ViZmllbGQgY29kZT0iYSI+Vnlzb2vDoSDFoWtvbGEgZWtvbm9taWNrw6EgdiBQcmF6 |
|
203
|
|
|
|
|
|
|
ZTwvc3ViZmllbGQ+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9IjciPmtuMjAwMTA3MDk0MDM8L3N1 |
|
204
|
|
|
|
|
|
|
YmZpZWxkPgogICAgICA8L2RhdGFmaWVsZD4KICAgICAgPGRhdGFmaWVsZCB0YWc9Ijk5OCIgaW5k |
|
205
|
|
|
|
|
|
|
MT0iICIgaW5kMj0iICI+CiAgICAgICAgPHN1YmZpZWxkIGNvZGU9ImEiPmh0dHA6Ly9hbGVwaC5u |
|
206
|
|
|
|
|
|
|
a3AuY3ovRi8/ZnVuYz1kaXJlY3QmYW1wO2RvY19udW1iZXI9MDAwMDAwMDk2JmFtcDtsb2NhbF9i |
|
207
|
|
|
|
|
|
|
YXNlPUNOQjwvc3ViZmllbGQ+CiAgICAgIDwvZGF0YWZpZWxkPgogICAgPC9yZWNvcmQ+Cgo8cmVj |
|
208
|
|
|
|
|
|
|
b3JkIHhtbG5zPSJodHRwOi8vd3d3LmxvYy5nb3YvTUFSQzIxL3NsaW0iCnhtbG5zOnhzaT0iaHR0 |
|
209
|
|
|
|
|
|
|
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCnhzaTpzY2hlbWFMb2NhdGlv |
|
210
|
|
|
|
|
|
|
bj0iaHR0cDovL3d3dy5sb2MuZ292L01BUkMyMS9zbGltCmh0dHA6Ly93d3cubG9jLmdvdi9zdGFu |
|
211
|
|
|
|
|
|
|
ZGFyZHMvbWFyY3htbC9zY2hlbWEvTUFSQzIxc2xpbS54c2QiPgogIDxsZWFkZXI+ICAgICBuYW0g |
|
212
|
|
|
|
|
|
|
YTIyICAgICAgICA0NTAwPC9sZWFkZXI+CiAgPGNvbnRyb2xmaWVsZCB0YWc9IjAwMSI+Y2s4MzAw |
|
213
|
|
|
|
|
|
|
MDgwPC9jb250cm9sZmllbGQ+CiAgPGNvbnRyb2xmaWVsZCB0YWc9IjAwMyI+Q1ogUHJOSzwvY29u |
|
214
|
|
|
|
|
|
|
dHJvbGZpZWxkPgogIDxjb250cm9sZmllbGQgdGFnPSIwMDUiPjIwMDUwNTE3MDk0MjEyLjA8L2Nv |
|
215
|
|
|
|
|
|
|
bnRyb2xmaWVsZD4KICA8Y29udHJvbGZpZWxkIHRhZz0iMDA3Ij50dTwvY29udHJvbGZpZWxkPgog |
|
216
|
|
|
|
|
|
|
IDxjb250cm9sZmllbGQgdGFnPSIwMDgiPjgzMDMxNnMxOTgzICAgIHhyICAgICAgICAgICB1MHww |
|
217
|
|
|
|
|
|
|
ICAgY3plPC9jb250cm9sZmllbGQ+CiAgPGRhdGFmaWVsZCB0YWc9IjAxNSIgaW5kMT0iICIgaW5k |
|
218
|
|
|
|
|
|
|
Mj0iICI+CiAgICA8c3ViZmllbGQgY29kZT0iYSI+Y25iMDAwMDAwMDk4PC9zdWJmaWVsZD4KICA8 |
|
219
|
|
|
|
|
|
|
L2RhdGFmaWVsZD4KICA8ZGF0YWZpZWxkIHRhZz0iMDIwIiBpbmQxPSIgIiBpbmQyPSIgIj4KICAg |
|
220
|
|
|
|
|
|
|
IDxzdWJmaWVsZCBjb2RlPSJxIj4oQnJvxb4uKSA6PC9zdWJmaWVsZD4KICAgIDxzdWJmaWVsZCBj |
|
221
|
|
|
|
|
|
|
b2RlPSJjIj4zMCBLxI1zPC9zdWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KICA8ZGF0YWZpZWxkIHRh |
|
222
|
|
|
|
|
|
|
Zz0iMDM1IiBpbmQxPSIgIiBpbmQyPSIgIj4KICAgIDxzdWJmaWVsZCBjb2RlPSJhIj4oT0NvTEMp |
|
223
|
|
|
|
|
|
|
Mzk1NjA2ODg8L3N1YmZpZWxkPgogIDwvZGF0YWZpZWxkPgogIDxkYXRhZmllbGQgdGFnPSIwNDAi |
|
224
|
|
|
|
|
|
|
IGluZDE9IiAiIGluZDI9IiAiPgogICAgPHN1YmZpZWxkIGNvZGU9ImEiPkFCQTAwMTwvc3ViZmll |
|
225
|
|
|
|
|
|
|
bGQ+CiAgICA8c3ViZmllbGQgY29kZT0iYiI+Y3plPC9zdWJmaWVsZD4KICAgIDxzdWJmaWVsZCBj |
|
226
|
|
|
|
|
|
|
b2RlPSJkIj5BQkEwMDE8L3N1YmZpZWxkPgogIDwvZGF0YWZpZWxkPgogIDxkYXRhZmllbGQgdGFn |
|
227
|
|
|
|
|
|
|
PSIwODAiIGluZDE9IiAiIGluZDI9IiAiPgogICAgPHN1YmZpZWxkIGNvZGU9ImEiPjMzOS45MjM8 |
|
228
|
|
|
|
|
|
|
L3N1YmZpZWxkPgogICAgPHN1YmZpZWxkIGNvZGU9IjIiPnVuZGVmPC9zdWJmaWVsZD4KICA8L2Rh |
|
229
|
|
|
|
|
|
|
dGFmaWVsZD4KICA8ZGF0YWZpZWxkIHRhZz0iMDgwIiBpbmQxPSIgIiBpbmQyPSIgIj4KICAgIDxz |
|
230
|
|
|
|
|
|
|
dWJmaWVsZCBjb2RlPSJhIj4zMzguNDU8L3N1YmZpZWxkPgogICAgPHN1YmZpZWxkIGNvZGU9IjIi |
|
231
|
|
|
|
|
|
|
PnVuZGVmPC9zdWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KICA8ZGF0YWZpZWxkIHRhZz0iMTAwIiBp |
|
232
|
|
|
|
|
|
|
bmQxPSIxIiBpbmQyPSIgIj4KICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5WbGFkeWthLCBKb3NlZjwv |
|
233
|
|
|
|
|
|
|
c3ViZmllbGQ+CiAgICA8c3ViZmllbGQgY29kZT0iNyI+angyMDA1MDYyODAzNjwvc3ViZmllbGQ+ |
|
234
|
|
|
|
|
|
|
CiAgICA8c3ViZmllbGQgY29kZT0iNCI+YXV0PC9zdWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KICA8 |
|
235
|
|
|
|
|
|
|
ZGF0YWZpZWxkIHRhZz0iMjQ1IiBpbmQxPSIxIiBpbmQyPSIwIj4KICAgIDxzdWJmaWVsZCBjb2Rl |
|
236
|
|
|
|
|
|
|
PSJhIj5Ww712b2ogYSBwbMOhbnkgcm96dm9qZSBwcsWvbXlzbHUgZXZyb3Bza8O9Y2ggemVtw60g |
|
237
|
|
|
|
|
|
|
UlZIUCAxOTc2LTE5ODUgLzwvc3ViZmllbGQ+CiAgICA8c3ViZmllbGQgY29kZT0iYyI+dnlwcmFj |
|
238
|
|
|
|
|
|
|
LiBKb3NlZiBWbGFkeWthPC9zdWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KICA8ZGF0YWZpZWxkIHRh |
|
239
|
|
|
|
|
|
|
Zz0iMjYwIiBpbmQxPSIgIiBpbmQyPSIgIj4KICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5QcmFoYSA6 |
|
240
|
|
|
|
|
|
|
PC9zdWJmaWVsZD4KICAgIDxzdWJmaWVsZCBjb2RlPSJiIj7DmlZURUksPC9zdWJmaWVsZD4KICAg |
|
241
|
|
|
|
|
|
|
IDxzdWJmaWVsZCBjb2RlPSJjIj4xOTgzPC9zdWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KICA8ZGF0 |
|
242
|
|
|
|
|
|
|
YWZpZWxkIHRhZz0iMzAwIiBpbmQxPSIgIiBpbmQyPSIgIj4KICAgIDxzdWJmaWVsZCBjb2RlPSJh |
|
243
|
|
|
|
|
|
|
Ij41NSBzLiA6PC9zdWJmaWVsZD4KICAgIDxzdWJmaWVsZCBjb2RlPSJiIj50Yi4gOzwvc3ViZmll |
|
244
|
|
|
|
|
|
|
bGQ+CiAgICA8c3ViZmllbGQgY29kZT0iYyI+MzAgY208L3N1YmZpZWxkPgogIDwvZGF0YWZpZWxk |
|
245
|
|
|
|
|
|
|
PgogIDxkYXRhZmllbGQgdGFnPSI0OTAiIGluZDE9IjEiIGluZDI9IiAiPgogICAgPHN1YmZpZWxk |
|
246
|
|
|
|
|
|
|
IGNvZGU9ImEiPlB1Ymxpa2FjZSBTSVZPIDs8L3N1YmZpZWxkPgogICAgPHN1YmZpZWxkIGNvZGU9 |
|
247
|
|
|
|
|
|
|
InYiPjE4OTQ8L3N1YmZpZWxkPgogIDwvZGF0YWZpZWxkPgogIDxkYXRhZmllbGQgdGFnPSI1MDAi |
|
248
|
|
|
|
|
|
|
IGluZDE9IiAiIGluZDI9IiAiPgogICAgPHN1YmZpZWxkIGNvZGU9ImEiPlDFmWVobC4gbGl0PC9z |
|
249
|
|
|
|
|
|
|
dWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KICA8ZGF0YWZpZWxkIHRhZz0iNTAwIiBpbmQxPSIgIiBp |
|
250
|
|
|
|
|
|
|
bmQyPSIgIj4KICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5Sb3ptbi48L3N1YmZpZWxkPgogIDwvZGF0 |
|
251
|
|
|
|
|
|
|
YWZpZWxkPgogIDxkYXRhZmllbGQgdGFnPSI1MDAiIGluZDE9IiAiIGluZDI9IiAiPgogICAgPHN1 |
|
252
|
|
|
|
|
|
|
YmZpZWxkIGNvZGU9ImEiPlBvem4uPC9zdWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KICA8ZGF0YWZp |
|
253
|
|
|
|
|
|
|
ZWxkIHRhZz0iODMwIiBpbmQxPSIgIiBpbmQyPSIwIj4KICAgIDxzdWJmaWVsZCBjb2RlPSJhIj5Q |
|
254
|
|
|
|
|
|
|
dWJsaWthY2UgU0lWTzwvc3ViZmllbGQ+CiAgPC9kYXRhZmllbGQ+CiAgPGRhdGFmaWVsZCB0YWc9 |
|
255
|
|
|
|
|
|
|
Ijk5OCIgaW5kMT0iICIgaW5kMj0iICI+CiAgICA8c3ViZmllbGQgY29kZT0iYSI+aHR0cDovL2Fs |
|
256
|
|
|
|
|
|
|
ZXBoLm5rcC5jei9GLz9mdW5jPWRpcmVjdCZhbXA7ZG9jX251bWJlcj0wMDAwMDAwOTgmYW1wO2xv |
|
257
|
|
|
|
|
|
|
Y2FsX2Jhc2U9Q05CPC9zdWJmaWVsZD4KICA8L2RhdGFmaWVsZD4KPC9yZWNvcmQ+Cgo8L2NvbGxl |
|
258
|
|
|
|
|
|
|
Y3Rpb24+Cg== |
|
259
|
|
|
|
|
|
|
END |
|
260
|
|
|
|
|
|
|
|
|
261
|
|
|
|
|
|
|
my ($temp_file, $temp_file_fh) = tempfile(); |
|
262
|
|
|
|
|
|
|
|
|
263
|
|
|
|
|
|
|
barf($temp_file_fh, decode_base64($marc_xml_example)); |
|
264
|
|
|
|
|
|
|
|
|
265
|
|
|
|
|
|
|
my $marc_file = MARC::File::XML->in($temp_file); |
|
266
|
|
|
|
|
|
|
my $marc_record = $marc_file->next; |
|
267
|
|
|
|
|
|
|
|
|
268
|
|
|
|
|
|
|
my $obj = MARC::Validator::Filter::Plugin::Foo->new; |
|
269
|
|
|
|
|
|
|
|
|
270
|
|
|
|
|
|
|
my $name = $obj->name; |
|
271
|
|
|
|
|
|
|
print "Name: $name\n"; |
|
272
|
|
|
|
|
|
|
|
|
273
|
|
|
|
|
|
|
my $filter_string = $obj->process($marc_record); |
|
274
|
|
|
|
|
|
|
print "Filter string: "; |
|
275
|
|
|
|
|
|
|
if (defined $filter_string) { |
|
276
|
|
|
|
|
|
|
print $filter_string."\n"; |
|
277
|
|
|
|
|
|
|
} else { |
|
278
|
|
|
|
|
|
|
print "-\n"; |
|
279
|
|
|
|
|
|
|
} |
|
280
|
|
|
|
|
|
|
|
|
281
|
|
|
|
|
|
|
unlink $temp_file; |
|
282
|
|
|
|
|
|
|
|
|
283
|
|
|
|
|
|
|
# Output: |
|
284
|
|
|
|
|
|
|
# Name: foo |
|
285
|
|
|
|
|
|
|
# Filter string: ABA001 |
|
286
|
|
|
|
|
|
|
|
|
287
|
|
|
|
|
|
|
=head1 DEPENDENCIES |
|
288
|
|
|
|
|
|
|
|
|
289
|
|
|
|
|
|
|
L<Class::Utils>, |
|
290
|
|
|
|
|
|
|
L<Error::Pure>. |
|
291
|
|
|
|
|
|
|
|
|
292
|
|
|
|
|
|
|
=head1 REPOSITORY |
|
293
|
|
|
|
|
|
|
|
|
294
|
|
|
|
|
|
|
L<https://github.com/michal-josef-spacek/MARC-Validator-Filter> |
|
295
|
|
|
|
|
|
|
|
|
296
|
|
|
|
|
|
|
=head1 AUTHOR |
|
297
|
|
|
|
|
|
|
|
|
298
|
|
|
|
|
|
|
Michal Josef Špaček L<mailto:skim@cpan.org> |
|
299
|
|
|
|
|
|
|
|
|
300
|
|
|
|
|
|
|
L<http://skim.cz> |
|
301
|
|
|
|
|
|
|
|
|
302
|
|
|
|
|
|
|
=head1 LICENSE AND COPYRIGHT |
|
303
|
|
|
|
|
|
|
|
|
304
|
|
|
|
|
|
|
© 2025-2026 Michal Josef Špaček |
|
305
|
|
|
|
|
|
|
|
|
306
|
|
|
|
|
|
|
BSD 2-Clause License |
|
307
|
|
|
|
|
|
|
|
|
308
|
|
|
|
|
|
|
=head1 ACKNOWLEDGEMENTS |
|
309
|
|
|
|
|
|
|
|
|
310
|
|
|
|
|
|
|
Development of this software has been made possible by institutional support |
|
311
|
|
|
|
|
|
|
for the long-term strategic development of the National Library of the Czech |
|
312
|
|
|
|
|
|
|
Republic as a research organization provided by the Ministry of Culture of |
|
313
|
|
|
|
|
|
|
the Czech Republic (DKRVO 2024–2028), Area 11: Linked Open Data. |
|
314
|
|
|
|
|
|
|
|
|
315
|
|
|
|
|
|
|
=head1 VERSION |
|
316
|
|
|
|
|
|
|
|
|
317
|
|
|
|
|
|
|
0.01 |
|
318
|
|
|
|
|
|
|
|
|
319
|
|
|
|
|
|
|
=cut |