Name

    Class::Usul - A base class providing config, locking, logging, and l10n

Version

    Describes Class::Usul version v0.47.$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

