Apache2-WebApp-Toolkit
view release on metacpan or search on metacpan
lib/Apache2/WebApp/Helper.pm view on Meta::CPAN
#----------------------------------------------------------------------------+
#
# Apache2::WebApp::Helper - Base class for command-line script functionality
#
# DESCRIPTION
# Base class module that implements a constructor and provides helper
# script functionality for writing template output to a file.
#
# AUTHOR
# Marc S. Brooks <mbrooks@cpan.org>
#
# This module is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
#
#----------------------------------------------------------------------------+
package Apache2::WebApp::Helper;
use strict;
use warnings;
use base 'Apache2::WebApp::Base';
use Params::Validate qw( :all );
use Apache2::WebApp::AppConfig;
use Apache2::WebApp::Template;
our $VERSION = 0.06;
our $AUTOLOAD;
#~~~~~~~~~~~~~~~~~~~~~~~~~~[ OBJECT METHODS ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#----------------------------------------------------------------------------+
# new()
#
# Constructor method used to return new helper object.
sub new {
my $class = shift;
return bless({
CONFIG => Apache2::WebApp::AppConfig->new,
TEMPLATE => Apache2::WebApp::Template->new,
VARS => {},
}, $class);
}
#----------------------------------------------------------------------------+
# set_vars(\%vars)
#
# Set the template object attributes.
sub set_vars {
my ($self, $vars)
= validate_pos(@_,
{ type => OBJECT },
{ type => HASHREF }
);
@{ $self->{VARS} }{keys %$vars} = values %$vars;
}
#----------------------------------------------------------------------------+
# write_file( $file, $output )
#
# Write the template output to a file.
sub write_file {
my ($self, $file, $output)
= validate_pos(@_,
{ type => OBJECT },
{ type => SCALAR },
{ type => SCALAR }
);
$self->{TEMPLATE}->process($file, $self->{VARS}, $output)
or $self->error(
"@{[ $self->{TEMPLATE}->error() ]} at $file"
);
print "created file $output\n" if ( $self->{VERBOSE} );
}
#----------------------------------------------------------------------------+
# get_source_path()
#
# Returns the path to the /webapp-toolkit source directory.
sub get_source_path {
my $self
= validate_pos(@_,
{ type => OBJECT }
);
my ($package, $filename, $line) = caller;
$filename =~ s/^(.*)\/lib\/.*$/$1/;
return $filename . '/share/webapp-toolkit';
}
#----------------------------------------------------------------------------+
# error($mesg)
#
# Print errors/exceptions to STDOUT and exit.
sub error {
my ($self, $mesg)
= validate_pos(@_,
{ type => OBJECT },
{ type => SCALAR }
);
print "$mesg\n";
exit;
}
#----------------------------------------------------------------------------+
# AUTOLOAD()
#
# Provides pseudo-methods for read-only access to various internal methods.
sub AUTOLOAD {
my $self = shift;
my $method;
($method = $AUTOLOAD) =~ s/.*:://;
return if ($method eq 'DESTROY');
return $self->{ uc($method) };
}
1;
__END__
=head1 NAME
Apache2::WebApp::Helper - Base class for command-line script functionality
=head1 SYNOPSIS
use Apache2::WebApp::Helper;
my $obj = Apache2::WebApp::Helper->new;
=head1 DESCRIPTION
Base class module that implements a constructor and provides helper script
functionality for writing template output to a file.
=head1 OBJECT METHODS
=head2 set_vars
Set the template object attributes.
$obj->set_vars(\%vars);
=head2 write_file
Write the template output to a file.
$obj->write_file($file, $output);
=head2 get_source_path
Returns the path to the /webapp-toolkit source directory.
$self->get_source_path();
( run in 1.168 second using v1.01-cache-2.11-cpan-39bf76dae61 )