X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FAttribute.pm;h=c5482aa0425eef92d7a1c35d6498ceb4b7470687;hp=71a2bbdf178659ab4c40eb3d155210f13efa9a6d;hb=b06ce1f502945c13a52c503f1a651fe92c91c773;hpb=341a3046743c9d5dc1d83c9ef878e9a9bb190587 diff --git a/lib/Mouse/Meta/Attribute.pm b/lib/Mouse/Meta/Attribute.pm index 71a2bbd..c5482aa 100644 --- a/lib/Mouse/Meta/Attribute.pm +++ b/lib/Mouse/Meta/Attribute.pm @@ -156,48 +156,8 @@ sub new { return $self; } -# readers - -sub name { $_[0]->{name} } -sub associated_class { $_[0]->{associated_class} } - -sub accessor { $_[0]->{accessor} } -sub reader { $_[0]->{reader} } -sub writer { $_[0]->{writer} } -sub predicate { $_[0]->{predicate} } -sub clearer { $_[0]->{clearer} } -sub handles { $_[0]->{handles} } - -sub _is_metadata { $_[0]->{is} } -sub is_required { $_[0]->{required} } -sub default { $_[0]->{default} } -sub is_lazy { $_[0]->{lazy} } -sub is_lazy_build { $_[0]->{lazy_build} } -sub is_weak_ref { $_[0]->{weak_ref} } -sub init_arg { $_[0]->{init_arg} } -sub type_constraint { $_[0]->{type_constraint} } - -sub trigger { $_[0]->{trigger} } -sub builder { $_[0]->{builder} } -sub should_auto_deref { $_[0]->{auto_deref} } -sub should_coerce { $_[0]->{coerce} } - -# predicates - -sub has_accessor { exists $_[0]->{accessor} } -sub has_reader { exists $_[0]->{reader} } -sub has_writer { exists $_[0]->{writer} } -sub has_predicate { exists $_[0]->{predicate} } -sub has_clearer { exists $_[0]->{clearer} } -sub has_handles { exists $_[0]->{handles} } - -sub has_default { exists $_[0]->{default} } -sub has_type_constraint { exists $_[0]->{type_constraint} } -sub has_trigger { exists $_[0]->{trigger} } -sub has_builder { exists $_[0]->{builder} } - -sub has_read_method { exists $_[0]->{reader} || exists $_[0]->{accessor} } -sub has_write_method { exists $_[0]->{writer} || exists $_[0]->{accessor} } +sub has_read_method { $_[0]->has_reader || $_[0]->has_accessor } +sub has_write_method { $_[0]->has_writer || $_[0]->has_accessor } sub _create_args { # DEPRECATED $_[0]->{_create_args} = $_[1] if @_ > 1; @@ -214,21 +174,17 @@ sub interpolate_class{ my @traits; if(my $traits_ref = delete $args->{traits}){ - local $@; - eval{ - for (my $i = 0; $i < @{$traits_ref}; $i++) { - my $trait = Mouse::Util::resolve_metaclass_alias(Attribute => $traits_ref->[$i], trait => 1); + for (my $i = 0; $i < @{$traits_ref}; $i++) { + my $trait = Mouse::Util::resolve_metaclass_alias(Attribute => $traits_ref->[$i], trait => 1); - next if $class->does($trait); + next if $class->does($trait); - push @traits, $trait; + push @traits, $trait; - # are there options? - push @traits, $traits_ref->[++$i] - if ref($traits_ref->[$i+1]); - } - }; - warn "Fatal error in traits: $@" if _MOUSE_VERBOSE; + # are there options? + push @traits, $traits_ref->[++$i] + if ref($traits_ref->[$i+1]); + } if (@traits) { $class = Mouse::Meta::Class->create_anon_class( @@ -341,10 +297,10 @@ sub get_parent_args { # DEPRECATED sub get_read_method { - $_[0]->{reader} || $_[0]->{accessor} + $_[0]->reader || $_[0]->accessor } sub get_write_method { - $_[0]->{writer} || $_[0]->{accessor} + $_[0]->writer || $_[0]->accessor } sub get_read_method_ref{ @@ -404,19 +360,16 @@ sub _canonicalize_handles { } } - sub associate_method{ my ($attribute, $method) = @_; $attribute->{associated_methods}++; return; } -sub accessor_metaclass(){ 'Mouse::Meta::Method::Accessor' } - sub install_accessors{ my($attribute) = @_; - my $metaclass = $attribute->{associated_class}; + my $metaclass = $attribute->associated_class; my $accessor_class = $attribute->accessor_metaclass; foreach my $type(qw(accessor reader writer predicate clearer)){ @@ -468,7 +421,7 @@ Mouse::Meta::Attribute - The Mouse attribute metaclass =head1 VERSION -This document describes Mouse version 0.39 +This document describes Mouse version 0.40_01 =head1 METHODS