bump version to 1.25
[gitmo/Moose.git] / lib / Moose / Meta / Class / Immutable / Trait.pm
index ea578ed..2d87e10 100644 (file)
@@ -4,8 +4,9 @@ use strict;
 use warnings;
 
 use Class::MOP;
+use Scalar::Util qw( blessed );
 
-our $VERSION   = '0.93_03';
+our $VERSION   = '1.25';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -19,6 +20,27 @@ sub calculate_all_roles {
     @{ $self->{__immutable}{calculate_all_roles} ||= [ $self->$orig ] };
 }
 
+sub calculate_all_roles_with_inheritance {
+    my $orig = shift;
+    my $self = shift;
+    @{ $self->{__immutable}{calculate_all_roles_with_inheritance} ||= [ $self->$orig ] };
+}
+
+sub does_role {
+    shift;
+    my $self = shift;
+    my $role = shift;
+
+    (defined $role)
+        || $self->throw_error("You must supply a role name to look for");
+
+    $self->{__immutable}{does_role} ||= { map { $_->name => 1 } $self->calculate_all_roles_with_inheritance };
+
+    my $name = blessed $role ? $role->name : $role;
+
+    return $self->{__immutable}{does_role}{$name};
+}
+
 1;
 
 __END__
@@ -44,7 +66,7 @@ Yuval Kogman E<lt>nothingmuch@cpan.orgE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2009 by Infinity Interactive, Inc.
+Copyright 2009-2010 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>