view Lib/Configuration.pm @ 104:196bf443b5e1

DOM::Schema RC0 inflators support, validation and some other things, Minor and major fixes almost for everything. A 'Source' property of the ValidationErrors generated from a NodeSet or a NodeList is subject to change in the future.
author wizard
date Tue, 11 May 2010 02:42:59 +0400
parents 16ada169ca75
children
line wrap: on
line source

package Configuration;
use strict;

my $Configured = 0;

sub import {
    my ($class,$site) = @_;
    
    if ($site and $site ne $Configured) {
        Configure($site);
        $Configured = $site;
    } elsif (not $site and not $Configured) {
        $Configured = 1;
        require Configuration::Global;
    }
}

our %virtualSite;

sub Configure {
    my $siteName = shift;
    require Configuration::Global;
    
    while ( my ($pattern,$configSite) = each %virtualSite) {
        next if not $siteName =~ $pattern;
        if (ref $configSite eq 'CODE') {
            $configSite->();
        } elsif (not ref $configSite and $configSite) {
            require $configSite;
        }
        last;
    }
}



1;