-
-
16 Apr 2012 21:20:13 UTC
- Distribution: KinoSearch
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (5)
- Testers (536 / 132 / 8)
- Kwalitee
Bus factor: 0- 85.27% Coverage
- License: perl_5
- Activity
24 month- Tools
- Download (852.87KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
and 1 contributors- Marvin Humphrey <marvin at rectangular dot com>
- Dependencies
- JSON::XS
- Lingua::Stem::Snowball
- Lingua::StopWords
- Parse::RecDescent
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
Clownfish::Binding::Perl::Class - Generate Perl binding code for a Clownfish::Class.
CLASS METHODS
register
Clownfish::Binding::Perl::Class->register( parcel => 'MyProject' , # required class_name => 'Foo::FooJr', # required bind_methods => [qw( Do_Stuff _get_foo|Get_Foo )], # default: undef bind_constructors => [qw( new _new2|init2 )], # default: undef make_pod => [qw( get_foo )], # default: undef xs_code => undef, # default: undef );
Create a new class binding and lodge it in the registry. May only be called once for each unique class name, and must be called after all classes have been parsed (via Clownfish::Hierarchy's build()).
parcel - A Clownfish::Parcel or parcel name.
class_name - The name of the class to be registered.
xs_code - Raw XS code to be included in the final .xs file generated by Clownfish::Binding::Perl. The XS directives PACKAGE and MODULE should be specified.
bind_methods - An array of names for novel methods for which XS bindings should be auto-generated, supplied using Clownfish's
Macro_Name
method-naming convention. The Perl subroutine name will be derived by lowercasingMethod_Name
tomethod_name
, but this can be overridden by prepending an alias and a pipe: e.g._get_foo|Get_Foo
.bind_constructors - An array of constructor names. The default implementing function is the class's
init
function, unless it is overridden using a pipe-separated string:_new2|init2
would create a Perl subroutine "_new2" which would invokemyproj_FooJr_init2
.make_pod - A specification for generating POD. TODO: document this spec, or break it up into multiple methods. (For now, just see examples from the source code.)
registry
my $registry = Clownfish::Binding::Perl::Class->registry; while ( my $class_name, $class_binding ) = each %$registry ) { ... }
Return the hash registry used by register(). The keys are class names, and the values are Clownfish::Binding::Perl::Class objects.
OBJECT METHODS
get_class_name get_bind_methods get_bind_methods get_make_pod get_xs_code get_client
Accessors.
get_client
retrieves the Clownfish::Class module to be bound.constructor_bindings
my @ctor_bindings = $class_binding->constructor_bindings;
Return a list of Clownfish::Binding::Perl::Constructor objects created as per the
bind_constructors
spec.method_bindings
my @method_bindings = $class_binding->method_bindings;
Return a list of Clownfish::Binding::Perl::Method objects created as per the
bind_methods
spec.create_pod
my $pod = $class_binding->create_pod;
Auto-generate POD according to the make_pod spec, if such a spec was supplied.
COPYRIGHT AND LICENSE
Copyright 2008-2011 Marvin Humphrey
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install KSx::Simple, copy and paste the appropriate command in to your terminal.
cpanm KSx::Simple
perl -MCPAN -e shell install KSx::Simple
For more information on module installation, please visit the detailed CPAN module installation guide.