=head1 VERSION
-Version 0.04
+Version 0.05
=cut
-our $VERSION = '0.04';
+our $VERSION = '0.05';
=head1 SYNOPSIS
$log->logdie("can't iterate_inputs over this config object") unless ($self->{config}->can('iterate_inputs'));
- $self->read_sources;
+ $self->_read_sources;
$self ? return $self : return undef;
}
-=head2 read_sources
+=head2 lookup_create_rules
+
+ my $source = $parser->lookup_create_rules($database, $input);
+
+=cut
+
+sub lookup_create_rules {
+ my $self = shift;
+ my ($database,$input) = @_;
+ return $self->{_lookup_create}->{ _q($database) }->{ _q($input) };
+}
+
+=head2 valid_database
+
+ my $ok = $parse->valid_database('key');
+
+=cut
+
+sub valid_database {
+ my $self = shift;
+
+ my $database = shift || return;
+
+ return defined($self->{valid_inputs}->{ _q($database) });
+}
+
+=head2 valid_database_input
+
+ my $ok = $parse->valid_database('database_key','input_name');
+
+=cut
+
+sub valid_database_input {
+ my $self = shift;
+
+ my ($database,$input) = @_;
+ return defined($self->{valid_inputs}->{ _q($database) }->{ _q($input) });
+}
+
+=head2 depends
+
+Return all databases and inputs on which specified one depends
+
+ $depends_on = $parser->depends('database','input');
+
+=cut
+
+sub depends {
+ my $self = shift;
+ my ($database,$input) = @_;
+ $self->_get_logger->debug("depends($database,$input)");
+ return unless (
+ defined( $self->{depends}->{ _q($database) } ) &&
+ defined( $self->{depends}->{ _q($database) }->{ _q($input) } )
+ );
+ return $self->{depends}->{ _q($database) }->{ _q($input) };
+}
+
+=head1 PRIVATE
+
+=head2 _read_sources
- my $source_files = $parser->read_sources;
+ my $source_files = $parser->_read_sources;
Called by L</new>.
=cut
-sub read_sources {
+sub _read_sources {
my $self = shift;
my $log = $self->_get_logger();
$self->{valid_inputs}->{$database}->{$input_name}++;
push @lookups, sub {
- $self->parse_lookups( $database, $input_name, $full, $s );
+ $self->_parse_lookups( $database, $input_name, $full, $s );
};
$nr++;
return $nr;
}
-=head2 parse_lookups
+=head2 _parse_lookups
- $parser->parse_lookups($database,$input,$path,$source);
+ $parser->_parse_lookups($database,$input,$path,$source);
-Called for each normalize source in each input by L</new>
+Called for each normalize source (rules) in each input by L</read_sources>
It will report invalid databases and inputs in error log after parsing.
=cut
-sub parse_lookups {
+sub _parse_lookups {
my $self = shift;
my ($database, $input, $path, $source) = @_;
}
-=head2 lookup_create_rules
-
- my $source = $parser->lookup_create_rules($database, $input);
-
-=cut
-
-sub lookup_create_rules {
- my $self = shift;
- my ($database,$input) = @_;
- return $self->{_lookup_create}->{ _q($database) }->{ _q($input) };
-}
-
-=head2 valid_database
-
- my $ok = $parse->valid_database('key');
-
-=cut
-
-sub valid_database {
- my $self = shift;
-
- my $database = shift || return;
-
- return defined($self->{valid_inputs}->{ _q($database) });
-}
-
-=head2 valid_database_input
-
- my $ok = $parse->valid_database('database_key','input_name');
-
-=cut
-
-sub valid_database_input {
- my $self = shift;
-
- my ($database,$input) = @_;
- return defined($self->{valid_inputs}->{ _q($database) }->{ _q($input) });
-}
-
-=head2 depends
-
-Return all databases and inputs on which specified one depends
-
- $depends_on = $parser->depends('database','input');
-
-=cut
-
-sub depends {
- my $self = shift;
- my ($database,$input) = @_;
- $self->_get_logger->debug("depends($database,$input)");
- return unless (
- defined( $self->{depends}->{ _q($database) } ) &&
- defined( $self->{depends}->{ _q($database) }->{ _q($input) } )
- );
- return $self->{depends}->{ _q($database) }->{ _q($input) };
-}
-
-=head1 PRIVATE
-
=head2 _q
Strip single or double quotes around value
my $expected_depend = {
foo => {
"foo-input1" => {
- bar => { "bar-input" => "200-a-200-e" },
- baz => { "baz-input" => "200-a" },
- foo => { "foo-input1" => 11, "foo-input2" => 11 },
+ bar => { "bar-input" => { "200-a-200-e" => 1 } },
+ baz => { "baz-input" => { "200-a" => 1 } },
+ foo => { "foo-input1" => { 11 => 1 }, "foo-input2" => { 11 => 1 } },
},
"foo-input2" => {
- bar => { "bar-input" => "900-x" },
- baz => { "baz-input" => "900-x" },
- foo => { "foo-input1" => "245-a", "foo-input2" => "245-a" },
+ bar => { "bar-input" => { "900-x" => 1 } },
+ baz => { "baz-input" => { "900-x" => 1 } },
+ foo => { "foo-input1" => { "245-a" => 1 }, "foo-input2" => { "245-a" => 1 } },
},
},
bar => {
"bar-input" => {
- baz => { "baz-input" => "900-x" },
- foo => { "foo-input1" => "245-a" },
+ baz => { "baz-input" => { "900-x" => 1 } },
+ foo => { "foo-input1" => { "245-a" => 1 } },
},
},
baz => {
"baz-input" => {
- bar => { "bar-input" => "900-x" },
- foo => { "foo-input2" => "245-a" },
+ bar => { "bar-input" => { "900-x" => 1 } },
+ foo => { "foo-input2" => { "245-a" => 1 } },
},
},
};