NAME

Form::Factory::Interface - Role for form interface implementations

VERSION

version 0.022

SYNOPSIS

package MyApp::Interface::MyUI;
use Moose;

with qw( Form::Factory::Interface );

sub render_control {
    my ($self, $control, %options) = @_;

    # Draw $control for user
}

sub consume_control {
    my ($self, $control, %options) = @_;

    # Consume values from user to fill $control
}

package Form::Factory::Interface::Custom::MyUI;
sub register_implementation { 'MyApp::Interface::MyUI' }

DESCRIPTION

Defines the contract form interface classes must fulfill.

ATTRIBUTES

stasher

A place for remembering things.

METHODS

stash

unstash

See Form::Factory::Stash.

new_action

my $action = $interface->new_action('Some::Action::Class', \%options);

Given the name of an action class, it initializes the class for use with this interface. The %options are passed to the constructor.

new_control

my $control = $interface->new_control($name, \%options);

Given the short name for a control and a hash reference of initialization arguments, return a fully initialized control.

ROLE METHODS

The following methods need to implement the following methods.

render_control

$interface->render_control($control, %options);

This method is used to render the control in the current form.

consume_control

$interface->consume_control($control, %options);

This method is used to consume the values input for a current form.

CONTROLS

Here's a list of controls and the classes they represent:

button

Form::Factory::Control::Button

checkbox

Form::Factory::Control::Checkbox

full_text

Form::Factory::Control::FullText

password

Form::Factory::Control::Password

select_many

Form::Factory::Control::SelectMany

select_one

Form::Factory::Control::SelectOne

text

Form::Factory::Control::Text

value

Form::Factory::Control::Value

SEE ALSO

Form::Factory::Action, Form::Factory::Control, Form::Factory::Stasher

AUTHOR

Andrew Sterling Hanenkamp <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Qubling Software LLC.

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