summaryrefslogtreecommitdiff
path: root/lib/Moose/Exception/RoleExclusionConflict.pm
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2015-06-06 17:50:16 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2015-06-06 17:50:16 +0000
commit5ac2026f7eed78958d69d051e7a8e993dcf51205 (patch)
tree298c3d2f08bdfe5689998b11892d72a897985be1 /lib/Moose/Exception/RoleExclusionConflict.pm
downloadMoose-tarball-5ac2026f7eed78958d69d051e7a8e993dcf51205.tar.gz
Diffstat (limited to 'lib/Moose/Exception/RoleExclusionConflict.pm')
-rw-r--r--lib/Moose/Exception/RoleExclusionConflict.pm26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Moose/Exception/RoleExclusionConflict.pm b/lib/Moose/Exception/RoleExclusionConflict.pm
new file mode 100644
index 0000000..210ec90
--- /dev/null
+++ b/lib/Moose/Exception/RoleExclusionConflict.pm
@@ -0,0 +1,26 @@
+package Moose::Exception::RoleExclusionConflict;
+our $VERSION = '2.1405';
+
+use Moose;
+extends 'Moose::Exception';
+with 'Moose::Exception::Role::Role';
+
+has 'roles' => (
+ is => 'ro',
+ isa => 'ArrayRef',
+ required => 1,
+);
+
+sub _build_message {
+ my $self = shift;
+
+ my @roles_array = @{$self->roles};
+ my $role_noun = "Role".( @roles_array == 1 ? '' : 's');
+ my $all_roles = join(', ', @roles_array);
+ my $verb = "exclude".( @roles_array == 1 ? 's' : '' );
+ my $role_name = $self->role_name;
+
+ return "Conflict detected: $role_noun $all_roles $verb role '$role_name'";
+}
+
+1;