sub action_namespace {
my ( $self, $c ) = @_;
- return $self->config->{namespace} if exists $self->config->{namespace};
+ my $hash = (ref $self ? $self : $self->config);
+ return $hash->{namespace} if exists $hash->{namespace};
return Catalyst::Utils::class2prefix( ref($self) || $self,
$c->config->{case_sensitive} )
|| '';
sub _parse_attrs {
my ( $self, $c, $name, @attrs ) = @_;
- my %attributes;
+
+ my %raw_attributes;
+
foreach my $attr (@attrs) {
# Parse out :Foo(bar) into Foo => bar etc (and arrayify)
if ( defined $value ) {
( $value =~ s/^'(.*)'$/$1/ ) || ( $value =~ s/^"(.*)"/$1/ );
}
+ push( @{ $raw_attributes{$key} }, $value );
+ }
+ }
+
+ my %final_attributes;
+
+ foreach my $key (keys %raw_attributes) {
+
+ foreach my $value (@{$raw_attributes{$key}}) {
+
my $meth = "_parse_${key}_attr";
if ( $self->can($meth) ) {
( $key, $value ) = $self->$meth( $c, $name, $value );
}
- push( @{ $attributes{$key} }, $value );
+ push( @{ $final_attributes{$key} }, $value );
}
}
- return \%attributes;
+
+ return \%final_attributes;
}
sub _parse_Global_attr {