CatalystX::Usul::Base - Base class utility methods


CatalystX-Usul documentation  | view source Contained in the CatalystX-Usul distribution.

Index


Name

Top

CatalystX::Usul::Base - Base class utility methods

Version

Top

0.3.$Revision: 611 $

Synopsis

Top

   package MyBaseClass;

   use base qw(CatalystX::Usul::Base);

   sub new {
      my ($self, $app, @rest) = @_;

      my $new      = $self->next::method( $app, @rest );
      my $app_conf = $app->config || {};

      $new->debug   ( $app->debug           || 0                  );
      $new->encoding( $app_conf->{encoding} || q(UTF-8)           );
      $new->log     ( $app->log             || Class::Null->new() );
      $new->tempdir ( $app_conf->{tempdir}  || File::Spec->tmpdir );

      return $new;
   }

Description

Top

Provides utility methods to the application base class

Subroutines/Methods

Top

app_prefix

   $prefix = $self->app_prefix( __PACKAGE__ );

Takes a class name and returns it lower cased with :: changed to _, e.g. App::Munchies becomes app_munchies

arg_list

   $args = $self->arg_list( @rest );

Returns a hash ref containing the passed parameter list. Enables methods to be called with either a list or a hash ref as it's input parameters

basename

   $basename = $self->basename( $path, @suffixes );

Returns the base name of the passed path

catch

   $e = $self->catch;

Expose the catch method in the error class CatalystX::Usul::Exception

catdir

   $dir_path = $self->catdir( $part1, $part2 );

Expose catdir in File::Spec

catfile

   $file_path = $self->catfile( $dir_path, $file_name );

Expose catfile in File::Spec

class2appdir

   $appdir = $self->class2appdir( __PACKAGE__ );

Returns lower cased distname, e.g. App::Munchies becomes app-munchies

classfile

   $path = $self->classfile( __PACKAGE__ );

Returns the path/file name plus extension of a given class. Uses File::Spec for portability, e.g. App::Munchies becomes App/Munchies.pm

create_token

   $random_hex = $self->create_token( $seed );

Create a random string token using the first available Digest algorithm. If $seed is defined then add that to the digest, otherwise add some random data. Returns a hexadecimal string

delete_tmp_files

   $self->delete_tmp_files( $dir );

Delete this processes temporary files. Files are in the $dir directory which defaults to $self->tempdir

dirname

   $dirname = $self->dirname( $path );

Returns the directory name of the passed path

distname

   $distname = $self->distname( __PACKAGE__ );

Takes a class name and returns it with :: changed to -, e.g. App::Munchies becomes App-Munchies

ensure_class_loaded

   $self->ensure_class_loaded( $some_class );

Require the requested class, throw an error if it doesn't load

env_prefix

   $prefix = $self->env_prefix( $class );

Returns upper cased app_prefix. Suitable as prefix for environment variables

escape_TT

   $text = $self->escape_TT( q([% some_stash_key %]) );

The left square bracket causes problems in some contexts. Substitute a less than symbol instead. Also replaces the right square bracket with greater than for balance. Template::Toolkit will work with these sequences too, so unescaping isn't absolutely necessary

exception_class

Return the exception class. Used by the action class to process exceptions

find_source

   $path = $self->find_source( $module_name );

Find the source code for the given module

home2appl

   $appldir = $self->home2appl( $home_dir );

Strips the trailing lib/my_package from the supplied directory path

io

   $io_obj = $self->io( $pathname );

Expose the methods in CatalystX::Usul::File::IO

is_member

   $bool = $self->is_member( q(test_value), qw(a_value test_value b_value) );

Tests to see if the first parameter is present in the list of remaining parameters

load_component

   $self->load_component( $child, @parents );

Ensures that each component is loaded then fixes @ISA for the child so that it inherits from the parents

nap

   $self->nap( $time_in_seconds );

Exposes the nap method which sleeps for (possibly fractional) periods of time

say

   $self->say( @lines_of_text );

Prints to STDOUT the lines of text passed to it. Lines are chomped and then have newlines appended. Throws on IO errors

stamp

   $time_date_string = $self->stamp( $time );

Exposes the stamp method which returns an ISO format date/time string. Defaults to the current time if $time is omitted

status_for

   $stat_ref = $self->status_for( $path );

Return a hash for the given path containing it's inode status information

str2date_time

   $date_time_obj = $self->str2date_time( $date_time_string );

Exposes the str2date_time method which returns a DateTime object representing the supplied date/time string

str2time

   $seconds = $self->str2time( $date_time_string );

Exposes str2time method which returns the number of seconds elapsed since the epoch for the supplied date/time string

strip_leader

   $stripped = $self->strip_leader( q(my_program: Error message) );

Strips the leading "program_name: whitespace" from the passed argument

sub_name

   $sub_name = $self->sub_name( $level );

Returns the name of the method that calls it

supports

   $bool = $self->supports( @spec );

Returns true if the hash returned by our get_features attribute contains all the elements of the required specification

tempfile

   $tempfile_obj = $self->tempfile( $dir );

Returns a File::Temp object in the $dir directory which defaults to $self->tempdir. File is automatically deleted if the $tempfile_obj reference goes out of scope

tempname

   $pathname = $self->tempname( $dir );

Returns the pathname of a temporary file in the given directory which defaults to $self->tempdir. The file will be deleted by delete_tmp_files if it is called otherwise it will persist

throw

   $self->throw( error => q(error_key), args => [ q(error_arg) ] );

Expose the throw method in the error class CatalystX::Usul::Exception

time2str

   $date_time_string = $self->time2str( $format, $time );

Returns a date time string in the specified format

unescape_TT

   $text = $self->unescape_TT( q(<% some_stash_key %>) );

Do the reverse of escape_TT

uuid

   $uuid = $self->uuid;

Return the contents of /proc/sys/kernel/random/uuid

Diagnostics

Top

None

Configuration and Environment

Top

None

Dependencies

Top

CatalystX::Usul::Encoding
CatalystX::Usul::Exception
CatalystX::Usul::File::IO
Class::Accessor::Fast
Class::Accessor::Grouped
Class::MOP
Digest
File::Temp
List::Util
Path::Class::Dir

Incompatibilities

Top

The home2appl method is dependent on the installation path containing a lib

The /uuid method with only work on a OS with a /proc filesystem

Bugs and Limitations

Top

There are no known bugs in this module. Please report problems to the address below. Patches are welcome

TODO

The load_components/ensure_class_loaded and delete_tmp_file/tempfile methods have side effects (nap and throw are also suspect). These prevent this class from containing only functions

Author

Top

Peter Flanigan, <Support at RoxSoft.co.uk>

License and Copyright

Top


CatalystX-Usul documentation  | view source Contained in the CatalystX-Usul distribution.