Bivio::Type::WikiDataName
# Copyright (c) 2008-2010 bivio Software, Inc. All Rights Reserved. # $Id$ package Bivio::Type::WikiDataName; use strict; use Bivio::Base 'Type.DocletFileName'; my($_C) = __PACKAGE__->use('IO.Config'); my($_FOLDER) = $_C->if_version( 6, __PACKAGE__->WIKI_DATA_FOLDER, __PACKAGE__->WIKI_FOLDER); sub PRIVATE_FOLDER { return $_FOLDER; } sub REGEX { return qr{([^/]+\.\w+)$}; } sub SQL_LIKE_BASE { return '%.%'; } sub format_uri { my($proto, $uri, $args) = @_; #TODO: Need to handle multiple realm-types. return $args->{req}->format_uri($_C->if_version( 6 => sub { return { task_id => $args->{task_id}, query => undef, $args->{realm_name} ? (realm => $args->{realm_name}) : (), path_info => $uri, }; }, sub { return { task_id => 'FORUM_FILE', realm => $args->{realm_name}, query => undef, path_info => $_C->if_version( 6 => $uri, sub {$proto->to_absolute($uri)}, ), }, }, )); } 1;