summaryrefslogtreecommitdiffstats
path: root/lib/MooseX/ABC/Role/Object.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-05-28 23:05:35 -0500
committerJesse Luehrs <doy@tozt.net>2009-05-28 23:05:35 -0500
commitb9f82dfce667aa0718d8e7904dc9a2a0163efeb6 (patch)
treee58b4bfb634bbdee86b5f0bba05beb68810c7f37 /lib/MooseX/ABC/Role/Object.pm
parent8d62b6e815e4442bed635d2b626ad9a6bce9abb3 (diff)
downloadmoosex-abc-b9f82dfce667aa0718d8e7904dc9a2a0163efeb6.tar.gz
moosex-abc-b9f82dfce667aa0718d8e7904dc9a2a0163efeb6.zip
apply a base class role to prevent abstract class instantiation
Diffstat (limited to 'lib/MooseX/ABC/Role/Object.pm')
-rw-r--r--lib/MooseX/ABC/Role/Object.pm12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/MooseX/ABC/Role/Object.pm b/lib/MooseX/ABC/Role/Object.pm
new file mode 100644
index 0000000..083c0f5
--- /dev/null
+++ b/lib/MooseX/ABC/Role/Object.pm
@@ -0,0 +1,12 @@
+package MooseX::ABC::Role::Object;
+use Moose::Role;
+
+sub new {
+ my $class = shift;
+ Class::MOP::class_of($class)->throw_error(
+ "$class is abstract, it cannot be instantiated"
+ );
+}
+
+no Moose::Role;
+1;