The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Validation::Class::Plugin::JavascriptObjects - Javascript Object
    Rendering for Validation::Class

VERSION
    version 0.04

SYNOPSIS
        # THIS PLUGIN IS UNTESTED AND MAY BE SUBJECT TO DESIGN CHANGES!!!

        use Validation::Class::Simple;

        # given

        my $rules = Validation::Class::Simple->new(
            fields => {
                username => { required => 1 },
                password => { required => 1 },
            }
        );

        # when

        my $objects = $rules->plugin('javascript_objects');

        print $objects->render(namespace => 'form.signup', include => [qw/errors/]);

        # should output

        var form.signup = {
            "password": {
                "errors": ["password is required"]
            },
            "username": {
                "errors": ["username is required"]
            }
        };

DESCRIPTION
    Validation::Class::Plugin::JavascriptObjects is a plugin for
    Validation::Class which can leverage your validation class field
    definitions to render JavaScript objects for the purpose of
    introspection.

METHODS
  render
    The render method converts the attached validation class into a
    javascript object for introspection purposes. This method accepts a list
    of key/value pairs as options.

        $self->render;

        # or

        $self->render(
            namespace => 'Foo.Bar',
            exclude   => [qw/pattern/]
        );

        # or

        $self->render(
            namespace => 'Foo.Baz',
            include   => [qw/minlength maxlength required/]
        );

        # or, to also limit the fields output

        $self->render(
            namespace => 'Foo.Baz',
            fields    => [qw/this that/],
            include   => [qw/minlength maxlength required/]
        );

AUTHOR
    Al Newkirk <anewkirk@ana.io>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2011 by Al Newkirk.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.