r978@llin: dpavlin | 2006-09-24 23:10:22 +0200
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 24 Sep 2006 21:13:40 +0000 (21:13 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 24 Sep 2006 21:13:40 +0000 (21:13 +0000)
 final touches before diving into lookup creation and usage

git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@692 07558da8-63fa-0310-ba24-9fe276d99e06

conf/log.conf
lib/WebPAC/Parser.pm
t/2-parse.t

index c3000c0..6001d78 100644 (file)
@@ -19,11 +19,11 @@ log4perl.rootLogger=INFO, LOG, SCREEN
 #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
index 6fc9c5a..0723276 100644 (file)
@@ -107,7 +107,7 @@ sub read_sources {
        return $nr;
 }
 
-=head2 parse_lookup
+=head2 parse_lookups
 
   $parser->parse_lookups($database,$input);
 
@@ -127,7 +127,7 @@ sub parse_lookups {
 
        $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});
 
@@ -136,7 +136,6 @@ sub parse_lookups {
 
        # Find all the named subroutines
 
-       my $eval_create;
        $self->{_lookup_errors} = ();
 
        sub _lookup_error {
@@ -210,7 +209,7 @@ sub parse_lookups {
                        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 );
@@ -226,19 +225,35 @@ sub parse_lookups {
                        $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');
index f38291b..129cfaf 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 use strict;
-use Test::More tests => 18;
+use Test::More tests => 20;
 use Test::Exception;
 use blib;
 
@@ -38,7 +38,7 @@ my $inputs = {
        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});
@@ -49,4 +49,9 @@ foreach my $db (qw/foo bar baz/) {
 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);