X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FRecord.pm;h=7659e4ada7e49badcad4db7459ea150c977d5d96;hb=7756fea114005961008fd69527ba5876c814ac51;hp=52e2b41ba563549dcac83c6cc3a4b13f1b3ba527;hpb=a410bdc76c7abb3f110f5bdc1342585bf1b7a3c1;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Record.pm b/lib/ZOOM/IRSpy/Record.pm index 52e2b41..7659e4a 100644 --- a/lib/ZOOM/IRSpy/Record.pm +++ b/lib/ZOOM/IRSpy/Record.pm @@ -1,6 +1,8 @@ -# $Id: Record.pm,v 1.19 2006-11-01 10:14:56 mike Exp $ +# $Id: Record.pm,v 1.24 2007-04-27 14:04:40 mike Exp $ package ZOOM::IRSpy::Record; +### I don't think there's any reason for this to be separate from +# ZOOM::IRSpy::Connection, now that the correspondence is always 1:1 use 5.008; use strict; @@ -8,7 +10,7 @@ use warnings; use XML::LibXML; use XML::LibXML::XPathContext; -use ZOOM::IRSpy::Utils qw(xml_encode); +use ZOOM::IRSpy::Utils qw(xml_encode isodate); =head1 NAME @@ -32,6 +34,7 @@ sub new { $zeerex = _empty_zeerex_record($target); } + ### Parser should be in the IRSpy object my $parser = new XML::LibXML(); return bless { irspy => $irspy, @@ -45,15 +48,16 @@ sub new { sub _empty_zeerex_record { my($target) = @_; - ### Doesn't recognise SRU/SRW URLs - my($host, $port, $db) = ZOOM::IRSpy::_parse_target_string($target); + my($protocol, $host, $port, $db) = + ZOOM::IRSpy::_parse_target_string($target); + my $xprotocol = xml_encode($protocol); my $xhost = xml_encode($host); my $xport = xml_encode($port); my $xdb = xml_encode($db); return <<__EOT__; - + $xhost $xport $xdb @@ -98,10 +102,10 @@ sub store_result { my $xml = "_string2cdata($info{$key}) . "\""; + $xml .= " $key=\"" . xml_encode($info{$key}) . "\""; } - $xml .= ">" . $this->_isodate(time()) . "\n"; + $xml .= ">" . isodate(time()) . "\n"; $this->append_entry('irspy:status', $xml); } @@ -158,27 +162,6 @@ sub _half_decent_appendWellBalancedChunk { } -# Yes, I know that this is already implemented in IRSpy.pm. I suggest that we -# introduce a toolkit package with such subroutines... -# -sub _string2cdata { - my ($this, $buffer) = @_; - $buffer =~ s/&/&/gs; - $buffer =~ s//>/gs; - $buffer =~ s/"/"/gs; - $buffer =~ s/'/'/gs; - - return $buffer; -} - - -sub _isodate { - my ($this, $time) = @_; - return ZOOM::IRSpy::Test::isodate($time); -} - - =head1 SEE ALSO ZOOM::IRSpy