make the 'reset' delegation for Counter respect builders
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Counter / reset.pm
CommitLineData
04e05413 1package Moose::Meta::Method::Accessor::Native::Counter::reset;
2
3use strict;
4use warnings;
5
8b9641b8 6use Moose::Role;
7
8with 'Moose::Meta::Method::Accessor::Native::Writer' => {
9 -excludes => [
10 qw(
11 _maximum_arguments
a486d5ad 12 _inline_optimized_set_new_value
8b9641b8 13 )
14 ]
15};
04e05413 16
04e05413 17sub _maximum_arguments { 0 }
18
19sub _potential_value {
53a4677c 20 my $self = shift;
21 my ($slot_access) = @_;
04e05413 22
6411cab3 23 my $attr = $self->associated_attribute;
24
25 return '(do { '
26 . join(' ', $attr->_inline_generate_default(
27 '$self', '$default_for_reset'
28 )) . ' '
29 . '$default_for_reset; '
30 . '})';
04e05413 31}
32
a486d5ad 33sub _inline_optimized_set_new_value {
53a4677c 34 my $self = shift;
35 my ($inv, $new, $slot_access) = @_;
04e05413 36
6411cab3 37 return $slot_access . ' = ' . $self->_potential_value . ';';
04e05413 38}
39
8b9641b8 40no Moose::Role;
41
04e05413 421;