#log4perl.logger.WebPAC.Lookup=DEBUG
#log4perl.logger.WebPAC.Lookup.lookup=DEBUG
-log4perl.logger.WebPAC.Config=DEBUG
-log4perl.logger.WebPAC::Config::new=INFO
-log4perl.logger.WebPAC::Config::iterate_inputs=INFO
+#log4perl.logger.WebPAC.Config=DEBUG
+#log4perl.logger.WebPAC::Config::new=INFO
+#log4perl.logger.WebPAC::Config::iterate_inputs=INFO
-log4perl.logger.WebPAC.Parser=DEBUG
+#log4perl.logger.WebPAC.Parser=DEBUG
#log4perl.logger.WebPAC.Validate=DEBUG
#log4perl.logger.WebPAC.Validate.report=DEBUG
return $nr;
}
-=head2 parse_lookup
+=head2 parse_lookups
$parser->parse_lookups($database,$input);
$log->logdie("no source found for database $database input $input path $path") unless ($source);
- $log->info("parsing lookups for $database/$input in $path");
+ $log->info("parsing lookups for $database/$input from $path");
my $Document = PPI::Document->new( \$source ) || $log->logdie("can't parse source:\n", $self->{source});
# Find all the named subroutines
- my $eval_create;
$self->{_lookup_errors} = ();
sub _lookup_error {
return $self->_lookup_error("invalid database $e[3] in $path" ) unless $self->valid_database( $e[3] );
return $self->_lookup_error("invalid input $e[5] of database $e[3] in $path", ) unless $self->valid_database_input( $e[3], $e[5] );
- $eval_create->{ $e[3] }->{ $e[5] } .= $create;
+ $self->add_lookup_create( $e[3], $e[5], $create );
if ($#e < 10) {
$e[8]->insert_after( $e[8]->clone );
$log->debug(">>> ", $Element->snext_sibling);
});
- $log->info("create: ", dump($eval_create) );
- $log->info("lookup: ", $Document->serialize );
+ my $source = $Document->serialize;
+ $log->debug("create: ", dump($self->{_lookup_create}) );
+ $log->debug("normalize: $source");
+
+ $self->{_normalize_source}->{$database}->{$input} = $source;
if ($self->{debug}) {
my $Dumper = PPI::Dumper->new( $Document );
$Dumper->print;
}
- $log->error("Parser errors: ", join("\n",@{ $self->{_lookup_errors} }) ) if ($self->{_lookup_errors});
+ $log->error("Parser errors:\n", join("\n",@{ $self->{_lookup_errors} }) ) if ($self->{_lookup_errors});
return 1;
}
+=head2 add_lookup_create
+
+ $parse->add_lookup_create($database,$input,$source);
+
+=cut
+
+sub add_lookup_create {
+ my $self = shift;
+ my ($database,$input,$source) = @_;
+ $self->{_lookup_create}->{$database}->{$input} .= $source;
+}
+
+
=head2 valid_database
my $ok = $parse->valid_database('key');
#!/usr/bin/perl -w
use strict;
-use Test::More tests => 18;
+use Test::More tests => 20;
use Test::Exception;
use blib;
baz => [ qw/baz-input/ ],
};
-foreach my $db (qw/foo bar baz/) {
+foreach my $db (keys %$inputs) {
ok($parser->valid_database($db), "database $db");
ok($inputs->{$db}, "has known inputs");
diag "valid inputs = ", dump($inputs->{$db});
ok(! $parser->valid_database('non-existant'), "no database");
ok(! $parser->valid_database_input('foo','non-existant'), "no database input");
+ok(my $l = $parser->{_lookup_create}, "_lookup_create");
+diag "_lookup_create = ",dump($l);
+
+ok(my $n = $parser->{_normalize_source}, "_normalize_source");
+diag "_normalize_source = ",dump($n);