mirror of
https://codeberg.org/scip/Config-General.git
synced 2025-12-16 20:21:01 +01:00
- fixed rt.cpan.org#63487 documentation error.
- fixed rt.cpan.org#61302, now croak if the config file
parameter is a directory and directory include is not
turned on.
- fixed rt.cpan.org#60429 META.yml typo
- added new option -AllowSingleQuoteInterpolation, which
turns on interpolation for variables inside single quotes.
- added test case for the new option
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@91 be1acefe-a474-0410-9a34-9b3221f2030f
This commit is contained in:
15
Changelog
15
Changelog
@@ -1,3 +1,18 @@
|
||||
2.50
|
||||
- fixed rt.cpan.org#63487 documentation error.
|
||||
|
||||
- fixed rt.cpan.org#61302, now croak if the config file
|
||||
parameter is a directory and directory include is not
|
||||
turned on.
|
||||
|
||||
- fixed rt.cpan.org#60429 META.yml typo
|
||||
|
||||
- added new option -AllowSingleQuoteInterpolation, which
|
||||
turns on interpolation for variables inside single quotes.
|
||||
|
||||
- added test case for the new option
|
||||
|
||||
|
||||
2.49
|
||||
- fixed rt.cpan.org#56532, '#' missed during fix for
|
||||
56370 in 2.45.
|
||||
|
||||
17
General.pm
17
General.pm
@@ -32,7 +32,7 @@ use Carp::Heavy;
|
||||
use Carp;
|
||||
use Exporter;
|
||||
|
||||
$Config::General::VERSION = 2.49;
|
||||
$Config::General::VERSION = "2.50";
|
||||
|
||||
use vars qw(@ISA @EXPORT_OK);
|
||||
use base qw(Exporter);
|
||||
@@ -87,7 +87,8 @@ sub new {
|
||||
files => {}, # which files we have read, if any
|
||||
UTF8 => 0,
|
||||
SaveSorted => 0,
|
||||
ForceArray => 0 # force single value array if value enclosed in []
|
||||
ForceArray => 0, # force single value array if value enclosed in []
|
||||
AllowSingleQuoteInterpolation => 0
|
||||
};
|
||||
|
||||
# create the class instance
|
||||
@@ -495,6 +496,9 @@ sub _open {
|
||||
}
|
||||
}
|
||||
}
|
||||
elsif (-d $configfile) {
|
||||
croak "Config::General: config file argument is a directory, expecting a file!\n";
|
||||
}
|
||||
elsif (-e _) {
|
||||
if (exists $this->{files}->{$configfile} and not $this->{IncludeAgain}) {
|
||||
# do not read the same file twice, just return
|
||||
@@ -1742,6 +1746,11 @@ configs.
|
||||
|
||||
This implies B<-InterPolateVars>.
|
||||
|
||||
=item B<-AllowSingleQuoteInterpolation>
|
||||
|
||||
By default variables inside single quotes will not be interpolated. If
|
||||
you turn on this option, they will be interpolated as well.
|
||||
|
||||
=item B<-ExtendedAccess>
|
||||
|
||||
If set to a true value, you can use object oriented (extended) methods to
|
||||
@@ -1835,7 +1844,7 @@ you will get such an error message from the parser:
|
||||
This is caused by the fact that the config chunk below will be
|
||||
internally converted to:
|
||||
|
||||
<Directory><Directory />
|
||||
<Directory></Directory>
|
||||
Index index.awk
|
||||
</Directory>
|
||||
|
||||
@@ -2532,7 +2541,7 @@ Thomas Linden <tlinden |AT| cpan.org>
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
2.49
|
||||
2.50
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#
|
||||
|
||||
package Config::General::Interpolated;
|
||||
$Config::General::Interpolated::VERSION = "2.13";
|
||||
$Config::General::Interpolated::VERSION = "2.14";
|
||||
|
||||
use strict;
|
||||
use Carp;
|
||||
@@ -72,11 +72,14 @@ sub _interpolate {
|
||||
# which will be replaced after interpolation with the original quotes
|
||||
# fixes bug rt#35766
|
||||
my %quotes;
|
||||
$value =~ s/(\'[^\']+?\')/
|
||||
my $key = "QUOTE" . ($quote_counter++) . "QUOTE";
|
||||
$quotes{ $key } = $1;
|
||||
$key;
|
||||
/gex;
|
||||
|
||||
if(! $this->{AllowSingleQuoteInterpolation} ) {
|
||||
$value =~ s/(\'[^\']+?\')/
|
||||
my $key = "QUOTE" . ($quote_counter++) . "QUOTE";
|
||||
$quotes{ $key } = $1;
|
||||
$key;
|
||||
/gex;
|
||||
}
|
||||
|
||||
$value =~ s{$this->{regex}}{
|
||||
my $con = $1;
|
||||
@@ -347,7 +350,7 @@ See L<http://www.perl.com/perl/misc/Artistic.html>
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
2.13
|
||||
2.14
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
2
META.yml
2
META.yml
@@ -1,5 +1,5 @@
|
||||
name: Config-General
|
||||
version: 2.45
|
||||
version: 2.50
|
||||
version_from: General.pm
|
||||
installdirs: site
|
||||
requires:
|
||||
|
||||
9
t/run.t
9
t/run.t
@@ -8,7 +8,7 @@
|
||||
|
||||
|
||||
use Data::Dumper;
|
||||
use Test::More tests => 67;
|
||||
use Test::More tests => 68;
|
||||
#use Test::More qw(no_plan);
|
||||
|
||||
# ahem, we deliver the test code with a local copy of
|
||||
@@ -723,5 +723,12 @@ $cfg52 = new Config::General( -ConfigFile => "t/cfg.52.out", -ForceArray => 1);
|
||||
my %hash52new = $cfg52->getall();
|
||||
is_deeply(\%hash52new, \%hash52, "check -ForceArray single value arrays during save()");
|
||||
|
||||
my $cfg53 = new Config::General(-AllowSingleQuoteInterpolation => 1, -String => "got = 1\nhave = '\$got'", -InterPolateVars => 1 );
|
||||
my %hash53 = $cfg53->getall();
|
||||
is($hash53{have}, "'1'", "check -AllowSingleQuoteInterpolation");
|
||||
|
||||
|
||||
# Make sure no warnings were seen during the test.
|
||||
ok( !@WARNINGS_FOUND, "No unexpected warnings seen" );
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user