The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

package Apache2::ASP::ConfigNode::System::Settings;

use strict;
use warnings 'all';
use base 'Apache2::ASP::ConfigNode';


#==============================================================================
sub new
{
  my $class = shift;
  
  my $s = $class->SUPER::new( @_ );
  
  return $s;
}# end new()


#==============================================================================
sub AUTOLOAD
{
  my $s = shift;
  our $AUTOLOAD;
  
  my ($name) = $AUTOLOAD =~ m/([^:]+)$/;
  
  my ($val) = grep {
    $_->{name} eq $name
  } @{ $s->{setting} };
  
#  defined($val) or return;
  return $val->{value};
}# end AUTOLOAD()

1;# return true:

=pod

=head1 NAME

Apache2::ASP::ConfigNode::System::Settings - The $Config->system->settings collection

=head1 SYNOPSIS

Given an XML config file like this:

  <?xml version="1.0"?>
  <config>
    ...
    <system>
      ...
      <settings>
        ...
        <setting>
          <name>encryption_key</name>
          <value>k23j4hkj234hkj23h4kj2h34kj2h34</value>
        </setting>
        ...
      </settings>
      ...
    </system>
    ...
  </config>

You would access the data like this:

  my $encryption_key = $Config->system->settings->encryption_key;

=head1 DESCRIPTION

Settings are an eventual fact of life in any sufficiently complex web application.

This package provides read-only access to the settings you describe in your XML
config file.

=head1 BUGS

It's possible that some bugs have found their way into this release.

Use RT L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Apache2-ASP> to submit bug reports.

=head1 HOMEPAGE

Please visit the Apache2::ASP homepage at L<http://www.devstack.com/> to see examples
of Apache2::ASP in action.

=head1 AUTHOR

John Drago <jdrago_999@yahoo.com>

=head1 COPYRIGHT AND LICENSE

Copyright 2007 John Drago, All rights reserved.

This software is free software.  It may be used and distributed under the
same terms as Perl itself.

=cut