# it must be 'require', not 'use', because Mouse::Meta::Module depends on Mouse::Util
require Mouse::Meta::Module; # for the entities of metaclass cache utilities
-BEGIN {
+# aliases
+{
*class_of = \&Mouse::Meta::Module::_class_of;
*get_metaclass_by_name = \&Mouse::Meta::Module::_get_metaclass_by_name;
*get_all_metaclass_instances = \&Mouse::Meta::Module::_get_all_metaclass_instances;
*get_all_metaclass_names = \&Mouse::Meta::Module::_get_all_metaclass_names;
+ *Mouse::load_class = \&load_class;
+ *Mouse::is_class_loaded = \&is_class_loaded;
+
# is-a predicates
#generate_isa_predicate_for('Mouse::Meta::TypeConstraint' => 'is_a_type_constraint');
#generate_isa_predicate_for('Mouse::Meta::Class' => 'is_a_metaclass');
sub get_code_info;
sub get_code_package;
-# taken from Class/MOP.pm
-sub is_valid_class_name {
- my $class = shift;
-
- return 0 if ref($class);
- return 0 unless defined($class);
-
- return 1 if $class =~ /\A \w+ (?: :: \w+ )* \z/xms;
-
- return 0;
-}
+sub is_valid_class_name;
# taken from Class/MOP.pm
sub load_first_existing_class {
return undef if $is_class_loaded_cache{$class} ||= is_class_loaded($class);
- my $file = $class . '.pm';
- $file =~ s{::}{/}g;
+ $class =~ s{::}{/}g;
+ $class .= '.pm';
return do {
local $@;
- eval { require($file) };
+ eval { require $class };
$@;
};
}
my $e = _try_load_one_class($class);
Carp::confess "Could not load class ($class) because : $e" if $e;
- return 1;
+ return $class;
}
sub is_class_loaded;