9 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
10 |
use File::Slurp; |
use File::Slurp; |
11 |
|
|
12 |
use base qw/WebPAC::Common WebPAC::Normalize/; |
use base qw/WebPAC::Common/; |
13 |
|
|
14 |
=head1 NAME |
=head1 NAME |
15 |
|
|
113 |
return $self->{depends}->{ _q($database) }->{ _q($input) }; |
return $self->{depends}->{ _q($database) }->{ _q($input) }; |
114 |
} |
} |
115 |
|
|
116 |
|
=head2 have_lookup_create |
117 |
|
|
118 |
|
my @keys = $parser->have_lookup_create($database, $input); |
119 |
|
|
120 |
|
=cut |
121 |
|
|
122 |
|
sub have_lookup_create { |
123 |
|
my $self = shift; |
124 |
|
my ($database,$input) = @_; |
125 |
|
$input = _input_name($input); |
126 |
|
return unless ( |
127 |
|
defined( $self->{_lookup_create_key}->{ _q($database) } ) && |
128 |
|
defined( $self->{_lookup_create_key}->{ _q($database) }->{ _q($input) } ) |
129 |
|
); |
130 |
|
return keys %{ $self->{_lookup_create_key}->{ _q($database) }->{ _q($input) } }; |
131 |
|
} |
132 |
|
|
133 |
|
|
134 |
=head2 lookup_create_rules |
=head2 lookup_create_rules |
135 |
|
|
136 |
my $source = $parser->lookup_create_rules($database, $input); |
my $source = $parser->lookup_create_rules($database, $input); |
296 |
|
|
297 |
$log->debug("key = $key"); |
$log->debug("key = $key"); |
298 |
|
|
299 |
my $create = ' |
my $create = "save_into_lookup('$key', $e[7] $e[8] );\n"; |
|
$coderef = ' . $e[7] . $e[8] . '; |
|
|
foreach my $v ($coderef->()) { |
|
|
next unless (defined($v) && $v ne \'\'); |
|
|
push @{ $lookup->{\'' . $key . '\'}->{$v} }, $mfn; |
|
|
} |
|
|
'; |
|
300 |
|
|
301 |
$log->debug("create: $create"); |
$log->debug("create: $create"); |
302 |
|
|
304 |
return $self->_lookup_error("invalid input $e[5] of database $e[3] in $path", ) unless $self->valid_database_input( $e[3], $e[5] ); |
return $self->_lookup_error("invalid input $e[5] of database $e[3] in $path", ) unless $self->valid_database_input( $e[3], $e[5] ); |
305 |
|
|
306 |
# save code to create this lookup |
# save code to create this lookup |
307 |
$self->{_lookup_create}->{ _q($e[3]) }->{ _q($e[5]) }->{ _q($key) } .= "# lookup for $e[3]/$e[5]/$key\n\n$create"; |
$self->{_lookup_create}->{ _q($e[3]) }->{ _q($e[5]) } .= $create; |
308 |
|
$self->{_lookup_create_key}->{ _q($e[3]) }->{ _q($e[5]) }->{ _q($key) }++; |
309 |
|
|
310 |
|
|
311 |
if (defined( $self->{depends}->{ $database }->{ $input }->{ _q($e[3]) }->{ _q($e[5]) }->{ $key } )) { |
if (defined( $self->{depends}->{ $database }->{ $input }->{ _q($e[3]) }->{ _q($e[5]) }->{ $key } )) { |