Name

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

Version

    Describes Class::Usul version v0.84.$Rev: 1 $

Synopsis

       use Class::Usul;
       use Class::Usul::Constants qw( FALSE );
       use Class::Usul::Functions qw( find_apphome get_cfgfiles );
    
       my $attr = { config => {} }; my $conf = $attr->{config};
    
       $conf->{appclass    } or  die "Application class not specified";
       $attr->{config_class} //= $conf->{appclass}.'::Config';
       $conf->{home        }   = find_apphome $conf->{appclass};
       $conf->{cfgfiles    }   = get_cfgfiles $conf->{appclass}, $conf->{home};
    
       return Class::Usul->new( $attr );

Description

    These modules provide a set of base classes for Perl modules and
    applications. It provides configuration file loading
    Class::Usul::Config, locking to single thread processes IPC::SRLock,
    logging Class::Usul::Log and localisation 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

Configuration and Environment

    Defines the following attributes;

    config

      The config attribute should be a hash reference 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
      reference in the config attribute. It provides accessor methods with
      symbol inflation and smart defaults. Add configuration attributes by
      subclassing this class

    debug

      A boolean which defaults to false. Usually an instance of this class
      is passed into the constructors of other classes which set their own
      debug state to this value

    l10n

      A lazily evaluated instance of the l10n_class. This object reference
      is a Localiser which handles the localize method

    l10n_class

      A lazy loadable class which defaults to Class::Usul::L10N

    lock

      A lazily evaluated instance of the lock_class. This object reference
      is a Locker

    lock_class

      A lazy loadable class which defaults to IPC::SRLock

    log

      A lazily evaluated instance of the log_class. This object reference
      is a Logger

    log_class

      A lazy loadable class which defaults to Class::Usul::Log

Subroutines/Methods

 dumper

       $self->dumper( $some_var );

    Use Data::Printer to dump arguments for development purposes

Diagnostics

    Setting the debug attribute to true causes messages to be logged at the
    debug level

Dependencies

    Class::Usul::Config

    Class::Usul::Constants

    Class::Usul::Functions

    Class::Usul::L10N

    Class::Usul::Log

    Class::Usul::Types

    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
    http://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-Usul. Patches are
    welcome

Author

    Peter Flanigan, <pjfl@cpan.org>

Acknowledgements

    Larry Wall - For the Perl programming language

License and Copyright

    Copyright (c) 2018 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

