| Form-Factory documentation | Contained in the Form-Factory distribution. |
Form::Factory::Feature::Role::CustomControlMessage - control features with custom messages
version 0.020
has_control foo => (
control => 'text',
features => {
match_code => {
message => 'Foo values must be even',
code => sub { $_[0] % 2 == 0 },
},
},
);
A control feature may consume this role in order to allow the user to specify a custom message on failure. This message may include a single "%s" placeholder, which will be filled in with the label or name of the control.
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.
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>
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.
| Form-Factory documentation | Contained in the Form-Factory distribution. |
package Form::Factory::Feature::Role::CustomControlMessage; BEGIN { $Form::Factory::Feature::Role::CustomControlMessage::VERSION = '0.020'; } use Moose::Role; with qw( Form::Factory::Feature::Role::CustomMessage );
sub format_message { my $self = shift; my $message = $self->message || shift; my $control = $self->control; my $control_label = $control->does('Form::Factory::Control::Role::Labeled') ? $control->label : $control->name ; sprintf $message, $control_label; }
sub control_info { my $self = shift; my $message = $self->format_message(shift); $self->result->field_info($self->control->name, $message); }
sub control_warning { my $self = shift; my $message = $self->format_message(shift); $self->result->field_warning($self->control->name, $message); }
sub control_error { my $self = shift; my $message = $self->format_message(shift); $self->result->field_error($self->control->name, $message); }
1;