bump version to 1.25
[gitmo/Moose.git] / lib / Moose / Meta / Attribute / Native / Trait / Code.pm
CommitLineData
952b939d 1package Moose::Meta::Attribute::Native::Trait::Code;
cdf3cae6 2use Moose::Role;
cdf3cae6 3
0c3879e8 4our $VERSION = '1.25';
cdf3cae6 5$VERSION = eval $VERSION;
6our $AUTHORITY = 'cpan:STEVAN';
7
fc6ef638 8use Moose::Meta::Method::Accessor::Native::Code::execute;
9use Moose::Meta::Method::Accessor::Native::Code::execute_method;
cdf3cae6 10
fc6ef638 11with 'Moose::Meta::Attribute::Native::Trait';
cdf3cae6 12
cdf3cae6 13sub _helper_type { 'CodeRef' }
14
15no Moose::Role;
16
171;
e8953f86 18
19=pod
20
21=head1 NAME
22
8b09d5c3 23Moose::Meta::Attribute::Native::Trait::Code - Helper trait for Code attributes
e8953f86 24
25=head1 SYNOPSIS
26
27 package Foo;
28 use Moose;
29
30 has 'callback' => (
e132fd56 31 traits => ['Code'],
32 is => 'ro',
33 isa => 'CodeRef',
34 default => sub {
35 sub { print "called" }
36 },
37 handles => {
e8953f86 38 call => 'execute',
39 },
40 );
41
42 my $foo = Foo->new;
e132fd56 43 $foo->call; # prints "called"
e8953f86 44
45=head1 DESCRIPTION
46
7795e4de 47This trait provides native delegation methods for code references.
48
49=head1 DEFAULT TYPE
50
51If you don't provide an C<isa> value for your attribute, it will default to
52C<CodeRef>.
e8953f86 53
54=head1 PROVIDED METHODS
55
56=over 4
57
e132fd56 58=item * B<execute(@args)>
e8953f86 59
60Calls the coderef with the given args.
61
e132fd56 62=item * B<execute_method(@args)>
d9299060 63
64Calls the coderef with the the instance as invocant and given args.
65
e8953f86 66=back
67
68=head1 BUGS
69
d4048ef3 70See L<Moose/BUGS> for details on reporting bugs.
e8953f86 71
72=head1 AUTHOR
73
74 Florian Ragwitz <rafl@debian.org>
75
76=head1 COPYRIGHT AND LICENSE
77
7e20dada 78Copyright 2007-2010 by Infinity Interactive, Inc.
e8953f86 79
80L<http://www.iinteractive.com>
81
82This library is free software; you can redistribute it and/or modify
83it under the same terms as Perl itself.
84
85=cut