diff options
-rw-r--r-- | lib/AdminPanel/SettingsReader.pm | 99 | ||||
-rw-r--r-- | t/00-load.t | 5 |
2 files changed, 81 insertions, 23 deletions
diff --git a/lib/AdminPanel/SettingsReader.pm b/lib/AdminPanel/SettingsReader.pm index d93ebd57..33099bd6 100644 --- a/lib/AdminPanel/SettingsReader.pm +++ b/lib/AdminPanel/SettingsReader.pm @@ -1,24 +1,58 @@ # vim: set et ts=4 sw=4: -# Copyright 2012 Angelo Naselli -# -# This file is part of AdminPanel -# -# AdminPanel is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# AdminPanel is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with AdminPanel. If not, see <http://www.gnu.org/licenses/>. - - -#Class SettingsReader package AdminPanel::SettingsReader; +#============================================================= -*-perl-*- + +=head1 NAME + +AdminPanel::SettingsReader - This module allows to load an XML configuration file + +=head1 SYNOPSIS + + use AdminPanel::SettingsReader; + + my $settings = new AdminPanel::SettingsReader($fileName); + +=head1 DESCRIPTION + + This module allows to load a configuration file returning a Hash references with its content. + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command: + +perldoc AdminPanel::SettingsReader + +=head1 SEE ALSO + + XML::Simple + +=head1 AUTHOR + + Angelo Naselli <anaselli@linux.it> + +=head1 COPYRIGHT and LICENSE + + Copyright (C) 2012-2014, Angelo Naselli. + + This file is part of AdminPanel + + AdminPanel is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + AdminPanel is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with AdminPanel. If not, see <http://www.gnu.org/licenses/>. + +=head1 FUNCTIONS + +=cut + use strict; use warnings; @@ -26,15 +60,38 @@ use diagnostics; use XML::Simple; use Data::Dumper; +#============================================================= + +=head2 new + +=head3 INPUT + + $fileName: File to be loaded + +=head3 OUTPUT + + $settings: Hash reference containing read settings + +=head3 DESCRIPTION + + The constructor just loads the given files and return its representation + into a hash reference. + +=cut + +#============================================================= + sub new { my ($class, $fileName) = @_; - + my $self = { my $settings = 0, my $justToGetRidOfERROR = 0 }; bless $self, 'AdminPanel::SettingsReader'; - + + die "File " . $fileName . " not found" if (! -e $fileName); + my $xml = new XML::Simple (KeyAttr=>[]); $self->{settings} = $xml->XMLin($fileName); diff --git a/t/00-load.t b/t/00-load.t index 5be19d43..7b6ca138 100644 --- a/t/00-load.t +++ b/t/00-load.t @@ -4,10 +4,11 @@ use strict; use warnings FATAL => 'all'; use Test::More; -plan tests => 1; +plan tests => 2; BEGIN { - use_ok( 'AdminPanel::Shared' ) || print "Bail out!\n"; + use_ok( 'AdminPanel::Shared' ) || print "AdminPanel::Shared failed\n"; + use_ok( 'AdminPanel::SettingsReader' ) || print "AdminPanel::SettingsReader failed\n"; } diag( "Testing AdminPanel::Shared $AdminPanel::Shared::VERSION, Perl $], $^X" ); |