Nicholas Perez > Document-Transform-1.110530 > Document::Transform::Role::Transformer

Download:
Document-Transform-1.110530.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.110530   Source  

NAME ^

Document::Transform::Role::Transformer - Provides an interface role for Transformers implementations

VERSION ^

version 1.110530

SYNOPSIS ^

    package MyTransformer;
    use Moose;
    use MooseX::Params::Validate;
    use MooseX::Types::Moose(':all');
    use MyTypeLib(':all');

    sub document_constraint
    {
        return Document;
    }

    sub transform_constraint
    {
        return Transform;
    }

    sub transform
    {
        my $self = shift;
        my ($doc, $transforms) = validated_list
        (
            \@_,
            {isa => $self->document_constraint},
            {isa => ArrayRef[$self->transform_constraint]},
        );

        #Do transforms here and return document
    }

    with 'Document::Transform::Role::Transformer';
    1;

DESCRIPTION ^

Want to implement your own transformer and feed it directly to Document::Transform? Then this is your role.

Simply implement a suitable transform method along with the constraint methods or attributes and consume the role.

ROLE_REQUIRES ^

transform

This role requires that you provide the transform method. If merely substituting your own Transformer implementation, transform will need to take two arguments, a Document structure and an arrayref of Transform structures with the expectation that the operations contained with in each Transform are executed against the Document, and the result returned. The type constraints for Document and Transform are provided in the "document_constraint" and "transform_constrant" attributes or methods

document_constraint

In order to constrain the Document appropriately, this attribute or method must be implemented and must return a Moose::Meta::TypeConstraint.

transform_constraint

In order to constrain the Transform appropriately, this attribute or method must be implemented and must return a Moose::Meta::TypeConstraint.

AUTHOR ^

Nicholas R. Perez <nperez@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2010 by Infinity Interactive.

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

syntax highlighting: