1.32 - *argl* ... I forgot Interpolated.pm, don't know how that

could happen, in 1.29 it was "lost". However - 
	   I added it again now.
	 - added patch by Peder Stray <peder@linpro.no> to
	   the _store() method, which makes it possible to catch
	   arrays of hashes to be stored correctly.
	 - cleaned up the t/run.t testscript to reflect the
	   changes (in fact I did not touch it since 1.18 or so).
	 - added test number 16 to test variable interpolation
	   using ::Interpolated in t/run.t.
	 - fixed bug with new() parameter -AllowMultiOptions which
	   generated a croak() if set to something other than "no".
	 - changed Extended::save() to reflect the API change,
	   it calls now save_file(). 


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@21 be1acefe-a474-0410-9a34-9b3221f2030f
This commit is contained in:
Thomas von Dein
2009-10-10 16:17:24 +00:00
parent f860be0f71
commit f9c0a5a8f3
7 changed files with 94 additions and 23 deletions

15
t/cfg.16 Normal file
View File

@@ -0,0 +1,15 @@
# variable interpolation test
<vars>
base = /usr
uid = 501
</vars>
<etc>
dir = $base/conf # $base should not be interpolated
base = /usr/local # set $base to a new value in this scope
log = ${base}/log/logfile # use braces
<users>
home = $base/home/max # $base should be interpolated
</users>
</etc>

View File

@@ -25,3 +25,11 @@ passwd = sakkra
<db>
host = blah.blubber
</db>
<beta>
user1 hans
</beta>
<beta>
user2 max
</beta>

41
t/run.t
View File

@@ -6,13 +6,17 @@
#
# Under normal circumstances every test should succeed.
BEGIN { $| = 1; print "1..15\n";}
BEGIN { $| = 1; print "1..16\n";}
use lib "blib/lib";
use Config::General;
use Config::General::Extended;
use Config::General::Interpolated;
use Data::Dumper;
print "ok\n";
print STDERR "\n1 .. ok # loading Config::General and Config::General::Extended\n";
print STDERR " .. ok # loading:
Config::General
Config::General::Extended
Config::General::Interpolated\n";
foreach (2..7) {
&p("t/cfg." . $_, $_);
@@ -32,7 +36,7 @@ my $b = \%copyhash;
# one we got from cfg.8
if (&comp($a,$b)) {
print "ok\n";
print STDERR "8 .. ok # Writing Config Hash to disk and compare with original\n";
print STDERR " .. ok # Writing Config Hash to disk and compare with original\n";
}
else {
print "8 not ok\n";
@@ -44,7 +48,7 @@ else {
$conf = new Config::General::Extended("t/test.rc");
print "ok\n";
print STDERR "9 .. ok # Creating a new object from config file\n";
print STDERR " .. ok # Creating a new object from config file\n";
@@ -55,28 +59,28 @@ my $conf2 = new Config::General::Extended(
-AllowMultiOptions => "yes"
);
print "ok\n";
print STDERR "10 .. ok # Creating a new object using the hash parameter way\n";
print STDERR " .. ok # Creating a new object using the hash parameter way\n";
my $domain = $conf->obj("domain");
print "ok\n";
print STDERR "11 .. ok # Creating a new object from a block\n";
print STDERR " .. ok # Creating a new object from a block\n";
my $addr = $domain->obj("bar.de");
print "ok\n";
print STDERR "12 .. ok # Creating a new object from a sub block\n";
print STDERR " .. ok # Creating a new object from a sub block\n";
my @keys = $conf->keys("domain");
print "ok\n";
print STDERR "13 .. ok # Getting values from the object\n";
print STDERR " .. ok # Getting values from the object\n";
@@ -93,7 +97,7 @@ if ($conf->is_hash("domain")) {
}
}
print "ok\n";
print STDERR "14 .. ok # Using keys() and values() \n";
print STDERR " .. ok # Using keys() and values() \n";
# test AUTOLOAD methods
my $conf3 = new Config::General::Extended( { name => "Moser", prename => "Hannes"}
@@ -105,11 +109,26 @@ $conf3->prename("Max");
$conf3->save("t/test.cfg");
print "ok\n";
print STDERR "15 .. ok # Using AUTOLOAD methods\n";
print STDERR " .. ok # Using AUTOLOAD methods\n";
# testing variable interpolation
my $conf16 = new Config::General::Interpolated("t/cfg.16");
my %h16 = $conf16->getall();
if($h16{etc}->{log} eq "/usr/local/log/logfile") {
print "ok\n";
print STDERR " .. ok # Testing variable interpolation\n";
}
else {
print "16 not ok\n";
print STDERR "16 not ok\n";
}
sub p {
my($cfg, $t) = @_;
open T, "<$cfg";
@@ -120,7 +139,7 @@ sub p {
my $conf = new Config::General($cfg);
my %hash = $conf->getall;
print "ok\n";
print STDERR "$t .. ok $fst\n";
print STDERR " .. ok $fst\n";
}
sub comp {