Devel::PerlySense::Plugin::Syntax::Moose - Plugin for parsing Moose syntax


Devel-PerlySense documentation  | view source Contained in the Devel-PerlySense distribution.

Index


NAME

Top

Devel::PerlySense::Plugin::Syntax::Moose - Plugin for parsing Moose syntax constructs

DESCRIPTION

Top

Parses Moose specific syntax, like the "extends" keyword.

Currently supported:

* has - Attributes

Treated as subs (getters/setters).

Multiple attributes and overridden attributes are supported.

Things like handles, clearer, and predicate aren't supported.

* extends - Inheritance

Single and multiple inheritance supported.

* with - Roles

Treated as base classes.

KNOWN MOOSE BUGS

Top

Broken Moose code, e.g. multiple extends are parsed incorrectly (the ISA isn't reset). But you shouldn't have broken Moose code should you?

Roles are treated like base classes, because that's the most similar Perl concept.

Some parts of the parsing is a bit sloppy and fragile, e.g. comments in lists may be picked up.

KNOWN BUGS

Top

This plugin module is not yet it's own distribution, which it should be. It should have a base class inside the PerlySense distro to future proof both PerlySense's and the plugins' APIs against each other.

The plugins could have some kind of marker for when they should be run for a document. It could be a quick regex on the source or per line or something.

Reporting back to PerlySense isn't quite uniform yet in that most things are set in a hash ref, but sub location are set on the Meta object. That should be fixed.

PROPERTIES

Top

API METHODS

Top

parse($rhDataDocument, $oMeta, $oDocument, $oNode, $pkgNode, $row, $col, $packageCurrent)

Parse the Devel::PerlySense::Document and extract metadata. Fill appropriate data structures.

rhDataDocument

the key e.g. "Moose" for Plugin::Syntax::Moose, is for the plugin to manage. It's persistent during the complete parse of a document.

Return 1 or die on errors.

AUTHOR

Top

Johan Lindström, <johanl[ÄT]DarSerMan.com>

BUGS

Top

Please report any bugs or feature requests to bug-devel-perlysense@rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Devel-PerlySense. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

ACKNOWLEDGEMENTS

Top

COPYRIGHT & LICENSE

Top


Devel-PerlySense documentation  | view source Contained in the Devel-PerlySense distribution.