[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