diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2018-07-10 14:27:07 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2018-07-10 14:27:07 +0200 |
commit | ef4bb8963e1a89da2b62274758361617f5384ce3 (patch) | |
tree | 46c7d15cdf08bfd569d7ae6b2910bf361ec37a08 | |
parent | db3dbb29a2ad58ef2f43d3f9d250e7f90aeaf278 (diff) | |
download | config-parser-ef4bb8963e1a89da2b62274758361617f5384ce3.tar.gz config-parser-ef4bb8963e1a89da2b62274758361617f5384ce3.tar.bz2 |
Switch to Config::AST
-rw-r--r-- | Makefile.PL | 3 | ||||
-rw-r--r-- | lib/Config/Parser.pm | 12 | ||||
-rw-r--r-- | lib/Config/Parser/Ini.pm | 2 | ||||
-rw-r--r-- | t/TestConfig.pm | 14 |
4 files changed, 11 insertions, 20 deletions
diff --git a/Makefile.PL b/Makefile.PL index bc0ba75..cee8413 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -16,7 +16,8 @@ WriteMakefile(NAME => 'Config::Parser', 'Class::Inspector' => 0, 'Data::Dumper' => '2.135_06', 'File::Temp' => '0.22', - 'Text::Locus' => '1.01' + 'Text::Locus' => '1.01', + 'Config::AST' => 0 }, META_MERGE => { 'meta-spec' => { version => 2 }, diff --git a/lib/Config/Parser.pm b/lib/Config/Parser.pm index 93b23fc..ee5055b 100644 --- a/lib/Config/Parser.pm +++ b/lib/Config/Parser.pm @@ -1,7 +1,7 @@ package Config::Parser; use strict; use warnings; -use parent 'Config::Tree'; +use parent 'Config::AST'; use Carp; use Cwd qw(abs_path); use Text::ParseWords; @@ -23,18 +23,18 @@ sub new { } } - unless ($_{parameters}) { + unless ($_{lexicon}) { my $subs = Class::Inspector->subclasses(__PACKAGE__); if ($subs) { - $_{parameters} = {}; + $_{lexicon} = {}; foreach my $c (@$subs) { # print "LOADING FROM $c\n"; if (my $s = loadsynt($c)) { - $_{parameters} = { %{$_{parameters}}, %$s }; + $_{lexicon} = { %{$_{lexicon}}, %$s }; } last if $c eq $class; } - delete $_{parameters} unless keys %{$_{parameters}}; + delete $_{lexicon} unless keys %{$_{lexicon}}; } } @@ -71,7 +71,7 @@ sub loadsynt { my $d = $class->new(filename => $file, fh => $fh, line => $line, - parameters => { '*' => '*' }) + lexicon => { '*' => '*' }) or croak "Failed to parse template at $file:$line"; close $fh; $d->as_hash(sub { diff --git a/lib/Config/Parser/Ini.pm b/lib/Config/Parser/Ini.pm index 3b39a16..0ea632c 100644 --- a/lib/Config/Parser/Ini.pm +++ b/lib/Config/Parser/Ini.pm @@ -62,7 +62,7 @@ sub _readconfig { } else { $include = 0; $self->add_node(\@path, - new Config::Tree::Node::Section(locus => $locus)); + new Config::AST::Node::Section(locus => $locus)); } } elsif (/([\w_-]+)\s*=\s*(.*)/) { my ($k, $v) = ($1, $2); diff --git a/t/TestConfig.pm b/t/TestConfig.pm index 886e66b..bd4f3f5 100644 --- a/t/TestConfig.pm +++ b/t/TestConfig.pm @@ -4,7 +4,7 @@ use strict; use warnings; use Carp; -use Config::Tree qw(:sort); +use Config::AST qw(:sort); use parent 'Config::Parser::Ini'; use Data::Dumper; use File::Temp; @@ -64,17 +64,7 @@ sub success { sub canonical { my $self = shift; - local %_ = @_; - carp "unknown parameters: " . join(', ', keys(%_)) if (keys(%_)); - return join $_{delim} // " ", map { - join('.', @{$_->[0]}) - . "=" - . Data::Dumper->new([$_->[1]->value]) - ->Useqq(1) - ->Terse(1) - ->Indent(0) - ->Dump - } $self->flatten(sort => SORT_PATH); + return $self->SUPER::canonical(delim => ' '); } sub expected_error { |