| SWISH-Prog documentation | Contained in the SWISH-Prog distribution. |
SWISH::Prog::Class - base class for SWISH::Prog classes
package My::Class; use base qw( SWISH::Prog::Class ); 1; # see METHODS for what you get for free
SWISH::Prog::Class is a subclass of Class::Accessor::Fast. It's a base class useful for making simple accessor/mutator methods. SWISH::Prog::Class implements some additional methods and features useful for SWISH::Prog projects.
Constructor. Returns a new object. May take a hash or hashref as params.
Override init() in your subclass to perform object maintenance at construction time. Called by new().
Get/set the debug level. Default is 0.
Get/set the warnings level. Default is 0.
Get/set flags affecting the verbosity of the program.
Returns the elapsed time in seconds since object was created.
Returns $self (and data if present) via Data::Dump::dump. Useful for peering inside an object or other scalar.
Returns a SWISH::Prog::Config object based on config.
config may be a readable file name or a SWISH::Prog::Config object.
Will croak if config is neither of the above.
Peter Karman, <perl@peknet.com>
Please report any bugs or feature requests to bug-swish-prog at rt.cpan.org, or through
the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SWISH-Prog.
I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc SWISH::Prog
You can also look for information at:
Copyright 2008-2009 by Peter Karman
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| SWISH-Prog documentation | Contained in the SWISH-Prog distribution. |
package SWISH::Prog::Class; use strict; use warnings; use base qw( Rose::ObjectX::CAF ); use Carp; use Data::Dump qw( dump ); use SWISH::Prog::Config; use Scalar::Util qw( blessed ); our $VERSION = '0.51'; __PACKAGE__->mk_accessors(qw( debug verbose warnings ));
sub init { my $self = shift; $self->SUPER::init(@_); $self->{debug} ||= $ENV{PERL_DEBUG} || 0; $self->{verbose} ||= $ENV{PERL_VERBOSE} || 0; $self->{_start} = time(); return $self; }
sub elapsed { return time() - shift->{_start}; }
sub verify_isa_swish_prog_config { my $self = shift; my $config2 = shift; #carp "verify_isa_config: $config2"; my $config2_object; if ( !$config2 ) { $config2_object = SWISH::Prog::Config->new(); } elsif ( !blessed($config2) && -r $config2 ) { $config2_object = SWISH::Prog::Config->new($config2); } elsif ( blessed($config2) ) { if ( !$config2->isa('SWISH::Prog::Config') ) { croak "config object does not inherit from SWISH::Prog::Config: $config2"; } else { $config2_object = $config2; } } else { croak "$config2 is neither an object nor a readable file"; } return $config2_object; } 1; __END__