use warnings;
use MooseX::AttributeHelpers;
+use MooseX::ClassAttribute::Role::Meta::Attribute;
use Scalar::Util qw( blessed );
use Moose::Role;
sub get_all_class_attributes
{
- shift->compute_all_applicable_class_attributes(@_);
-}
-
-sub compute_all_applicable_class_attributes
-{
my $self = shift;
my %attrs =
- map { my $meta = Class::MOP::Class->initialize($_);
- $meta->can('get_class_attribute_map')
+ map { my $meta = Class::MOP::class_of($_);
+ $meta && $meta->can('get_class_attribute_map')
? %{ $meta->get_class_attribute_map() }
: ()
}
return values %attrs;
}
+sub compute_all_applicable_class_attributes
+{
+ warn 'The compute_all_applicable_class_attributes method has been deprecated.'
+ . " Use get_all_class_attributes instead.\n";
+
+ shift->compute_all_applicable_class_attributes(@_);
+}
+
sub find_class_attribute_by_name
{
my $self = shift;
foreach my $class ( $self->linearized_isa() )
{
- my $meta = Class::MOP::Class->initialize($class);
+ my $meta = Class::MOP::class_of($class)
+ or next;
return $meta->get_class_attribute($name)
if $meta->can('has_class_attribute') && $meta->has_class_attribute($name);
my $self = shift;
my $name = shift;
- return '$' . $self->_class_attribute_var_name . '{' . $name . '}';
+ return '$' . $self->_class_attribute_var_name . '{"' . quotemeta($name) . '"}';
}
sub inline_get_class_slot_value
=head2 $meta->get_all_class_attributes()
-=head2 $meta->compute_all_applicable_class_attributes()
-
-These methods return a list of attribute objects for the class and all
+This method returns a list of attribute objects for the class and all
its parent classes.
=head2 $meta->find_class_attribute_by_name($name)