Codebase list libany-moose-perl / 0e02cd4
[svn-upgrade] Integrating new upstream version, libany-moose-perl (0.08) Ryan Niebur 14 years ago
7 changed file(s) with 28 addition(s) and 16 deletion(s). Raw diff Collapse all Expand all
0 0.08 Mon 18 May 2009
1 * Add moose_is_preferred and mouse_is_preferred functions for when you
2 need to care about which backend is in use (Sartak)
3 * Deprecate the internal is_moose_loaded in favor of moose_is_preferred
4 (Sartak)
5
06 0.07 Fri, 10 Apr 2009
17 * Depend on Mouse 0.20 for better compatibility with Moose >= 0.74 (rafl).
28
99 name: Any-Moose
1010 requires:
1111 Mouse: 0.20
12 version: 0.07
12 version: 0.08
88 NAME => 'Any::Moose',
99 AUTHOR => 'Shawn\ M\ Moore\ \<sartak\@bestpractical\.com\>\,\ Florian\ Ragwitz\ \<rafl\@debian\.org\>\,\ Stevan\ Little\ \<stevan\@iinteractive\.com\>\,\ Tokuhiro\ Matsuno\ \<tokuhirom\@gmail\.com\>',
1010 ABSTRACT => 'use Moose or Mouse modules',
11 VERSION => '0.07',
11 VERSION => '0.08',
1212 EXE_FILES => [ qw() ],
1313 (eval { ExtUtils::MakeMaker->VERSION(6.21) } ? (LICENSE => 'perl') : ()),
1414 PREREQ_PM => {
00
11
22 This archive contains the distribution Any-Moose, version
3 0.07:
3 0.08:
44
55 use Moose or Mouse modules
66
00 name = Any-Moose
1 version = 0.07
1 version = 0.08
22 author = Shawn M Moore <sartak@bestpractical.com>
33 author = Florian Ragwitz <rafl@debian.org>
44 author = Stevan Little <stevan@iinteractive.com>
00 package Any::Moose;
1 our $VERSION = '0.07';
1 our $VERSION = '0.08';
22
33 # ABSTRACT: use Moose or Mouse modules
44
5656 return 'Mouse::Role' if $INC{'Mouse/Role.pm'}
5757 && Mouse::Meta::Role->_metaclass_cache($pkg);
5858
59 if (is_moose_loaded()) {
59 if (_is_moose_loaded()) {
6060 my $meta = Class::MOP::get_metaclass_by_name($pkg);
6161 if ($meta) {
6262 return 'Moose::Role' if $meta->isa('Moose::Meta::Role');
116116 # If we're loading up the backing class...
117117 if ($fragment eq 'Moose' || $fragment eq 'Moose::Role') {
118118 if (!$PREFERRED) {
119 $PREFERRED = is_moose_loaded() ? 'Moose' : 'Mouse';
119 $PREFERRED = _is_moose_loaded() ? 'Moose' : 'Mouse';
120120
121121 (my $file = $PREFERRED . '.pm') =~ s{::}{/}g;
122122 require $file;
123123 }
124124
125 $fragment =~ s/^Moose/Mouse/ if $PREFERRED eq 'Mouse';
125 $fragment =~ s/^Moose/Mouse/ if mouse_is_preferred();
126126 return $fragment;
127127 }
128128
132132
133133 sub load_class {
134134 my ($class_name) = @_;
135 return Class::MOP::load_class($class_name)
136 if is_moose_loaded();
135 return Class::MOP::load_class($class_name) if moose_is_preferred();
137136 return Mouse::load_class($class_name);
138137 }
139138
140139 sub is_class_loaded {
141140 my ($class_name) = @_;
142 return Class::MOP::is_class_loaded($class_name)
143 if is_moose_loaded();
141 return Class::MOP::is_class_loaded($class_name) if moose_is_preferred();
144142 return Mouse::is_class_loaded($class_name);
145143 }
146144
147 sub is_moose_loaded { !!$INC{'Class/MOP.pm'} }
145 sub moose_is_preferred { $PREFERRED eq 'Moose' }
146 sub mouse_is_preferred { $PREFERRED eq 'Mouse' }
147
148 sub _is_moose_loaded { !!$INC{'Class/MOP.pm'} }
149
150 sub is_moose_loaded {
151 Carp::carp("Any::Moose::is_moose_loaded is deprecated. Please use Any::Moose::moose_is_preferred instead");
152 goto \&_is_moose_loaded;
153 }
148154
149155 sub _canonicalize_fragment {
150156 my $fragment = shift;
179185
180186 =head1 VERSION
181187
182 version 0.07
188 version 0.08
183189
184190 =head1 SYNOPSIS
185191
77 package Test;
88 BEGIN {
99 ::use_ok('Any::Moose');
10 ::ok(!Any::Moose::is_moose_loaded(), '... Moose is not loaded');
10 ::ok(!Any::Moose::_is_moose_loaded(), '... Moose is not loaded');
1111 }
1212
1313 {
1717 eval 'use Moose';
1818 ::skip 'Moose not installed', 1 if $@;
1919
20 ::ok(Any::Moose::is_moose_loaded(), '... Moose is loaded');
20 ::ok(Any::Moose::_is_moose_loaded(), '... Moose is loaded');
2121 }
2222 }
2323 }