=head1 NAME
HTML::FormHandler::Moose::Role - to add FormHandler sugar to Roles
=head1 SYNOPSIS
Enables the use of field specification sugar (has_field) in roles.
Use this module instead of C< use Moose::Role; >
package MyApp::Form::Foo;
use HTML::FormHandler::Moose::Role;
has_field 'username' => ( type => 'Text', ... );
has_field 'something_else' => ( ... );
no HTML::FormHandler::Moose::Role;
1;
=cut
Moose::Exporter->setup_import_methods(
with_caller => [ 'has_field', 'apply' ],
also => 'Moose::Role',
);
sub init_meta {
my $class = shift;
my %options = @_;
Moose::Role->init_meta( %options );
my $meta = Moose::Util::MetaRole::apply_metaclass_roles(
for_class => $options{for_class},
metaclass_roles => ['HTML::FormHandler::Meta::Role'],
);
return $meta;
}
sub has_field
{
my ( $class, $name, %options ) = @_;
$class->meta->add_to_field_list( { name => $name, %options } );
}
sub apply
{
my ( $class, $arrayref ) = @_;
$class->meta->add_to_apply_list( @{$arrayref} );
}
=head1 AUTHOR
Gerda Shank, gshank@cpan.org
=head1 COPYRIGHT
This library is free software, you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
1;