diff options
author | dakkar <dakkar@thenautilus.net> | 2011-03-26 13:44:35 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2011-03-26 13:44:35 +0000 |
commit | 63ea2492d1b7676d5aae7c9dd7912ca78159c321 (patch) | |
tree | 22ab40b24d45d55d34c93927408c38a9634eddf9 /lib/DeWeave/EDO.pm | |
parent | collections working, subclasses, strings (diff) | |
download | DeWeave-63ea2492d1b7676d5aae7c9dd7912ca78159c321.tar.gz DeWeave-63ea2492d1b7676d5aae7c9dd7912ca78159c321.tar.bz2 DeWeave-63ea2492d1b7676d5aae7c9dd7912ca78159c321.zip |
many more BrowserObjects
Diffstat (limited to 'lib/DeWeave/EDO.pm')
-rw-r--r-- | lib/DeWeave/EDO.pm | 18 |
1 files changed, 17 insertions, 1 deletions
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; }; |