Name
Class::Usul - A base class providing config, locking, logging, and l10n
Version
Describes Class::Usul version v0.45.$Rev: 1 $
Synopsis
use Moo;
extends q(Class::Usul);
$self = Class::Usul->new( $attr );
Description
These modules provide a set of base classes for Perl packages and
applications that provide configuration file loading
Class::Usul::Config, locking to single thread processes IPC::SRLock,
logging Class::Usul::Log and localization Class::Usul::L10N
The class Class::Usul::Programs is a base class for command line
interfaces
Interprocess communication is handled by Class::Usul::IPC
Class::Usul::File makes the functionality of File::DataClass available
The Module::Build subclass Class::Usul::Build adds methods for the
management and deployment of applications
Configuration and Environment
Defines the following attributes;
config
The config attribute should be a hash ref that may define key/value
pairs that provide filesystem paths for the temporary directory etc.
config_class
Defaults to Class::Usul::Config and is of type LoadableClass. An
instance of this class is loaded and instantiated using the hash ref
in the config attribute. It provides accessor methods with symbol
inflation and smart defaults. Add configuration attributes by
subclassing the default
debug
Defaults to false
encoding
Decode input and encode output. Defaults to UTF-8
Defines an instance of IPC::SRLock
Defines the application context log. Defaults to a Log::Handler object
Subroutines/Methods
new_from_class
$usul_object = $self->new_from_class( $application_class ):
Returns a new instance of self starting only with an application class
name. The application class in expected to provide config and debug
class methods. The hash ref $application_class->config will be passed
as the config attribute to the constructor for this class
dumper
$self->dumper( $some_var );
Use Data::Printer to dump arguments for development purposes
_build__lock
Defines the lock object. This instantiates on first use
An IPC::SRLock object which is used to single thread the application
where required. This is a singleton object. Provides defaults for and
returns a new IPC::SRLock object. The keys of the
$self->config->lock_attributes hash are:
debug
Debug status. Defaults to $self->debug
log
Logging object. Defaults to $self->log
tempdir
Directory used to store the lock file and lock table if the fcntl
backend is used. Defaults to $self->config->tempdir
Diagnostics
Setting the debug attribute to true causes messages to be logged at the
debug level
Dependencies
Class::Usul::Constants
Class::Usul::Functions
Class::Usul::L10N
Class::Usul::Log
IPC::SRLock
Moo
Incompatibilities
There are no known incompatibilities in this module
Bugs and Limitations
There are no known bugs in this module. Please report problems to the
address below. Patches are welcome
Author
Peter Flanigan, <pjfl@cpan.org>
Acknowledgements
Larry Wall - For the Perl programming language
License and Copyright
Copyright (c) 2014 Peter Flanigan. All rights reserved
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself. See perlartistic
This program is distributed in the hope that it will be useful, but
WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE