HTML::FormFu::Filter - Filter Base Class


HTML-FormFu documentation Contained in the HTML-FormFu distribution.

Index


Code Index:

NAME

Top

HTML::FormFu::Filter - Filter Base Class

SYNOPSIS

Top

    ---
    elements: 
      - type: Text
        name: foo
        filters:
          - type: Encode
            candidates:
              - utf8
              - Hebrew
      - type: Text
        name: bar
        filters: 
          - LowerCase
          - Encode
    filters: 
      - TrimEdges

DESCRIPTION

Top

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.

METHODS

Top

type

Returns the type argument originally used to create the filter.

localise_args

Provide arguments that should be passed to localize to replace [_1], [_2], etc. in the localized string.

parent

Returns the HTML::FormFu::Element::_Field object that the filter is associated with.

get_parent

Arguments: \%options

Traverses the parent hierarchy, returning the first parent that matches the supplied options.

form

Returns the HTML::FormFu object that the filter's field is attached to.

name

Shorthand for $filter->parent->name

CORE FILTERS

Top

HTML::FormFu::Filter::Callback
HTML::FormFu::Filter::CompoundJoin
HTML::FormFu::Filter::CompoundSprintf
HTML::FormFu::Filter::CopyValue
HTML::FormFu::Filter::Default
HTML::FormFu::Filter::Encode
HTML::FormFu::Filter::FormatNumber
HTML::FormFu::Filter::HTMLEscape
HTML::FormFu::Filter::HTMLScrubber
HTML::FormFu::Filter::LowerCase
HTML::FormFu::Filter::NonNumeric
HTML::FormFu::Filter::Regex
HTML::FormFu::Filter::Split
HTML::FormFu::Filter::TrimEdges
HTML::FormFu::Filter::UpperCase
HTML::FormFu::Filter::Whitespace

FILTER BASE CLASSES

Top

The following are base classes for other filters, and generally needn't be used directly.

HTML::FormFu::Filter::_Compound

AUTHOR

Top

Carl Franks, cfranks@cpan.org

Based on the original source code of HTML::Widget::Filter, by Sebastian Riedel.

LICENSE

Top

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__