NAME
OpenInteract2::App - Base class for CPAN-distributable OpenInteract application bundles
SYNOPSIS
# Install to perl an application from CPAN:
# using CPAN.pm:
$ perl -MCPAN -e
'install OpenInteract2::App::MyApp'
# manually:
$ tar -zxf OpenInteract2-App-MyApp-1.02.tar.gz
$ cd OpenInteract2-App-MyApp-1.02/
$ perl Makefile.PL
$ make
$ make install
# Install to website an application (aka package) from the command-line:
perl -MOpenInteract2::App::MyApp -e
'install( "/path/to/my_website" )'
# Same thing, but from the command-line using oi2_manage:
oi2_manage install_package --package_class=OpenInteract2::App::MyApp
# Programmatically:
# Instantiate an application object
my
$app
= OpenInteract2::App->new(
'myapp'
)
||
die
"No application 'myapp' installed"
;
# Display some information about the application
"Application bundle info:\n"
,
"Version: "
,
$app
->version,
"\n"
,
"Dependencies: "
,
join
(
", "
,
$app
->module_dependencies,
"\n"
,
"Authors: "
,
join
(
", "
,
$app
->author_names ),
"\n"
,
"URL: "
,
$app
->url,
"\n"
,
"Has SQL DDL? "
,
$app
->has_sql_structures,
"\n"
;
# Install the application
eval
{
$app
->install(
'/path/to/my_website'
) };
if
( $@ ) {
die
"Cannot install application: $@\n"
;
}
else
{
"Application installed ok!"
;
}
DESCRIPTION
This is a base class for CPAN-distributable OpenInteract applications. Previously the only way to distribute and install an OpenInteract application was with a package bundled up into a zip file. This class and supporting tools provide a more standard means of distributing an application while taking advantage of all that CPAN has to offer.
CLASS METHODS
new( $app_name )
Create a new application object of type $app_name
.
list_apps()
List all available applications installed on your system.
OBJECT METHODS
install( $website_dir )
Installs the application to $website_dir
.
PROPERTIES
version
module_dependencies
author_names
author_emails
url
has_sql_structures
SEE ALSO
OpenInteract2::Manage::Package::CreateCPAN
COPYRIGHT
Copyright (c) 2005 Chris Winters. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHORS
Chris Winters <chris@cwinters.com>