Biblio::COUNTER::Processor::Atomize3pm
Break a counter report into itsy pieces
Usage
use Biblio::COUNTER::Processor::Atomize;$processor = Biblio::COUNTER::Processor::Atomize->new;$report = $processor->run($file_or_filehandle);
Overview
Biblio::COUNTER::Processor::Atomize breaks a COUNTER report into tiny pieces (figuratively speaking) and executes a callback for each valid usage number it finds.
The callback function should look something like this:
sub my_callback {my %data = @_;$title = $data{title};$count = $data{count};$metric = $data{metric};$period = $data{period};# etc.}
The following elements may appear in the hash passed to the callback function:
code-
The short code that indicates the type of the report (e.g.,
"JR1"or"DB3").
file-
The name of the file containing the report. Set to
"-"if processing standard input.
processor-
The Biblio::COUNTER::Processor::Atomize instance.
report-
The instance of the appropriate subclass of Biblio::COUNTER::Report
period-
A string of the form YYYY-mm denoting the period in question.
metric-
The type of event counted (
"requests","sessions","searches", or"turnaways").
count-
The count itself. The callback is
notexecuted for a blank or invalid count.
platform-
The platform on which the resource was provided.
title-
The resource title.
publisher-
The resource's publisher. May be the empty string.
print_issn(journal reports only)-
The journal's print ISSN.
online_issn(journal reports only)-
The journal's online ISSN.
isbn(book reports only)-
The book's ISBN.
Public methods
new(%args)-
$foo = Biblio::COUNTER::Processor::Atomize->new;%args is a list of (key, value) pairs. The only key that means anything is
callback; the value associated with it is a reference to the desired callback function.The desired callback function prints (to standard output) a single tab-delimited line for each datum, with a header. Each line of output has the following elements, in the order listed:
code
file
platform
period
metric
count
title
publisher
print_issn(journal reports only)
online_issn(journal reports only)
isbn(book reports only)
run($file)-
$report = $processor->run($what);Process the given report.
$what may be a file handle, the name of a file, or an instance of (a subclass of) Biblio::COUNTER::Report.
Inheritance
Biblio::COUNTER::Processor::Atomize is designed to be inheritable.
Releases
Unchanged in 2 releases since Debian 12 (Bookworm).