Any-Moose

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

t/003-is_moose_loaded.t
t/004-x-modules-moose.t
t/004-x-modules-mouse.t
t/005-aliases-moose.t
t/005-aliases-mouse.t
t/010-use_mouse_roles.t
t/011-use_moose_roles.t
t/012-use_moose_util.t
t/012-use_mouse_util.t
t/020-strict.t
t/100-canonicalize-fragments.t
t/101-localize-errvar.t
t/lib/AnyMooseTest.pm
t/zzz-check-breaks.t
xt/author/00-compile.t
xt/author/eol.t
xt/author/kwalitee.t
xt/author/mojibake.t
xt/author/no-tabs.t
xt/author/pod-no404s.t
xt/author/pod-spell.t

lib/Any/Moose.pm  view on Meta::CPAN

        $@;
    };
    if ($e) {
        require Carp;
        Carp::croak("Cannot import Any::Moose: $e");
    }
    return;
}

sub any_moose {
    my $fragment = _canonicalize_fragment(shift);
    my $package  = shift || caller;

    # Mouse gets first dibs because it doesn't introspect existing classes

    my $backer = _backer_of($package) || '';

    if ($backer =~ /^Mouse/) {
        $fragment =~ s/^Moose/Mouse/;
        return $fragment;
    }

    return $fragment if $backer =~ /^Moose/;

    $fragment =~ s/^Moose/Mouse/ if mouse_is_preferred();
    return $fragment;
}

for my $name (qw/
    load_class
    is_class_loaded
    class_of
    get_metaclass_by_name
    get_all_metaclass_instances
    get_all_metaclass_names
    load_first_existing_class

lib/Any/Moose.pm  view on Meta::CPAN

sub moose_is_preferred { $PREFERRED eq 'Moose' }
sub mouse_is_preferred { $PREFERRED eq 'Mouse' }

sub _is_moose_loaded { exists $INC{'Moose.pm'} }

sub is_moose_loaded {
    warnings::warnif('deprecated', "Any::Moose::is_moose_loaded is deprecated. Please use Any::Moose::moose_is_preferred instead");
    goto \&_is_moose_loaded;
}

sub _canonicalize_fragment {
    my $fragment = shift;

    return 'Moose' if !$fragment;

    # any_moose("X::Types") -> any_moose("MooseX::Types")
    $fragment =~ s/^X::/MooseX::/;

    # any_moose("::Util") -> any_moose("Moose::Util")
    $fragment =~ s/^::/Moose::/;

    # any_moose("Mouse::Util") -> any_moose("Moose::Util")
    $fragment =~ s/^Mouse(X?)\b/Moose$1/;

    # any_moose("Util") -> any_moose("Moose::Util")
    $fragment =~ s/^(?!Moose)/Moose::/;

    return $fragment;
}

1;

__END__

=pod

=encoding UTF-8

t/100-canonicalize-fragments.t  view on Meta::CPAN

    'MouseX::Types'   => 'MooseX::Types',
    'X::Types'        => 'MooseX::Types',

    'Moose::X::Types' => 'Moose::X::Types',
    'Mouse::X::Types' => 'Moose::X::Types',
    '::X::Types'      => 'Moose::X::Types',
);

plan tests => @tests / 2;

while (my ($fragment, $expected) = splice @tests, 0, 2) {
    my $got = Any::Moose::_canonicalize_fragment($fragment);
    is($got, $expected, "Canonicalized '$fragment'");
}

xt/author/eol.t  view on Meta::CPAN

    't/003-is_moose_loaded.t',
    't/004-x-modules-moose.t',
    't/004-x-modules-mouse.t',
    't/005-aliases-moose.t',
    't/005-aliases-mouse.t',
    't/010-use_mouse_roles.t',
    't/011-use_moose_roles.t',
    't/012-use_moose_util.t',
    't/012-use_mouse_util.t',
    't/020-strict.t',
    't/100-canonicalize-fragments.t',
    't/101-localize-errvar.t',
    't/lib/AnyMooseTest.pm',
    't/zzz-check-breaks.t',
    'xt/author/00-compile.t',
    'xt/author/eol.t',
    'xt/author/kwalitee.t',
    'xt/author/mojibake.t',
    'xt/author/no-tabs.t',
    'xt/author/pod-no404s.t',
    'xt/author/pod-spell.t',

xt/author/no-tabs.t  view on Meta::CPAN

    't/003-is_moose_loaded.t',
    't/004-x-modules-moose.t',
    't/004-x-modules-mouse.t',
    't/005-aliases-moose.t',
    't/005-aliases-mouse.t',
    't/010-use_mouse_roles.t',
    't/011-use_moose_roles.t',
    't/012-use_moose_util.t',
    't/012-use_mouse_util.t',
    't/020-strict.t',
    't/100-canonicalize-fragments.t',
    't/101-localize-errvar.t',
    't/lib/AnyMooseTest.pm',
    't/zzz-check-breaks.t',
    'xt/author/00-compile.t',
    'xt/author/eol.t',
    'xt/author/kwalitee.t',
    'xt/author/mojibake.t',
    'xt/author/no-tabs.t',
    'xt/author/pod-no404s.t',
    'xt/author/pod-spell.t',



( run in 1.156 second using v1.01-cache-2.11-cpan-364913b4093 )