[libclass-tiny-perl] 03/19: split out base class into Class::Tiny::Object

gregor herrmann gregoa at debian.org
Sun May 31 14:03:11 UTC 2015


This is an automated email from the git hooks/post-receive script.

gregoa pushed a commit to annotated tag release-0.004
in repository libclass-tiny-perl.

commit 59c41c661a1cf5a50097894486675e262c62eb7c
Author: David Golden <dagolden at cpan.org>
Date:   Tue Aug 20 16:19:56 2013 -0400

    split out base class into Class::Tiny::Object
---
 META.json         |  4 ++++
 lib/Class/Tiny.pm | 23 ++++++++++++++---------
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/META.json b/META.json
index 376ca51..52399e4 100644
--- a/META.json
+++ b/META.json
@@ -68,6 +68,10 @@
       "Class::Tiny" : {
          "file" : "lib/Class/Tiny.pm",
          "version" : "0.004"
+      },
+      "Class::Tiny::Object" : {
+         "file" : "lib/Class/Tiny.pm",
+         "version" : "0.004"
       }
    },
    "release_status" : "stable",
diff --git a/lib/Class/Tiny.pm b/lib/Class/Tiny.pm
index cf79a29..cf41441 100644
--- a/lib/Class/Tiny.pm
+++ b/lib/Class/Tiny.pm
@@ -8,27 +8,19 @@ package Class::Tiny;
 
 use Carp ();
 
-if ( $] >= 5.010 ) {
-    require "mro.pm"; ## no critic: hack to hide from min version & prereq scanners
-}
-else {
-    require MRO::Compat;
-}
-
 my %CLASS_ATTRIBUTES;
 
 # adapted from Object::Tiny and Object::Tiny::RW
 sub import {
     no strict 'refs';
     my $class = shift;
-    return unless $class eq __PACKAGE__; # NOP for subclasses
     my $pkg  = caller;
     my @attr = grep {
         defined and !ref and /^[^\W\d]\w*$/s
           or Carp::croak "Invalid accessor name '$_'"
     } @_;
     $CLASS_ATTRIBUTES{$pkg}{$_} = undef for @attr;
-    @{"${pkg}::ISA"} = $class unless @{"${pkg}::ISA"};
+    @{"${pkg}::ISA"} = "Class::Tiny::Object" unless @{"${pkg}::ISA"};
     #<<< No perltidy
     eval join "\n", ## no critic: intentionally eval'ing subs here
       "package $pkg;",
@@ -40,6 +32,19 @@ sub import {
     return 1;
 }
 
+package Class::Tiny::Object;
+# ABSTRACT: Base class for classes built with Class::Tiny
+# VERSION
+
+use Carp ();
+
+if ( $] >= 5.010 ) {
+    require "mro.pm"; ## no critic: hack to hide from min version & prereq scanners
+}
+else {
+    require MRO::Compat;
+}
+
 sub new {
     my $class = shift;
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libclass-tiny-perl.git



More information about the Pkg-perl-cvs-commits mailing list