From 63ea2492d1b7676d5aae7c9dd7912ca78159c321 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 26 Mar 2011 13:44:35 +0000 Subject: many more BrowserObjects --- lib/DeWeave/EDO.pm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'lib/DeWeave/EDO.pm') diff --git a/lib/DeWeave/EDO.pm b/lib/DeWeave/EDO.pm index 3c32c84..81250d2 100644 --- a/lib/DeWeave/EDO.pm +++ b/lib/DeWeave/EDO.pm @@ -1,9 +1,10 @@ package DeWeave::EDO; use Moose; use namespace::autoclean; -use MooseX::Types::Moose qw(Int Str Num); +use MooseX::Types::Moose qw(Int Str Num Bool); use JSON::Any; use Try::Tiny; +use DeWeave::Exception::Deleted; extends 'DeWeave::WBO'; @@ -28,6 +29,12 @@ has hmac => ( is => 'ro', ); +has deleted => ( + isa => Bool, + required => 0, + is => 'ro', +); + around BUILDARGS => sub { my $orig = shift; my $class = shift; @@ -46,6 +53,15 @@ around BUILDARGS => sub { values %$extra_args; } + delete @$args{grep {!defined $args->{$_}} keys %$args}; + + $class->_debug_data('buildargs: ',$args); + + if ($args->{deleted}) { + delete $args->{__crypt}; + die DeWeave::Exception::Deleted->new({args=>$args}); + } + return $args; }; -- cgit v1.2.3