Chad Granum > Devel-Declare-Parser-0.017 > Devel::Declare::Interface

Download:
Devel-Declare-Parser-0.017.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

Devel::Declare::Interface - Interface to Devel-Declare parsers.

DESCRIPTION ^

A higher level interface to Devel-Declare. This is the package you will interact with the most when using Devel::Declare::Parser.

SYNOPSIS ^

    package My::Keyword::Method;
    use strict;
    use warnings;

    use Devel::Declare::Parser;

    # Look at Exporter-Declare to have most of this done for you.
    sub import {
        my $class = shift;
        my $destination = caller;

        enhance( $destination, "make_method", "method" );
        no strict 'refs';
        *{ $destination . '::make_method' } = \&my_keyword;
    }

    sub make_method {
        my ( $name, $code ) = @_;
        my $dest = caller;
        no strict 'refs';
        *{ $destination . '::' . $name } = $code;
    }

    1;

API ^

The following functions are all exported by default.

register_parser( $name )
register_parser( $name, $class )

Register a parser under a short name. If $class is not provided caller will be used.

get_parser( $name );

Get the parser class by short name.

enhance( $dest_class, $name, $parser );
enhance( $dest_class, $name, $parser, $type );

Make $name a keyword in $dest_class that uses $parser. $parser can be a short name or class name. $type defaults to 'const'.

AUTHORS ^

Chad Granum exodist7@gmail.com

COPYRIGHT ^

Copyright (C) 2010 Chad Granum

Devel-Declare-Interface is free software; Standard perl licence.

Devel-Declare-Parser is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.

syntax highlighting: