Hyper::Developer::Generator::Environment - class for generating a Hyper Environment


Hyper-Developer documentation Contained in the Hyper-Developer distribution.

Index


Code Index:

NAME

Top

Hyper::Developer::Generator::Environment - class for generating a Hyper Environment

VERSION

Top

This document describes Hyper::Developer::Generator::Environment 0.01

SYNOPSIS

Top

    use Hyper::Developer::Generator::Environment;
    my $object = Hyper::Developer::Generator::Environment->new({
        base_path => '/srv/web/www.example.com/',
        namespace => 'Example',
    });
    $object->create();

DESCRIPTION

Top

Used to create the initial environment for a Hyper Based Web Application.

SUBROUTINES/METHODS

Top

create

    $object->create();

Creates the following folders:

    PATH                                      USED FOR
    ------------------------------------------------------
    $BASE_PATH/var/$NAMESPACE                 templates
    $BASE_PATH/etc/$NAMESPACE                 config files
    $BASE_PATH/cgi-bin/$LOWER_CASE_NAMESPACE  CGI binarys
    $BASE_PATH/htdocs/$LOWER_CASE_NAMESPACE   static files

And creates the following files:

$BASE_PATH/var/$LOWER_CASE_NAMESPACE/index.pl

The CGI Script which is used for calling Hyper Applications.

So a sample URL to start a usecase of a service in the namespace >Example< could look like:

http://www.example.com/cgi-bin/example/index.pl?service=Test&usecase=Test

$BASE_PATH/etc/$NAMESPACE/Context.ini

Initial Context.ini with global configuration items.

DIAGNOSTICS

Top

CONFIGURATION AND ENVIRONMENT

Top

DEPENDENCIES

Top

INCOMPATIBILITIES

Top

BUGS AND LIMITATIONS

Top

RCS INFORMATIONS

Top

Last changed by

$Author: ac0v $

Id

$Id: Environment.pm 333 2008-02-18 22:59:27Z ac0v $

Revision

$Revision: 333 $

Date

$Date: 2008-02-18 23:59:27 +0100 (Mon, 18 Feb 2008) $

HeadURL

$HeadURL: http://svn.hyper-framework.org/Hyper/Hyper-Developer/branches/0.07/lib/Hyper/Developer/Generator/Environment.pm $

AUTHOR

Top

Andreas Specht <ACID@cpan.org>

LICENSE AND COPYRIGHT

Top


Hyper-Developer documentation Contained in the Hyper-Developer distribution.

package Hyper::Developer::Generator::Environment;

use strict;
use warnings;
use version; our $VERSION = qv('0.01');

use base qw(Hyper::Developer::Generator);
use Class::Std;
use File::Path ();

use Hyper::Functions;
use Hyper::Error;

sub create {
    my $self    = shift;
    my $arg_ref = shift;

    my $base_path = $self->get_base_path();
    my $namespace = $self->get_namespace();
    my $lc_path   = Hyper::Functions::class_to_path(lc $namespace);
    my $template  = $self->get_template();

    File::Path::mkpath([
            map {
                my $path = "$base_path/$_/$namespace";
                $self->verbose_message("creating path >$path<");
                $path;
            } qw(lib var etc t)
        ], 0, 0770
    );


    for my $dir ( qw(cgi-bin htdocs bin) ) {
        my $path = "$base_path/$dir/$lc_path";
        $self->verbose_message("creating path >$path<");
        File::Path::mkpath([$path], 0, 0770);
    }

    # Context.ini
    my $file = "$base_path/"
        . Hyper::Functions::get_path_for('config')
        . "/$namespace/Context.ini";
    if ( $self->get_force() || ! -e $file ) {
        $self->verbose_message("creating initial context >$file<");
        $template->process(
            "Generator/Environment/Context.ini.tpl",
            { this => $self },
            $file
        ) or throw($template->error());
    }
    else {
        print STDERR "won't create >$file< - file already exists. use param force to overwrite\n";
    }

    # index.pl
    $file = "$base_path/cgi-bin/$lc_path/index.pl";
    if ( $self->get_force() || ! -e $file ) {
        $self->verbose_message("creating default cgi script >$file<");
        $template->process(
            "Generator/Environment/index.pl.tpl",
            { this => $self },
            $file,
        ) or throw($template->error());
    }
    else {
        print STDERR "won't create >$file< - file already exists. use param force to overwrite\n";
    }

    # server.pl
    $file = "$base_path/bin/$lc_path/server.pl";
    if ( $self->get_force() || ! -e $file ) {
        $self->verbose_message("creating default server >$file<");
        $template->process(
            "Generator/Environment/server.pl.tpl",
            { this => $self },
            $file,
        ) or throw($template->error());
    }
    else {
        print STDERR "won't create >$file< - file already exists. use param force to overwrite\n";
    }


    return $self;
}

1;

__END__