aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/AdminPanel/SettingsReader.pm99
-rw-r--r--t/00-load.t5
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" );