04 Aug 2013 16:12:58 UTC
- Distribution: Lucy
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (1)
- Testers (1555 / 29 / 0)
- KwaliteeBus factor: 1
- License: apache_2_0
- Perl: v5.8.3
- Activity24 month
- Download (1.26MB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version++ed by:6 non-PAUSE usersCREAMYG Marvin Humphreyand 1 contributors
- The Apache Lucy Project <dev at lucy dot apache dot org>
- CLASS METHODS
- OBJECT METHODS
Clownfish::CFC::Binding::Perl::Class - Generate Perl binding code for a Clownfish::CFC::Class.
Clownfish::CFC::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::CFC::Hierarchy's build()).
parcel - A Clownfish::CFC::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::CFC::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_Namemethod-naming convention. The Perl subroutine name will be derived by lowercasing
method_name, but this can be overridden by prepending an alias and a pipe: e.g.
bind_constructors - An array of constructor names. The default implementing function is the class's
initfunction, unless it is overridden using a pipe-separated string:
_new2|init2would create a Perl subroutine "_new2" which would invoke
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.)
my $binding = Clownfish::CFC::Binding::Perl::Class->singleton($class_name);
Given a class name, return a class binding if one exists.
my $registered = Clownfish::CFC::Binding::Perl::Class->registered;
All registered bindings.
get_clientretrieves the Clownfish::CFC::Class module to be bound.
my @ctor_bindings = $class_binding->constructor_bindings;
Return a list of Clownfish::CFC::Binding::Perl::Constructor objects created as per the
my @method_bindings = $class_binding->method_bindings;
Return a list of Clownfish::CFC::Binding::Perl::Method objects created as per the
my $pod = $class_binding->create_pod;
Auto-generate POD according to the make_pod spec, if such a spec was supplied.