[SCM] librdf-ns-perl Debian packaging branch, master, updated. debian/20130208-1-22-g47de138
Jakob Voss
voss at gbv.de
Fri Apr 19 13:28:40 UTC 2013
The following commit has been merged in the master branch:
commit 51c4be27638d93f5c309ca3c26645f2cef4b7d39
Author: Jakob Voss <voss at gbv.de>
Date: Wed Nov 2 15:48:11 2011 +0100
fixed empty-prefix (edge case)
diff --git a/lib/RDF/NS.pm b/lib/RDF/NS.pm
index 99500ea..e34183c 100644
--- a/lib/RDF/NS.pm
+++ b/lib/RDF/NS.pm
@@ -5,6 +5,7 @@ package RDF::NS;
use Scalar::Util qw(blessed);
use File::ShareDir;
+use 5.10.0;
our $AUTOLOAD;
@@ -84,8 +85,9 @@ sub GET {
sub URI {
my $self = shift;
- return unless shift =~ /^([a-z][a-z0-9]+)([:_]([^:]+))?$/;
- my $ns = $self->{$1} or return;
+ return unless shift =~ /^([a-z][a-z0-9]+)?([:_]([^:]+))?$/;
+ my $ns = $self->{$1 // ''};
+ return unless defined $ns;
return $self->GET($ns) unless $3;
return $self->GET($ns.$3);
}
@@ -94,7 +96,7 @@ sub AUTOLOAD {
my $self = shift;
return unless $AUTOLOAD =~ /:([a-z][a-z0-9]+)(_([^:]+))?$/;
my $ns = $self->{$1} or return;
- my $local = defined $3 ? $3 : shift;
+ my $local = $3 // shift;
return $self->GET($ns) unless defined $local;
return $self->GET($ns.$local);
}
diff --git a/t/namespaces.t b/t/namespaces.t
index 42ad3bc..497ddca 100644
--- a/t/namespaces.t
+++ b/t/namespaces.t
@@ -24,8 +24,8 @@ is( $ns->URI("rdf_type"), $rdf.'type', '$ns->URI("rdf_type")' );
is( $ns->SPARQL('rdf'), "PREFIX rdf: <$rdf>", 'SPARQL("rdf")' );
is( $ns->TTL('rdfs'), "\@prefix rdfs: <$rdfs> .", 'TTL("rdfs")' );
# order is relevant
-is( $ns->XMLNS('rdfs,rdf'), "xmlns:rdfs=\"$rdfs\"" );
-is( $ns->XMLNS('rdf,rdfs'), "xmlns:rdf=\"$rdf\"" );
+is( $ns->XMLNS('rdfs,rdf'), "xmlns:rdfs=\"$rdfs\"", 'order ok' );
+is( $ns->XMLNS('rdf,rdfs'), "xmlns:rdf=\"$rdf\"", 'order ok' );
my $sparql = ["PREFIX rdf: <$rdf>","PREFIX rdfs: <$rdfs>"];
my $turtle = ["\@prefix rdf: <$rdf> .","\@prefix rdfs: <$rdfs> ."];
@@ -48,4 +48,8 @@ is_deeply( \%s, { rdfs => $rdfs, rdf => $rdf }, 'SELECT (list)' );
my $first = $ns->SELECT('xxxxx,,rdf');
is( $first, $rdf, 'SELECT (scalar)' );
+# edge case
+$ns->{''} = "http://example.org/";
+is( $ns->URI(":foo"), "http://example.org/foo", "empty prefix allowed" );
+
done_testing;
--
librdf-ns-perl Debian packaging
More information about the Pkg-perl-cvs-commits
mailing list