| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
HTML::FormFu::Filter - Filter Base Class
---
elements:
- type: Text
name: foo
filters:
- type: Encode
candidates:
- utf8
- Hebrew
- type: Text
name: bar
filters:
- LowerCase
- Encode
filters:
- TrimEdges
filters() and filter can be called on any form,
block element (includes fieldsets) or
field element (HTML::FormFu::Element::_Field).
If called on a field element, no name argument should be passed.
If called on a form or
block element, if no name argument is
provided, a new filter is created for and added to every field on that form
or block.
See "FORM LOGIC AND VALIDATION" in HTML::FormFu for further details.
Returns the type argument originally used to create the filter.
Provide arguments that should be passed to localize
to replace [_1], [_2], etc. in the localized string.
Returns the HTML::FormFu::Element::_Field object that the filter is associated with.
Arguments: \%options
Traverses the parent hierarchy, returning the first parent that matches the supplied options.
Returns the HTML::FormFu object that the filter's field is attached to.
Shorthand for $filter->parent->name
The following are base classes for other filters, and generally needn't be used directly.
Carl Franks, cfranks@cpan.org
Based on the original source code of HTML::Widget::Filter, by Sebastian Riedel.
This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
package HTML::FormFu::Filter; use Moose; with 'HTML::FormFu::Role::NestedHashUtils', 'HTML::FormFu::Role::HasParent', 'HTML::FormFu::Role::Populate'; use HTML::FormFu::Attribute qw( mk_inherited_accessors ); use HTML::FormFu::ObjectUtil qw( form name parent nested_name nested_names ); use Carp qw( croak ); has type => ( is => 'rw', traits => ['Chained'] ); has localize_args => ( is => 'rw', traits => ['Chained'] ); sub process { my ( $self, $result, $params ) = @_; my $name = $self->nested_name; my $value = $self->get_nested_hash_value( $params, $name ); my $filtered; if ( ref $value eq 'ARRAY' ) { $filtered = [ map { $self->filter( $_, $params ) } @$value ]; } else { $filtered = $self->filter( $value, $params ); } $self->set_nested_hash_value( $params, $name, $filtered ); return; } sub clone { my ($self) = @_; my %new = %$self; return bless \%new, ref $self; } __PACKAGE__->meta->make_immutable; 1; __END__