Codebase list libconfig-properties-perl-upstream / 5624486
import Config-Properties 0.57 from CPAN git-cpan-module: Config-Properties git-cpan-version: 0.57 git-cpan-authorid: SALVA git-cpan-file: authors/id/S/SA/SALVA/Config-Properties-0.57.tar.gz Salvador Fandino Garcia authored 19 years ago Michael G. Schwern committed 14 years ago
5 changed file(s) with 55 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
00 Revision history for Perl extension Config::Properties.
1
2 0.57 May 07 2004
3 - retain properties read/construction order when saving
14
25 0.56 Oct 20 2003
36 - corrected \uXXXX unescaping (Guntis)
77 t/3_valid.t
88 t/4_invalid.t
99 t/5_save.t
10 t/6_sorted.t
1011 META.yml Module meta-data (added by MakeMaker)
00 # http://module-build.sourceforge.net/META-spec.html
11 #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
22 name: Config-Properties
3 version: 0.56
3 version: 0.57
44 version_from: Properties.pm
55 installdirs: site
66 requires:
22 use strict;
33 use warnings;
44
5 our $VERSION = '0.56';
5 our $VERSION = '0.57';
66
77 use IO::Handle;
88 use Carp;
5757 and carp "creating new Config::Properties objects from prototypes is deprecated";
5858
5959 my $class = ref($proto) || $proto;
60 my $self = { 'PERL_MODE' => $perlMode ? 1 : 0,
61 'defaults' => $defaultProperties,
62 'format' => '%s=%s',
63 'properties' => {} };
60 my $self = { PERL_MODE => $perlMode ? 1 : 0,
61 defaults => $defaultProperties,
62 format => '%s=%s',
63 properties => {},
64 sorter => 1,
65 sorted_keys => {} };
6466 bless $self, $class;
6567
6668 return $self;
8486 my ($self, $key, $recurse) = @_;
8587 _t_key $key;
8688
87 delete $self->{properties}{$key}
88 if exists $self->{properties}{$key};
89 if (exists $self->{properties}{$key}) {
90 delete $self->{properties}{$key};
91 delete $self->{sorted_keys}{$key};
92 }
8993
9094 $self->{defaults}->deleteProperty($key, 1)
9195 if ($recurse and $self->{defaults});
100104 defined(wantarray) and
101105 carp "warning: setProperty doesn't return the old value anymore";
102106
107 $self->{sorted_keys}{$key} ||= $self->{sorter}++;
103108 $self->{properties}{$key} = $value;
104109 }
105110
238243
239244 unescape $key;
240245 unescape $value;
246 $self->{sorted_keys}{$key} = $self->{sorter}++;
241247 $self->{properties}{$key} =
242248 $self->validate($key, $value);
243249
286292 local($Text::Wrap::huge)='overflow';
287293 local($Text::Wrap::break)=qr/(?<!\\) (?! )/;
288294
289 foreach (sort keys %{$self->{properties}}) {
295 my $sk=$self->{sorted_keys};
296 foreach (sort { $sk->{$a} <=> $sk->{$b} } keys %{$self->{properties}}) {
290297 my $key=$_;
291298 my $value=$self->{properties}{$key};
292299 escape_key $key;
0 use Test::More tests => 1;
1
2 use Config::Properties;
3 use File::Temp qw(tempfile);
4
5 my $cfg=Config::Properties->new();
6 $cfg->load(\*DATA);
7
8 my ($fh, $fn)=tempfile()
9 or die "unable to create temporal file to save properties";
10
11 $cfg->deleteProperty('dos');
12 $cfg->setProperty('cinco', '5');
13 $cfg->setProperty('tres', '6!');
14
15 $cfg->store($fh, "test header");
16 close $fh;
17 open CFG, '<', $fn
18 or die "unable to open tempory file $fn";
19
20 undef $/;
21 $contents=<CFG>;
22
23 # print STDERR "$fn\n$contents\n";
24
25 ok($contents=~/uno.*tres.*cuatro.*cinco/s,
26 "order preserved")
27
28 __DATA__
29
30 uno = 1u
31 dos = 2u
32 tres = 3u
33 cuatro = 4u
34