Andreas 'ac0v' Specht > Hyper > Hyper::Config::Reader::Container

Download:
Hyper-v0.05.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  2
Open  1
View/Report Bugs
Module Version: v0.01   Source  

NAME ^

Hyper::Config::Reader::Container - ini style Container Control config reader

VERSION ^

This document describes Hyper::Config::Reader::Container 0.01

SYNOPSIS ^

    use Hyper::Config::Reader::Container;
    my $object = Hyper::Config::Reader::Container->new({
        base_path => '/srv/web/www.example.com/',
        file      => 'MyPortal/Control/Container/FTest.ini',
    });

DESCRIPTION ^

This module is used for reading ini config files into Hyper config objects.

SUBROUTINES/METHODS ^

_read_config :PROTECTED

Internally used to read the config file into an object hierarchy.

DIAGNOSTICS ^

CONFIGURATION AND ENVIRONMENT ^

The ini style configuration files are stored within the following structure:

 $BASE_PATH/etc/$NAMESPACE/Control/Container/$SERVICE/$USECASE.ini

CONFIG FILE SYNTAX ^

See Hyper::Config::Reader::Flow for more options. Hyper::Control::Container are Flow Controls but they can also have some validation stuff.

The config file is split into several sections.

Config file sections

[Global]

Global configuration data goes here.

The attributes allowed in [Global] are described below.

attributes

Attributes for this Control. Multiple attributes can be specified using the heredoc syntax.

Example:

 [Global]
 attributes=<<EOT
 mMyAttribute
 mAnotherOne
 EOT

[Control $NAME Validator Single] - attach single validators

You can attach Single Validators to Controls (eg. Required Validator for a Hyper::Control::Base::BInput Control).

template :OPTIONAL

Template for the Hyper::Validator::Control::Container object which is used as container where the validator messages should be shown.

[Control $NAME Validator Single $VALIDATOR_CLASS]

Attach a specific validator to the control.

template :OPTIONAL

Template with the Validator message.

Full example:

 [Control]
 [Control cExampleControl]
 class=ControlType.myService.myUsecase
 template=/path/to/template
 [Control cExampleControl Validator Single Hyper.Validator.Single.Required]
 [Control cExampleControl Validator Single Hyper.Validator.Single.EMail]

[Control $NAME Validator Group $CLASS] - be a group validator

This Control is used to show the group validator.

Full example:

 [Control]
 [Control vComparePasswords]
 class=Hyper.Control.Validator.Group
 [Control vComparePassword Validator Group Hyper.Validator.Group.Compare]

[Control $NAME Validator Named $GROUP] - attach named group validators

Let the Control act as a object in a group validator. $GROUP is the name of the Group Validator Control.

act_as :MANDATORY

Act as named role in the group validator.

Full example:

 [Control]
 [Control vComparePasswords]
 class=Hyper.Control.Validator.Group
 [Control vComparePassword Validator Group Hyper.Validator.Group.Compare]

 [Control cNewPassword]
 class=Hyper.Control.Base.BInput
 [Control cNewPassword Validator Named vComparePasswords]
 act_as=first
 [Control cRepeatNewPassword]
 class=Hyper.Control.Base.BInput
 [Control cRepeatNewPassword Validator Named vComparePasswords]
 act_as=second

CODE GENERATION

use generate-flow.pl to generate a perl class for yout flow control with a shadow class and a basic template.

 hyper.pl -b $BASE_PATH -s $SERVICE -u $USECASE -t container

The following files will be generated:

if not existant:

 $BASE_PATH/lib/Hyper/Control/Container/$SERVICE/C$USECASE.pm
 $BASE_PATH/var/Hyper/Control/Container/$SERVICE/$USECASE.htc

always (previous files will be overwritten):

 $BASE_PATH/lib/Hyper/Control/Container/$SERVICE/_C$USECASE.pm

YOUR CODE

Each Step will call a method named action_$STEP_NAME if existant.

This methods may gather data from interfaces, perform interface calls etc.

You should place your code and template into

 $BASE_PATH/lib/Hyper/Control/Container/$SERVICE/C$USECASE.pm
 $BASE_PATH/var/Hyper/Control/Container/$SERVICE/$USECASE.htc

DEPENDENCIES ^

INCOMPATIBILITIES ^

BUGS AND LIMITATIONS ^

RCS INFORMATIONS ^

Last changed by

$Author: ac0v $

Id

$Id: Container.pm 317 2008-02-16 01:52:33Z ac0v $

Revision

$Revision: 317 $

Date

$Date: 2008-02-16 02:52:33 +0100 (Sa, 16 Feb 2008) $

HeadURL

$HeadURL: http://svn.hyper-framework.org/Hyper/Hyper/tags/0.05/lib/Hyper/Config/Reader/Container.pm $

AUTHOR ^

Andreas Specht <ACID@cpan.org>

LICENSE AND COPYRIGHT ^

Copyright (c) 2007, Andreas Specht <ACID@cpan.org>. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: