package RDF::Server::Semantic::RDF::Handler;
use Moose;
with 'RDF::Server::Role::Handler';
use RDF::Server::Types qw( Model );
use RDF::Server::Semantic::RDF::Types qw( RDFCodeRef );
has 'model' => (
is => 'ro',
isa => Model,
coerce => 1,
predicate => 'has_model'
);
has '+handlers' => (
isa => RDFCodeRef,
coerce => 1
);
around handles_path => sub {
my($method, $self, $prefix, $p, @rest) = @_;
my(@r) = $self -> $method( $prefix, $p, @rest );
if(@r && $r[0] eq $self) {
# print STDERR "in handles_path: p = $p; prefix = [$prefix]\n";
# print STDERR "path_prefix: ", $self -> path_prefix, "\n";
my $u = "/$p/";
my $pr = "/" . $self -> path_prefix . "/";
$u =~ s{/+}{}g;
$pr =~ s{/+}{}g;
if( $u eq $pr ) {
return($self -> model, '') if $self -> has_model;;
}
}
return @r if @r;
return;
};
1;
__END__