Ark

 view release on metacpan or  search on metacpan

lib/Ark/Form.pm  view on Meta::CPAN

    my $field = $self->field($name);
    my $label = $field ? $field->label || $field->name : $func;

    my $messages = {
        %{ $self->messages || {} },
        %{ $self->_fields_messages || {} },
    };

    my $message = $messages->{"$name.$func"}
               || $messages->{ $func };

    unless ($message) {
        warn qq{Message "$name.$func" does not defined};
        return;
    }

    if ($self->needs_localize) {
        $label   = $self->localize( $label );
        $message = $self->localize( $message, $label );
    }
    else {
        my $gen_msg = sub {
            my ($tmpl, @args) = @_;
            local $_ = $tmpl;
            s!\[_(\d+)\]!$args[$1-1]!ge;
            $_;
        };
        $message = $gen_msg->( $message, $label );
    }

    $message;
}

sub error_message {
    my ($self, $name) = @_;
    return unless $self->submitted;
    sprintf($self->message_format, $self->error_message_plain($name) || return);
}

sub error_messages {
    my ($self, $name) = @_;
    [ map { sprintf( $self->message_format, $_ ) }
            @{ $self->error_messages_plain($name) || [] } ];
}

sub fill {
    my $self = shift;
    my $p    = @_ > 1 ? {@_} : $_[0];

    for my $k (keys %$p) {
        $self->fillin_params->{ $k } = $p->{ $k };
    }
}

sub x { $_[0] };

sub messages {
    my $self = shift;

    return {
        not_null => '[_1] is required',
        map({ $_ => '[_1] is invalid' } qw/
                int ascii date duplication length regex uint
                http_url
                email_loose
                hiragana jtel jzip katakana
                file_size file_mime
                / ),
        %{ $self->_fields_messages },
    };
}

sub message_format {
    '<span class="error">%s</span>';
}

sub encode_entities {
    warn 'Ark::Form::encode_entities() is deprecated. use HTML::Escape::escape_html() instead';
    HTML::Escape::escape_html(@_);
}

__PACKAGE__->meta->make_immutable;



( run in 1.529 second using v1.01-cache-2.11-cpan-39bf76dae61 )