diff options
Diffstat (limited to 'lib/MooseX/Bread/Board/Meta')
-rw-r--r-- | lib/MooseX/Bread/Board/Meta/Role/Attribute.pm | 4 | ||||
-rw-r--r-- | lib/MooseX/Bread/Board/Meta/Role/Instance.pm | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm b/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm index 90a10e5..fe98bb7 100644 --- a/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm +++ b/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm @@ -99,9 +99,9 @@ around inline_get => sub { my $self = shift; my ($instance) = @_; - return '((' . $self->inline_has($instance) . ')' . "\n" + return 'do { (' . $self->inline_has($instance) . ')' . "\n" . '? (' . $self->$orig($instance) . ')' . "\n" - . ': (' . $instance . '->get_service(\'' . $self->name . '\')->get))'; + . ': (' . $instance . '->get_service(\'' . $self->name . '\')->get) }'; }; no Moose::Role; diff --git a/lib/MooseX/Bread/Board/Meta/Role/Instance.pm b/lib/MooseX/Bread/Board/Meta/Role/Instance.pm new file mode 100644 index 0000000..93648e2 --- /dev/null +++ b/lib/MooseX/Bread/Board/Meta/Role/Instance.pm @@ -0,0 +1,9 @@ +package MooseX::Bread::Board::Meta::Role::Instance; +use Moose::Role; + +# XXX: ugh, this should be settable at the attr level, fix this in moose +sub inline_get_is_lvalue { 0 } + +no Moose::Role; + +1; |