Pass Binding::Perl object to bind_all
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/a3062c1c Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/a3062c1c Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/a3062c1c Branch: refs/heads/documentation Commit: a3062c1ca4307fc2629a79ea0ffd938b92debcd0 Parents: 898e6c1 Author: Nick Wellnhofer <[email protected]> Authored: Sun Aug 31 14:42:05 2014 +0200 Committer: Nick Wellnhofer <[email protected]> Committed: Sun Aug 31 15:32:22 2014 +0200 ---------------------------------------------------------------------- compiler/perl/lib/Clownfish/CFC/Perl/Build.pm | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a3062c1c/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm ---------------------------------------------------------------------- diff --git a/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm b/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm index 046fc0d..e7ca4e1 100644 --- a/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm +++ b/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm @@ -221,6 +221,14 @@ sub _compile_clownfish { } $hierarchy->build; + my $binding = Clownfish::CFC::Binding::Perl->new( + hierarchy => $hierarchy, + lib_dir => $LIB_DIR, + boot_class => $self->module_name, + header => $self->clownfish_params('autogen_header'), + footer => '', + ); + # Process all Binding classes in buildlib. my $pm_filepaths = $self->rscan_dir( $BUILDLIB_DIR, qr/\.pm$/ ); for my $pm_filepath (@$pm_filepaths) { @@ -229,17 +237,9 @@ sub _compile_clownfish { my $package_name = $pm_filepath; $package_name =~ s/buildlib\/(.*)\.pm$/$1/; $package_name =~ s/\//::/g; - $package_name->bind_all($hierarchy); + $package_name->bind_all($hierarchy, $binding); } - my $binding = Clownfish::CFC::Binding::Perl->new( - hierarchy => $hierarchy, - lib_dir => $LIB_DIR, - boot_class => $self->module_name, - header => $self->clownfish_params('autogen_header'), - footer => '', - ); - return ( $hierarchy, $binding ); } @@ -601,7 +601,8 @@ Clownfish::CFC::Perl::Build defines the following build actions. Build the whole project. The C<code> action searches the C<buildlib> directory for .pm files whose path contains the string C<Binding>. For each module found, the class method C<bind_all> will be called with a -L<Clownfish::CFC::Model::Hierarchy> object as argument. This method +L<Clownfish::CFC::Model::Hierarchy> object and a +L<Clownfish::CFC::Binding::Perl> object as arguments. This method should register all the L<Clownfish::CFC::Binding::Perl::Class> objects for which bindings should be generated. @@ -610,7 +611,7 @@ For example, the file C<buildlib/My/Module/Binding.pm> could look like: package My::Module::Binding; sub bind_all { - my ($class, $hierarchy) = @_; + my ($class, $hierarchy, $perl_binding) = @_; my $binding = Clownfish::CFC::Binding::Perl::Class->new( parcel => 'MyModule',
