From 88d791a59eebaac6080c191495f77280f2733e6f Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Mon, 5 Dec 2011 18:31:12 +0000 Subject: =?UTF-8?q?bump=C3=972?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Changes | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Changes b/Changes index 9c43f0f..72cdbeb 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,8 @@ Revision history for Data::MultiValued {{$NEXT}} + +0.0.1_3 2011-12-05 18:30:47 Europe/London - use Pod::Weaver 0.0.1_2 2011-11-30 11:01:47 Europe/London -- cgit v1.2.3 From db5965c30bab012b51fdf3d308848eb0521385ab Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Mon, 19 Dec 2011 16:56:04 +0000 Subject: autoclean & immutable where possible --- lib/Data/MultiValued/AttributeTrait.pm | 1 + lib/Data/MultiValued/AttributeTrait/Ranges.pm | 1 + lib/Data/MultiValued/AttributeTrait/Tags.pm | 1 + lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm | 1 + lib/Data/MultiValued/RangeContainer.pm | 3 +++ lib/Data/MultiValued/Ranges.pm | 3 +++ lib/Data/MultiValued/TagContainer.pm | 3 +++ lib/Data/MultiValued/TagContainerForRanges.pm | 3 +++ lib/Data/MultiValued/Tags.pm | 3 +++ lib/Data/MultiValued/TagsAndRanges.pm | 3 +++ lib/Data/MultiValued/UglySerializationHelperRole.pm | 1 + 11 files changed, 23 insertions(+) diff --git a/lib/Data/MultiValued/AttributeTrait.pm b/lib/Data/MultiValued/AttributeTrait.pm index 78ae31e..eb8cbd3 100644 --- a/lib/Data/MultiValued/AttributeTrait.pm +++ b/lib/Data/MultiValued/AttributeTrait.pm @@ -1,5 +1,6 @@ package Data::MultiValued::AttributeTrait; use Moose::Role; +use namespace::autoclean; use Data::MultiValued::AttributeAccessors; use MooseX::Types::Moose qw(Str); use Try::Tiny; diff --git a/lib/Data/MultiValued/AttributeTrait/Ranges.pm b/lib/Data/MultiValued/AttributeTrait/Ranges.pm index 3d3b3f8..2b9a0ff 100644 --- a/lib/Data/MultiValued/AttributeTrait/Ranges.pm +++ b/lib/Data/MultiValued/AttributeTrait/Ranges.pm @@ -1,5 +1,6 @@ package Data::MultiValued::AttributeTrait::Ranges; use Moose::Role; +use namespace::autoclean; use Data::MultiValued::Ranges; with 'Data::MultiValued::AttributeTrait'; diff --git a/lib/Data/MultiValued/AttributeTrait/Tags.pm b/lib/Data/MultiValued/AttributeTrait/Tags.pm index d671ed4..2ea848e 100644 --- a/lib/Data/MultiValued/AttributeTrait/Tags.pm +++ b/lib/Data/MultiValued/AttributeTrait/Tags.pm @@ -1,5 +1,6 @@ package Data::MultiValued::AttributeTrait::Tags; use Moose::Role; +use namespace::autoclean; use Data::MultiValued::Tags; with 'Data::MultiValued::AttributeTrait'; diff --git a/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm b/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm index 0bb87ef..36b7cf9 100644 --- a/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm +++ b/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm @@ -1,5 +1,6 @@ package Data::MultiValued::AttributeTrait::TagsAndRanges; use Moose::Role; +use namespace::autoclean; use Data::MultiValued::TagsAndRanges; with 'Data::MultiValued::AttributeTrait'; diff --git a/lib/Data/MultiValued/RangeContainer.pm b/lib/Data/MultiValued/RangeContainer.pm index 8dd9933..53b6c4c 100644 --- a/lib/Data/MultiValued/RangeContainer.pm +++ b/lib/Data/MultiValued/RangeContainer.pm @@ -1,5 +1,6 @@ package Data::MultiValued::RangeContainer; use Moose; +use namespace::autoclean; use Moose::Util::TypeConstraints; use MooseX::Types::Moose qw(Num Str Any Undef ArrayRef); use MooseX::Types::Structured qw(Dict); @@ -284,4 +285,6 @@ sub all_ranges { return map { [ $_->{from}, $_->{to} ] } @{$self->_storage}; } +__PACKAGE__->meta->make_immutable(); + 1; diff --git a/lib/Data/MultiValued/Ranges.pm b/lib/Data/MultiValued/Ranges.pm index aed29f4..5f193ba 100644 --- a/lib/Data/MultiValued/Ranges.pm +++ b/lib/Data/MultiValued/Ranges.pm @@ -1,5 +1,6 @@ package Data::MultiValued::Ranges; use Moose; +use namespace::autoclean; use MooseX::Params::Validate; use Moose::Util::TypeConstraints; use MooseX::Types::Moose qw(Num Str Undef Any); @@ -185,4 +186,6 @@ L, L =cut +__PACKAGE__->meta->make_immutable(); + 1; diff --git a/lib/Data/MultiValued/TagContainer.pm b/lib/Data/MultiValued/TagContainer.pm index fe1a794..ca9093f 100644 --- a/lib/Data/MultiValued/TagContainer.pm +++ b/lib/Data/MultiValued/TagContainer.pm @@ -1,5 +1,6 @@ package Data::MultiValued::TagContainer; use Moose; +use namespace::autoclean; use Moose::Util::TypeConstraints; use MooseX::Types::Moose qw(HashRef); use Data::MultiValued::Exceptions; @@ -168,4 +169,6 @@ sub _create_new_inferior { return {}; } +__PACKAGE__->meta->make_immutable(); + 1; diff --git a/lib/Data/MultiValued/TagContainerForRanges.pm b/lib/Data/MultiValued/TagContainerForRanges.pm index 8e3c2b9..ecafc1e 100644 --- a/lib/Data/MultiValued/TagContainerForRanges.pm +++ b/lib/Data/MultiValued/TagContainerForRanges.pm @@ -1,5 +1,6 @@ package Data::MultiValued::TagContainerForRanges; use Moose; +use namespace::autoclean; use MooseX::Types::Moose qw(HashRef); use Moose::Util::TypeConstraints; use Data::MultiValued::RangeContainer; @@ -77,4 +78,6 @@ sub _as_hash { }; } +__PACKAGE__->meta->make_immutable(); + 1; diff --git a/lib/Data/MultiValued/Tags.pm b/lib/Data/MultiValued/Tags.pm index 640db40..8ba06f3 100644 --- a/lib/Data/MultiValued/Tags.pm +++ b/lib/Data/MultiValued/Tags.pm @@ -1,5 +1,6 @@ package Data::MultiValued::Tags; use Moose; +use namespace::autoclean; use MooseX::Params::Validate; use Moose::Util::TypeConstraints; use MooseX::Types::Moose qw(Num Str Undef Any); @@ -143,4 +144,6 @@ L, L =cut +__PACKAGE__->meta->make_immutable(); + 1; diff --git a/lib/Data/MultiValued/TagsAndRanges.pm b/lib/Data/MultiValued/TagsAndRanges.pm index 085b8c1..2f06452 100644 --- a/lib/Data/MultiValued/TagsAndRanges.pm +++ b/lib/Data/MultiValued/TagsAndRanges.pm @@ -1,5 +1,6 @@ package Data::MultiValued::TagsAndRanges; use Moose; +use namespace::autoclean; use MooseX::Params::Validate; use Moose::Util::TypeConstraints; use MooseX::Types::Moose qw(Num Str Undef Any); @@ -155,4 +156,6 @@ sub _as_hash { return {_storage=>$ret}; } +__PACKAGE__->meta->make_immutable(); + 1; diff --git a/lib/Data/MultiValued/UglySerializationHelperRole.pm b/lib/Data/MultiValued/UglySerializationHelperRole.pm index 19f1268..ebf783a 100644 --- a/lib/Data/MultiValued/UglySerializationHelperRole.pm +++ b/lib/Data/MultiValued/UglySerializationHelperRole.pm @@ -1,5 +1,6 @@ package Data::MultiValued::UglySerializationHelperRole; use Moose::Role; +use namespace::autoclean; # ABSTRACT: only use this if you know what you're doing -- cgit v1.2.3 From a2d82fc857f1f353e44e859f2e3ab7e5d0d8406f Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Mon, 19 Dec 2011 17:30:14 +0000 Subject: hack to stop leaks via exceptions --- lib/Data/MultiValued/AttributeTrait.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/Data/MultiValued/AttributeTrait.pm b/lib/Data/MultiValued/AttributeTrait.pm index eb8cbd3..b2876b9 100644 --- a/lib/Data/MultiValued/AttributeTrait.pm +++ b/lib/Data/MultiValued/AttributeTrait.pm @@ -271,6 +271,8 @@ sub load_multi_value { unless (ref($_) && $_->isa('Data::MultiValued::Exceptions::NotFound')) { die $_; } + # XXX FIXME horrible hack to prevent StackTrace::Auto from leaking + delete $_->{stack_trace}; $found = 0; }; -- cgit v1.2.3 From f39fe87635aa24eee61d89092fe0f604237822d5 Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Tue, 20 Dec 2011 09:58:24 +0000 Subject: lighter exception classes these ones don't leak --- lib/Data/MultiValued/AttributeTrait.pm | 2 -- lib/Data/MultiValued/Exceptions.pm | 28 ++++++++++++++-------------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/lib/Data/MultiValued/AttributeTrait.pm b/lib/Data/MultiValued/AttributeTrait.pm index b2876b9..eb8cbd3 100644 --- a/lib/Data/MultiValued/AttributeTrait.pm +++ b/lib/Data/MultiValued/AttributeTrait.pm @@ -271,8 +271,6 @@ sub load_multi_value { unless (ref($_) && $_->isa('Data::MultiValued::Exceptions::NotFound')) { die $_; } - # XXX FIXME horrible hack to prevent StackTrace::Auto from leaking - delete $_->{stack_trace}; $found = 0; }; diff --git a/lib/Data/MultiValued/Exceptions.pm b/lib/Data/MultiValued/Exceptions.pm index 6495780..84d6ffa 100644 --- a/lib/Data/MultiValued/Exceptions.pm +++ b/lib/Data/MultiValued/Exceptions.pm @@ -18,7 +18,15 @@ containing the value that was not found. package Data::MultiValued::Exceptions::NotFound;{ use Moose; -extends 'Throwable::Error'; +with 'Throwable'; +use overload + q{""} => 'as_string', + fallback => 1; + +has message => ( + is => 'ro', + required => 1, +); has value => ( is => 'ro', @@ -29,7 +37,6 @@ sub as_string { my ($self) = @_; my $str = $self->message . ($self->value // ''); - $str .= "\n\n" . $self->stack_trace->as_string; return $str; } @@ -42,8 +49,6 @@ tags. Stringifies to: tag not found: $value - $stack_trace - =cut package Data::MultiValued::Exceptions::TagNotFound;{ @@ -62,8 +67,6 @@ ranges. Stringifies to: no range found for value: $value - $stack_trace - =cut package Data::MultiValued::Exceptions::RangeNotFound;{ @@ -84,24 +87,21 @@ Stringifies to: invalid range: $from, $to - $stack_trace - =cut package Data::MultiValued::Exceptions::BadRange;{ use Moose; -extends 'Throwable::Error'; +with 'Throwable'; +use overload + q{""} => 'as_string', + fallback => 1; has ['from','to'] => ( is => 'ro', required => 1 ); -has '+message' => ( - default => 'invalid range: ', -); sub as_string { my ($self) = @_; - my $str = $self->message . $self->from . ', ' . $self->to; - $str .= "\n\n" . $self->stack_trace->as_string; + my $str = 'invalid range: ' . $self->from . ', ' . $self->to; return $str; } -- cgit v1.2.3