Codebase list libmoose-perl / 38f4143
[svn-upgrade] Integrating new upstream version, libmoose-perl (1.03) Ansgar Burchardt 14 years ago
68 changed file(s) with 151 addition(s) and 74 deletion(s). Raw diff Collapse all Expand all
00 Also see Moose::Manual::Delta for more details of, and workarounds
11 for, noteworthy changes.
2
3 1.03 Thu, May 06, 2010
4
5 [NEW FEATURES]
6
7 * Allow specifying required versions when setting superclasses or applying
8 roles (Florian Ragwitz).
29
310 1.02 Sat, May 01, 2010
411
2121 - xt
2222 requires:
2323 Carp: 0
24 Class::MOP: 0.98
24 Class::MOP: 1.01
2525 Data::OptList: 0
2626 List::MoreUtils: 0.12
2727 Scalar::Util: 1.19
3232 perl: 5.8.1
3333 resources:
3434 license: http://dev.perl.org/licenses/
35 version: 1.02
35 version: 1.03
1212 license 'perl';
1313
1414 requires 'Carp';
15 requires 'Class::MOP' => '0.98';
15 requires 'Class::MOP' => '1.01';
1616 requires 'Data::OptList' => '0';
1717 requires 'List::MoreUtils' => '0.12';
1818 requires 'Scalar::Util' => '1.19';
0 Moose version 1.02
0 Moose version 1.03
11 ===========================
22
33 See the individual module documentation for more information
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 $VERSION = eval $VERSION;
77 our $AUTHORITY = 'cpan:STEVAN';
88
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 $VERSION = eval $VERSION;
77 our $AUTHORITY = 'cpan:STEVAN';
88
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 $VERSION = eval $VERSION;
77 our $AUTHORITY = 'cpan:STEVAN';
88
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 our $XS_VERSION = $VERSION;
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
33 use List::Util;
44 use List::MoreUtils;
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
11 package Moose::Meta::Attribute::Native::MethodProvider::Bool;
22 use Moose::Role;
33
4 our $VERSION = '1.02';
4 our $VERSION = '1.03';
55 $VERSION = eval $VERSION;
66 our $AUTHORITY = 'cpan:STEVAN';
77
00 package Moose::Meta::Attribute::Native::MethodProvider::Code;
11 use Moose::Role;
22
3 our $VERSION = '1.02';
3 our $VERSION = '1.03';
44 $VERSION = eval $VERSION;
55 our $AUTHORITY = 'cpan:STEVAN';
66
11 package Moose::Meta::Attribute::Native::MethodProvider::Counter;
22 use Moose::Role;
33
4 our $VERSION = '1.02';
4 our $VERSION = '1.03';
55 $VERSION = eval $VERSION;
66 our $AUTHORITY = 'cpan:STEVAN';
77
00 package Moose::Meta::Attribute::Native::MethodProvider::Hash;
11 use Moose::Role;
22
3 our $VERSION = '1.02';
3 our $VERSION = '1.03';
44 $VERSION = eval $VERSION;
55 our $AUTHORITY = 'cpan:STEVAN';
66
00 package Moose::Meta::Attribute::Native::MethodProvider::String;
11 use Moose::Role;
22
3 our $VERSION = '1.02';
3 our $VERSION = '1.03';
44 $VERSION = eval $VERSION;
55 our $AUTHORITY = 'cpan:STEVAN';
66
11 package Moose::Meta::Attribute::Native::Trait::Array;
22 use Moose::Role;
33
4 our $VERSION = '1.02';
4 our $VERSION = '1.03';
55 $VERSION = eval $VERSION;
66 our $AUTHORITY = 'cpan:STEVAN';
77
11 use Moose::Role;
22 use Moose::Meta::Attribute::Native::MethodProvider::Bool;
33
4 our $VERSION = '1.02';
4 our $VERSION = '1.03';
55 $VERSION = eval $VERSION;
66 our $AUTHORITY = 'cpan:STEVAN';
77
11 use Moose::Role;
22 use Moose::Meta::Attribute::Native::MethodProvider::Code;
33
4 our $VERSION = '1.02';
4 our $VERSION = '1.03';
55 $VERSION = eval $VERSION;
66 our $AUTHORITY = 'cpan:STEVAN';
77
11 package Moose::Meta::Attribute::Native::Trait::Counter;
22 use Moose::Role;
33
4 our $VERSION = '1.02';
4 our $VERSION = '1.03';
55 $VERSION = eval $VERSION;
66 our $AUTHORITY = 'cpan:STEVAN';
77
11 package Moose::Meta::Attribute::Native::Trait::Hash;
22 use Moose::Role;
33
4 our $VERSION = '1.02';
4 our $VERSION = '1.03';
55 $VERSION = eval $VERSION;
66 our $AUTHORITY = 'cpan:STEVAN';
77
00 package Moose::Meta::Attribute::Native::Trait::Number;
11 use Moose::Role;
22
3 our $VERSION = '1.02';
3 our $VERSION = '1.03';
44 $VERSION = eval $VERSION;
55 our $AUTHORITY = 'cpan:STEVAN';
66
00 package Moose::Meta::Attribute::Native::Trait::String;
11 use Moose::Role;
22
3 our $VERSION = '1.02';
3 our $VERSION = '1.03';
44 $VERSION = eval $VERSION;
55 our $AUTHORITY = 'cpan:STEVAN';
66
22 use Moose::Role;
33 use Moose::Util::TypeConstraints;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 $VERSION = eval $VERSION;
77 our $AUTHORITY = 'cpan:STEVAN';
88
00 package Moose::Meta::Attribute::Native;
11
2 our $VERSION = '1.02';
2 our $VERSION = '1.03';
33 $VERSION = eval $VERSION;
44 our $AUTHORITY = 'cpan:STEVAN';
55
88 use Try::Tiny;
99 use overload ();
1010
11 our $VERSION = '1.02';
11 our $VERSION = '1.03';
1212 our $AUTHORITY = 'cpan:STEVAN';
1313
1414 use Moose::Meta::Method::Accessor;
44
55 use Class::MOP;
66
7 our $VERSION = '1.02';
7 our $VERSION = '1.03';
88 $VERSION = eval $VERSION;
99 our $AUTHORITY = 'cpan:STEVAN';
1010
66 use Class::MOP;
77
88 use Carp ();
9 use Data::OptList;
910 use List::Util qw( first );
1011 use List::MoreUtils qw( any all uniq first_index );
1112 use Scalar::Util 'weaken', 'blessed';
1213
13 our $VERSION = '1.02';
14 our $VERSION = '1.03';
1415 $VERSION = eval $VERSION;
1516 our $AUTHORITY = 'cpan:STEVAN';
1617
278279
279280 sub superclasses {
280281 my $self = shift;
281 my @supers = @_;
282 foreach my $super (@supers) {
283 Class::MOP::load_class($super);
284 my $meta = Class::MOP::class_of($super);
285 $self->throw_error("You cannot inherit from a Moose Role ($super)")
282 my $supers = Data::OptList::mkopt(\@_);
283 foreach my $super (@{ $supers }) {
284 my ($name, $opts) = @{ $super };
285 Class::MOP::load_class($name, $opts);
286 my $meta = Class::MOP::class_of($name);
287 $self->throw_error("You cannot inherit from a Moose Role ($name)")
286288 if $meta && $meta->isa('Moose::Meta::Role')
287289 }
288 return $self->SUPER::superclasses(@supers);
290 return $self->SUPER::superclasses(map { $_->[0] } @{ $supers });
289291 }
290292
291293 ### ---------------------------------------------
722724 cache => 1,
723725 );
724726
727 Each entry in both the C<superclasses> and the C<roles> option can be
728 followed by a hash reference with arguments. The C<supperclasses>
729 option can be supplied with a L<-version|Class::MOP/Class Loading
730 Options> option that ensures the loaded superclass satisfies the
731 required version. The C<role> option also takes the C<-version> as an
732 argument, but the option hash reference can also contain any other
733 role relevant values like exclusions or parameterized role arguments.
734
725735 =item B<< $metaclass->make_immutable(%options) >>
726736
727737 This overrides the parent's method to add a few options. Specifically,
735745
736746 This overrides the parent's method in order to add support for
737747 attribute triggers.
748
749 =item B<< $metaclass->superclasses(@superclasses) >>
750
751 This is the accessor allowing you to read or change the parents of
752 the class.
753
754 Each superclass can be followed by a hash reference containing a
755 L<-version|Class::MOP/Class Loading Options> value. If the version
756 requirement is not satisfied an error will be thrown.
738757
739758 =item B<< $metaclass->add_override_method_modifier($name, $sub) >>
740759
33 use strict;
44 use warnings;
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
33 use strict;
44 use warnings;
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 $VERSION = eval $VERSION;
77 our $AUTHORITY = 'cpan:STEVAN';
88
55
66 use Scalar::Util 'blessed', 'weaken', 'looks_like_number', 'refaddr';
77
8 our $VERSION = '1.02';
8 our $VERSION = '1.03';
99 our $AUTHORITY = 'cpan:STEVAN';
1010
1111 use base 'Moose::Meta::Method',
66 use Carp 'confess';
77 use Scalar::Util 'blessed', 'weaken';
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 $VERSION = eval $VERSION;
1111 our $AUTHORITY = 'cpan:STEVAN';
1212
77 use Scalar::Util 'blessed', 'weaken';
88 use Try::Tiny ();
99
10 our $VERSION = '1.02';
10 our $VERSION = '1.03';
1111 $VERSION = eval $VERSION;
1212 our $AUTHORITY = 'cpan:STEVAN';
1313
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 $VERSION = eval $VERSION;
77 our $AUTHORITY = 'cpan:STEVAN';
88
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 $VERSION = eval $VERSION;
77 our $AUTHORITY = 'cpan:STEVAN';
88
22 use strict;
33 use warnings;
44
5 our $VERSION = '1.02';
5 our $VERSION = '1.03';
66 our $AUTHORITY = 'cpan:STEVAN';
77
88 use base 'Class::MOP::Mixin::AttributeCore';
77
88 use Moose::Meta::Role::Composite;
99
10 our $VERSION = '1.02';
10 our $VERSION = '1.03';
1111 $VERSION = eval $VERSION;
1212 our $AUTHORITY = 'cpan:STEVAN';
1313
66 use Moose::Util 'english_list';
77 use Scalar::Util 'weaken', 'blessed';
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 $VERSION = eval $VERSION;
1111 our $AUTHORITY = 'cpan:STEVAN';
1212
55
66 use Scalar::Util 'blessed';
77
8 our $VERSION = '1.02';
8 our $VERSION = '1.03';
99 $VERSION = eval $VERSION;
1010 our $AUTHORITY = 'cpan:STEVAN';
1111
55
66 use Scalar::Util 'blessed';
77
8 our $VERSION = '1.02';
8 our $VERSION = '1.03';
99 $VERSION = eval $VERSION;
1010 our $AUTHORITY = 'cpan:STEVAN';
1111
33 use warnings;
44 use metaclass;
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
66 use List::MoreUtils 'all';
77 use Scalar::Util 'blessed', 'weaken';
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 our $AUTHORITY = 'cpan:STEVAN';
1111
1212 use base 'Moose::Meta::Mixin::AttributeCore';
55
66 use Scalar::Util 'blessed';
77
8 our $VERSION = '1.02';
8 our $VERSION = '1.03';
99 $VERSION = eval $VERSION;
1010 our $AUTHORITY = 'cpan:STEVAN';
1111
77
88 use base qw(Moose::Meta::Role::Method::Required);
99
10 our $VERSION = '1.02';
10 our $VERSION = '1.03';
1111 $VERSION = eval $VERSION;
1212 our $AUTHORITY = 'cpan:STEVAN';
1313
99
1010 use base qw(Class::MOP::Object);
1111
12 our $VERSION = '1.02';
12 our $VERSION = '1.03';
1313 $VERSION = eval $VERSION;
1414 our $AUTHORITY = 'cpan:STEVAN';
1515
33 use strict;
44 use warnings;
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
88 use Carp 'confess';
99 use Devel::GlobalDestruction 'in_global_destruction';
1010
11 our $VERSION = '1.02';
11 our $VERSION = '1.03';
1212 $VERSION = eval $VERSION;
1313 our $AUTHORITY = 'cpan:STEVAN';
1414
66
77 use Scalar::Util 'blessed';
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 $VERSION = eval $VERSION;
1111 our $AUTHORITY = 'cpan:STEVAN';
1212
77 use Moose::Meta::Attribute;
88 use Moose::Util::TypeConstraints ();
99
10 our $VERSION = '1.02';
10 our $VERSION = '1.03';
1111 $VERSION = eval $VERSION;
1212 our $AUTHORITY = 'cpan:STEVAN';
1313
66 use Scalar::Util 'blessed';
77 use Moose::Util::TypeConstraints ();
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 $VERSION = eval $VERSION;
1111 our $AUTHORITY = 'cpan:STEVAN';
1212
99
1010 use Moose::Util::TypeConstraints ();
1111
12 our $VERSION = '1.02';
12 our $VERSION = '1.03';
1313 $VERSION = eval $VERSION;
1414 our $AUTHORITY = 'cpan:STEVAN';
1515
55
66 use Moose::Util::TypeConstraints ();
77
8 our $VERSION = '1.02';
8 our $VERSION = '1.03';
99 $VERSION = eval $VERSION;
1010 our $AUTHORITY = 'cpan:STEVAN';
1111
33 use warnings;
44 use metaclass;
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
77 use Moose::Util::TypeConstraints;
88 use Moose::Meta::TypeConstraint::Parameterizable;
99
10 our $VERSION = '1.02';
10 our $VERSION = '1.03';
1111 $VERSION = eval $VERSION;
1212 our $AUTHORITY = 'cpan:STEVAN';
1313
66
77 use Scalar::Util 'blessed';
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 $VERSION = eval $VERSION;
1111 our $AUTHORITY = 'cpan:STEVAN';
1212
66 use Scalar::Util 'blessed';
77 use Moose::Util::TypeConstraints ();
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 $VERSION = eval $VERSION;
1111 our $AUTHORITY = 'cpan:STEVAN';
1212
88
99 use List::Util qw(first);
1010
11 our $VERSION = '1.02';
11 our $VERSION = '1.03';
1212 $VERSION = eval $VERSION;
1313 our $AUTHORITY = 'cpan:STEVAN';
1414
1212
1313 use base qw(Class::MOP::Object);
1414
15 our $VERSION = '1.02';
15 our $VERSION = '1.03';
1616 $VERSION = eval $VERSION;
1717 our $AUTHORITY = 'cpan:STEVAN';
1818
1111 use if ( not our $__mx_is_compiled ), 'Moose::Meta::Class';
1212 use if ( not our $__mx_is_compiled ), metaclass => 'Moose::Meta::Class';
1313
14 our $VERSION = '1.02';
14 our $VERSION = '1.03';
1515 $VERSION = eval $VERSION;
1616 our $AUTHORITY = 'cpan:STEVAN';
1717
66
77 use Sub::Exporter;
88
9 our $VERSION = '1.02';
9 our $VERSION = '1.03';
1010 $VERSION = eval $VERSION;
1111 our $AUTHORITY = 'cpan:STEVAN';
1212
33 use warnings;
44 use Scalar::Util 'blessed';
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
55 use Class::MOP;
66 use Scalar::Util 'blessed', 'looks_like_number';
77
8 our $VERSION = '1.02';
8 our $VERSION = '1.03';
99 $VERSION = eval $VERSION;
1010 our $AUTHORITY = 'cpan:STEVAN';
1111
55 use Scalar::Util qw( blessed reftype );
66 use Moose::Exporter;
77
8 our $VERSION = '1.02';
8 our $VERSION = '1.03';
99 $VERSION = eval $VERSION;
1010 our $AUTHORITY = 'cpan:STEVAN';
1111
77 use Scalar::Util 'blessed';
88 use Class::MOP 0.60;
99
10 our $VERSION = '1.02';
10 our $VERSION = '1.03';
1111 $VERSION = eval $VERSION;
1212 our $AUTHORITY = 'cpan:STEVAN';
1313
104104 $meta = $role->[0];
105105 }
106106 else {
107 Class::MOP::load_class( $role->[0] );
107 Class::MOP::load_class( $role->[0] , $role->[1] );
108108 $meta = Class::MOP::class_of( $role->[0] );
109109 }
110110
33
44 use 5.008;
55
6 our $VERSION = '1.02';
6 our $VERSION = '1.03';
77 $VERSION = eval $VERSION;
88 our $AUTHORITY = 'cpan:STEVAN';
99
402402 replace it. This is important to ensure that classes which do not have
403403 superclasses still properly inherit from L<Moose::Object>.
404404
405 Each superclass can be followed by a hash reference with options. Currently,
406 only L<-version|Class::MOP/Class Loading Options> is recognized:
407
408 extends 'My::Parent' => { -version => 0.01 },
409 'My::OtherParent' => { -version => 0.03 };
410
411 An exception will be thrown if the version requirements are not
412 satisfied.
413
405414 =item B<with (@roles)>
406415
407416 This will apply a given set of C<@roles> to the local class.
417
418 Like with C<extends>, each specified role can be followed by a hash
419 reference with a L<-version|Class::MOP/Class Loading Options> option:
420
421 with 'My::Role' => { -version => 0.32 },
422 'My::Otherrole' => { -version => 0.23 };
423
424 The specified version requirements must be satisfied, otherwise an
425 exception will be thrown.
426
427 If your role takes options or arguments, they can be passed along in the
428 hash reference as well.
408429
409430 =item B<has $name|@$names =E<gt> %options>
410431
88 use List::MoreUtils 'all';
99 use Moose::Util 'does_role', 'find_meta';
1010
11 our $VERSION = '1.02';
11 our $VERSION = '1.03';
1212 $VERSION = eval $VERSION;
1313 our $AUTHORITY = 'cpan:STEVAN';
1414
44
55 use Class::MOP;
66
7 our $VERSION = '1.02';
7 our $VERSION = '1.03';
88 $VERSION = eval $VERSION;
99 our $AUTHORITY = 'cpan:STEVAN';
1010
4343 'correct error when superclass could not be found';
4444 }
4545
46 {
47 package Affe;
48 our $VERSION = 23;
49 }
50
51 {
52 package Tiger;
53 use Moose;
54
55 ::lives_ok { extends 'Foo', Affe => { -version => 13 } }
56 'extends with version requirement';
57 }
58
59 {
60 package Birne;
61 use Moose;
62
63 ::throws_ok { extends 'Foo', Affe => { -version => 42 } }
64 qr/Affe version 42 required--this is only version 23/,
65 'extends with unsatisfied version requirement';
66 }
67
4668 done_testing;
88 {
99 package FooRole;
1010 use Moose::Role;
11
12 our $VERSION = 23;
1113
1214 has 'bar' => ( is => 'rw', isa => 'FooClass' );
1315 has 'baz' => ( is => 'ro' );
4244 use Moose;
4345
4446 extends 'BarClass';
45 with 'FooRole';
47
48 ::throws_ok { with 'FooRole' => { -version => 42 } }
49 qr/FooRole version 42 required--this is only version 23/,
50 'applying role with unsatisfied version requirement';
51
52 ::lives_ok { with 'FooRole' => { -version => 13 } }
53 'applying role with satisfied version requirement';
4654
4755 sub blau {'FooClass::blau'} # << the role wraps this ...
4856