| Hyper-Developer documentation | Contained in the Hyper-Developer distribution. |
Hyper::Developer::Generator::Control::Container - class for generating Container Controls
This document describes Hyper::Developer::Generator::Control::Container 0.01
use Hyper::Developer::Generator::Control::Container;
my $object = Hyper::Developer::Generator::Control::Container->new({
base_path => '/srv/web/www.example.com/',
namespace => 'Example',
usecase => 'ChangePassword',
service => 'AccountManagement',
});
$object->create();
Used to create the initial environment for a Hyper Based Web Application.
Indicated if the template should be generated.
Indicated if perl code should be generated.
my $object = Hyper::Developer::Generator::Control::Container->new({
base_path => '/srv/web/www.example.com/',
namespace => 'Example',
usecase => 'ChangePassword',
service => 'AccountManagement',
});
Called on object creation and sets some default vars.
$object->create();
Creates the following files (depends on the init_args - see ATTRIBUTES):
This is generated once and won't be signed over. That's the place where you can put your code in.
This file will be reqritten on each method call. So don't change anything in this file.
This is the default template for the new container.
$Author: ac0v $
$Id: Container.pm 333 2008-02-18 22:59:27Z ac0v $
$Revision: 333 $
$Date: 2008-02-18 23:59:27 +0100 (Mon, 18 Feb 2008) $
$HeadURL: http://svn.hyper-framework.org/Hyper/Hyper-Developer/branches/0.07/lib/Hyper/Developer/Generator/Control/Container.pm $
Andreas Specht <ACID@cpan.org>
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.
| Hyper-Developer documentation | Contained in the Hyper-Developer distribution. |
package Hyper::Developer::Generator::Control::Container; use strict; use warnings; use version; our $VERSION = qv('0.01'); use Class::Std; use base qw(Hyper::Developer::Generator::Control::ContainerFlow); use Hyper::Config::Reader::Container; my %create_template_of :ATTR(:init_arg<template>); my %create_code_of :ATTR(:init_arg<code>); sub BUILD { my $self = shift; $self->set_type('package'); $self->set_sub_path('/Control/Container/'); $self->set_suffix('pm'); return $self; } sub create { my $self = shift; my $ident = ident $self; my $usecase = $self->get_usecase(); my $service = $self->get_service(); my $config = Hyper::Config::Reader::Container->new({ base_path => $self->get_base_path(), config_for => $self->get_namespace() . "::Control::Container::${service}::C${usecase}", }); my $data_ref = $self->_get_data_ref_of_steps( $config->get_steps() ); my $attr_ref = $config->get_attributes(); if ( %{$data_ref} ) { if ( $create_code_of{$ident} ) { $self->SUPER::create({ data => { attributes => $attr_ref, step_data => $data_ref, }, name => "_C$usecase", template => 'Generator/Control/_container.tpl', force => 1, }); $self->SUPER::create({ data => { attributes => $attr_ref, step_data => $data_ref, }, name => "C$usecase", template => 'Generator/Control/container.tpl', }); } if ( $create_template_of{$ident} ) { $self->set_type('template'); $self->set_suffix('htc'); $self->SUPER::create({ data => { attributes => $attr_ref, step_data => $data_ref, }, name => "C$usecase", template => 'Generator/Control/Container/template.tpl', }); } } return $self; } 1; __END__