The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

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

VERSION

version 0.022

SYNOPSIS

use Moose;
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
}
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.