NAME
App::CELL - Configuration, Error-handling, Localization, and Logging
VERSION
Version 0.157
SYNOPSIS
# imagine you have a script/app called 'foo' . . .
use Log::Any::Adapter ( 'File', "/var/tmp/foo.log" );
use App::CELL qw( $CELL $log $meta $site );
# load config params and messages from sitedir
my $status = $CELL->load( appname => 'foo',
sitedir => '/etc/foo' );
return $status unless $status->ok;
# write to the log
$log->notice("Configuration loaded from /etc/foo");
# get value of site configuration parameter FOO_PARAM
my $val = $site->FOO_PARAM;
# get a list of all supported languages
my @supp_lang = $CELL->supported_languages;
# determine if a language is supported
print "sk supported" if $CELL->language_supported('sk');
# get message object and text in default language
my $fmsg = $CELL->msg('FOO_INFO_MSG');
my $text = $fmsg->text;
# get message object and text in default language
# (message that takes arguments)
$fmsg = $CELL->msg('BAR_ARGS_MSG', "arg1", "arg2");
print $fmsg->text, "\n";
# get text of message in a different language
my $sk_text = $fmsg->lang('sk')->text;
DESCRIPTION
This is the top-level module of App::CELL, the Configuration, Error-handling, Localization, and Logging framework for applications (or scripts) written in Perl.
For details, see the documentation below and in App::CELL::Guide.
EXPORTS
This module provides the following exports:
$CELL
- App::CELL singleton object$log
- App::CELL::Log singleton object$meta
- App::CELL::Config singleton object$core
- App::CELL::Config singleton object$site
- App::CELL::Config singleton object
METHODS
appname
Get the appname
attribute, i.e. the name of the application or script that is using App::CELL for its configuration, error handling, etc.
enviro
Get the enviro
attribute, i.e. the name of the environment variable containing the sitedir
loaded
Get the current load status, which can be any of the following: 0 nothing loaded yet 'SHARE' sharedir loaded 'BOTH' sharedir _and_ sitedir loaded
sharedir
Get the sharedir
attribute, i.e. the full path of the site configuration directory (available only after sharedir has been successfully loaded)
sitedir
Get the sitedir
attribute, i.e. the full path of the site configuration directory (available only after sitedir has been successfully loaded)
supported_languages
Get list of supported languages. Equivalent to:
$site->CELL_SUPPORTED_LANGUAGES || [ 'en ]
language_supported
Determine if a given language is supported.
load
Attempt to load messages and configuration parameters from the sharedir and, possibly, the sitedir as well.
Takes: a PARAMHASH that should include appname
and at least one of enviro
or sitedir
(if both are given, enviro
takes precedence with sitedir
as a fallback).
Returns: an App::CELL::Status
object, which could be any of the following: OK success WARN previous call already succeeded, nothing to do ERR failure
On success, it also sets the CELL_META_START_DATETIME
meta parameter.
Status constructors
The following "factory" makes a bunch of status constructor methods (wrappers for App::CELL::Status->new )
status_crit
Constructor for 'CRIT' status objects
status_critical
Constructor for 'CRIT' status objects
status_debug
Constructor for 'DEBUG' status objects
status_emergency
Constructor for 'DEBUG' status objects
status_err
Constructor for 'ERR' status objects
status_error
Constructor for 'ERR' status objects
status_fatal
Constructor for 'FATAL' status objects
status_info
Constructor for 'INFO' status objects
status_inform
Constructor for 'INFORM' status objects
status_not_ok
Constructor for 'NOT_OK' status objects
status_notice
Constructor for 'NOTICE' status objects
status_ok
Constructor for 'OK' status objects
status_trace
Constructor for 'TRACE' status objects
status_warn
Constructor for 'WARN' status objects
status_warning
Constructor for 'WARNING' status objects
msg
Construct a message object (wrapper for App::CELL::Message::new)
COPYRIGHT AND LICENSE
App::CELL is Copyright (C) 2014, SUSE LLC
This program 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 3 of the License, or
(at your option) any later version.
This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
Author: Nathan Cutler mailto:presnypreklad@gmail.com
If the above link doesn't work for any reason, the full text of the license
can also be found in the "LICENSE" file, located in the top-level directory
of the App::CELL distro (i.e. in the same directory where this README file
is located)