cvsuser 02/12/30 10:58:09
Modified: P5EEx/Blue/P5EEx/Blue Config.pm
P5EEx/Blue/P5EEx/Blue/Config File.pm
Log:
sync
Revision Changes Path
1.5 +18 -3 p5ee/P5EEx/Blue/P5EEx/Blue/Config.pm
Index: Config.pm
===================================================================
RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Config.pm,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -w -r1.4 -r1.5
--- Config.pm 5 Dec 2001 22:45:03 -0000 1.4
+++ Config.pm 30 Dec 2002 18:58:09 -0000 1.5
@@ -1,10 +1,10 @@
#############################################################################
-## $Id: Config.pm,v 1.4 2001/12/05 22:45:03 spadkins Exp $
+## $Id: Config.pm,v 1.5 2002/12/30 18:58:09 spadkins Exp $
#############################################################################
package P5EEx::Blue::Config;
-$VERSION = do { my @r=(q$Revision: 1.4 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
+$VERSION = do { my @r=(q$Revision: 1.5 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
use P5EEx::Blue::P5EE;
use P5EEx::Blue::Reference;
@@ -12,7 +12,22 @@
use strict;
-# there are no methods for this class yet
+sub create {
+ my $self = shift;
+
+ my ($args, $conf);
+ if ($#_ >= 0 && ref($_[0]) eq "HASH") {
+ $args = $_[0];
+ }
+ elsif ($#_ >= 0 && $#_ % 2 == 1) {
+ $args = { @_ };
+ }
+ else {
+ $args = {};
+ }
+ $conf = $args->{config} || {};
+ $conf;
+}
1;
1.10 +89 -82 p5ee/P5EEx/Blue/P5EEx/Blue/Config/File.pm
Index: File.pm
===================================================================
RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Config/File.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -w -r1.9 -r1.10
--- File.pm 16 Aug 2002 16:08:14 -0000 1.9
+++ File.pm 30 Dec 2002 18:58:09 -0000 1.10
@@ -1,10 +1,10 @@
#############################################################################
-## $Id: File.pm,v 1.9 2002/08/16 16:08:14 spadkins Exp $
+## $Id: File.pm,v 1.10 2002/12/30 18:58:09 spadkins Exp $
#############################################################################
package P5EEx::Blue::Config::File;
-$VERSION = do { my @r=(q$Revision: 1.9 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
+$VERSION = do { my @r=(q$Revision: 1.10 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
use P5EEx::Blue::P5EE;
use P5EEx::Blue::Config;
@@ -28,7 +28,7 @@
local(*FILE);
- my ($file, $testfile, $confdir, @files, $filebase, $filetype, $scriptbase,
$script);
+ my ($file, $testfile, $confdir, $conf, @files, $filebase, $filetype,
$scriptbase, $script);
my ($serializer_class, $open);
$file = $args->{configFile};
@@ -70,8 +70,14 @@
}
}
- # no file specified: (rare)
if (!$file) {
+ # if a "configFile" was not specified, but a "config" is, use it
+ # and don't even try to "autofind" a config file
+ if ($args->{config}) {
+ $conf = $args->{config};
+ }
+ else {
+ $conf = {}; # this will be overridden if a config file is found
CONFIGFILE: foreach $filetype qw(pl xml ini properties perl conf) {
foreach $filebase ($scriptbase, "config") {
$testfile = ($confdir eq ".") ? "$filebase.$filetype" :
"$confdir/$filebase.$filetype";
@@ -82,11 +88,11 @@
}
}
}
+ $args->{configFile} = $file if ($file);
+ }
}
if ($file) {
- $args->{configFile} = $file;
- }
# if a config file is specified, it must exist
if (! open(main::FILE,"< $file")) {
@@ -95,7 +101,7 @@
);
}
- my (@text, $text, $conf);
+ my (@text, $text);
@text = <main::FILE>;
close(main::FILE);
$text = join("",@text);
@@ -166,6 +172,7 @@
P5EEx::Blue::Exception::Config->throw(
error => "create(): [$file] config text doesn't match '\$var =
{...};'\n"
);
+ }
}
}