Form::Factory::Feature::Role::Control - Form features tied to particular controls
version 0.002
package Form::Factory::Feature::Control::Color; our $VERSION = '0.002'; use Moose; with qw( Form::Factory::Feature Form::Factory::Feature::Role::Control ); has recognized_colors => ( is => 'ro', isa => 'ArrayRef[Str]', required => 1, default => sub { [ qw( red orange yellow green blue purple black white ) ] }, ); sub check_control { my ($self, $control) = @_; die "color feature is only for scalar valued controls" unless $control->does('Form::Factory::Control::Role::ScalarValue'); } sub check_value { my $self = shift; my $value = $self->control->current_value; $self->control_error('the %s does not look like a color') unless grep { $value eq $_ } @{ $self->recognized_colors }; }
And then used in an action via:
package MyApp::Action::Foo; our $VERSION = '0.002'; use Form::Factory::Processor; has_control favorite_primary_color => ( control => 'select_one', options => { available_choices => [ map { Form::Factory::Control::Choice->new($_, ucfirst $_) } qw( red yellow blue ) ], }, features => { color => { recognized_colors => [ qw( red yellow blue ) ], }, }, );
This role is required for any feature attached directly to a control using has_control.
has_control
This is the control object the feature has been attached to.
Checks to see if a clean_value method is defined and calls it if it is.
clean_value
Checks to see if a check_value method is defined and calls it if it is.
check_value
Checks to see if a pre_process_value method is deifned and calls it if it is.
pre_process_value
Checks to see if a post_process_value method is deifned an calls it if it is.
post_process_value
my $formatted_message = $feature->format_message($unformatted_message);
Given a message containing a single %s placeholder, it fills that placeholder with the control's label. If the control does not implement Form::Factory::Control::Role::Labeled, the control's name is used instead.
%s
Reports an informational message automatically filtered through "format_message".
Reports a warning automatically filtered through "format_message".
Reports an error automatically filtered through "format_error".
Andrew Sterling Hanenkamp <hanenkamp@cpan.org>
<hanenkamp@cpan.org>
Copyright 2009 Qubling Software LLC.
This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.
To install Form::Factory, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Form::Factory
CPAN shell
perl -MCPAN -e shell install Form::Factory
For more information on module installation, please visit the detailed CPAN module installation guide.