r60440 - in /branches/upstream/libmouse-perl/current: ./ inc/Module/Install/ lib/ lib/Mouse/ lib/Mouse/Meta/ lib/Mouse/Meta/Method/ lib/Mouse/Meta/Role/ lib/Mouse/Util/ t/040_type_constraints/

ansgar-guest at users.alioth.debian.org ansgar-guest at users.alioth.debian.org
Wed Jul 21 04:47:59 UTC 2010


Author: ansgar-guest
Date: Wed Jul 21 04:44:16 2010
New Revision: 60440

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=60440
Log:
[svn-upgrade] new version libmouse-perl (0.63)

Modified:
    branches/upstream/libmouse-perl/current/Changes
    branches/upstream/libmouse-perl/current/META.yml
    branches/upstream/libmouse-perl/current/Makefile.PL
    branches/upstream/libmouse-perl/current/inc/Module/Install/XSUtil.pm
    branches/upstream/libmouse-perl/current/lib/Mouse.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod
    branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod
    branches/upstream/libmouse-perl/current/t/040_type_constraints/010_misc_type_tests.t

Modified: branches/upstream/libmouse-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/Changes?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/Changes (original)
+++ branches/upstream/libmouse-perl/current/Changes Wed Jul 21 04:44:16 2010
@@ -1,4 +1,15 @@
 Revision history for Mouse
+
+0.63 Tue Jul 20 19:26:30 2010
+    [CHANGES]
+    * Resolve RT#59460: Test::Requires is not a required prerequisite unless
+      release-testing... (Curtis Jewell)
+      See also https://rt.cpan.org/Public/Bug/Display.html?id=59460
+
+    [FEATURES]
+    * Add Mouse::Util::TypeConstraints::register_type_constraint()
+      (Vincent Pit)
+      See also https://rt.cpan.org/Public/Bug/Display.html?id=59539
 
 0.62 Tue Jul  6 20:18:58 2010
     [FEATURES]

Modified: branches/upstream/libmouse-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/META.yml?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/META.yml (original)
+++ branches/upstream/libmouse-perl/current/META.yml Wed Jul 21 04:44:16 2010
@@ -8,7 +8,6 @@
   ExtUtils::ParseXS: 2.21
   Test::Exception: 0.29
   Test::More: 0.88
-  Test::Requires: 0.03
 configure_requires:
   Devel::PPPort: 3.19
   ExtUtils::MakeMaker: 6.42
@@ -32,4 +31,4 @@
 resources:
   license: http://dev.perl.org/licenses/
   repository: git://git.moose.perl.org/Mouse.git
-version: 0.62
+version: 0.63

Modified: branches/upstream/libmouse-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/Makefile.PL?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/Makefile.PL (original)
+++ branches/upstream/libmouse-perl/current/Makefile.PL Wed Jul 21 04:44:16 2010
@@ -1,7 +1,7 @@
 # for developpers:
 BEGIN{
     if(grep{ $_ eq '--author' } @ARGV){
-        print "^X -S cpanm < author/requires.cpanm\n";
+        print "$^X -S cpanm < author/requires.cpanm\n";
         system "$^X -S cpanm < author/requires.cpanm";
     }
 }
@@ -26,7 +26,9 @@
 
 test_requires 'Test::More'      => 0.88;
 test_requires 'Test::Exception' => 0.29;
-test_requires 'Test::Requires'  => 0.03;
+if ( $ENV{RELEASE_TESTING} || (grep { $_ eq '--author' } @ARGV) ) {
+    test_requires 'Test::Requires'  => 0.03;
+}
 # test_requires 'Test::Output'    => 0.16; # too many dependencies!
 
 if($] < 5.010) {

Modified: branches/upstream/libmouse-perl/current/inc/Module/Install/XSUtil.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/inc/Module/Install/XSUtil.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/inc/Module/Install/XSUtil.pm (original)
+++ branches/upstream/libmouse-perl/current/inc/Module/Install/XSUtil.pm Wed Jul 21 04:44:16 2010
@@ -3,7 +3,7 @@
 
 use 5.005_03;
 
-$VERSION = '0.24';
+$VERSION = '0.25';
 
 use Module::Install::Base;
 @ISA     = qw(Module::Install::Base);
@@ -46,8 +46,8 @@
         $self->{xsu_initialized} = 1;
 
         if(!$self->cc_available()){
-            print "This package requires a C compiler, but it's not available.\n";
-            exit(0);
+            warn "This distribution requires a C compiler, but it's not available, stopped.\n";
+            exit;
         }
 
         $self->configure_requires(%ConfigureRequires);
@@ -169,6 +169,44 @@
         # TODO: support other compilers
     }
 
+    return;
+}
+
+sub c99_available {
+    my($self) = @_;
+    $self->_xs_initialize();
+
+    require File::Temp;
+    require File::Basename;
+
+    my $tmpfile = File::Temp->new(SUFFIX => '.c');
+
+    $tmpfile->print(<<'C99');
+inline // a C99 keyword with C99 style comments
+int test_c99() {
+    int i = 0;
+    i++;
+    int j = i - 1; // another C99 feature: declaration after statement
+    return j;
+}
+C99
+
+    $tmpfile->close();
+
+    system $Config{cc}, '-c', $tmpfile->filename;
+
+    (my $objname = File::Basename::basename($tmpfile->filename)) =~ s/\Q.c\E$/$Config{_o}/;
+    unlink $objname or warn "Cannot unlink $objname (ignored): $!";
+
+    return $? == 0;
+}
+
+sub requires_c99 {
+    my($self) = @_;
+    if(!$self->c99_available) {
+        warn "This distribution requires a C99 compiler, but $Config{cc} seems not to support C99, stopped.\n";
+        exit;
+    }
     return;
 }
 
@@ -339,7 +377,7 @@
     $self->cc_append_to_inc (grep{ !$uniq{ $_ }++ } @inc);
 
     %uniq = ();
-    $self->cc_append_to_libs(grep{ !$uniq{ $_->[0] }++ } @libs);
+    $self->cc_libs(grep{ !$uniq{ $_->[0] }++ } @libs);
 
     return %added;
 }
@@ -582,4 +620,4 @@
 1;
 __END__
 
-#line 774
+#line 816

Modified: branches/upstream/libmouse-perl/current/lib/Mouse.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse.pm Wed Jul 21 04:44:16 2010
@@ -3,7 +3,7 @@
 
 use Mouse::Exporter; # enables strict and warnings
 
-our $VERSION = '0.62';
+our $VERSION = '0.63';
 
 use Carp         qw(confess);
 use Scalar::Util qw(blessed);
@@ -160,7 +160,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm Wed Jul 21 04:44:16 2010
@@ -272,7 +272,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm Wed Jul 21 04:44:16 2010
@@ -401,7 +401,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 METHODS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm Wed Jul 21 04:44:16 2010
@@ -486,7 +486,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 METHODS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm Wed Jul 21 04:44:16 2010
@@ -54,7 +54,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm Wed Jul 21 04:44:16 2010
@@ -182,7 +182,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm Wed Jul 21 04:44:16 2010
@@ -211,7 +211,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm Wed Jul 21 04:44:16 2010
@@ -61,7 +61,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm Wed Jul 21 04:44:16 2010
@@ -55,7 +55,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm Wed Jul 21 04:44:16 2010
@@ -329,7 +329,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm Wed Jul 21 04:44:16 2010
@@ -312,7 +312,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm Wed Jul 21 04:44:16 2010
@@ -125,7 +125,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm Wed Jul 21 04:44:16 2010
@@ -23,7 +23,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm Wed Jul 21 04:44:16 2010
@@ -1,9 +1,11 @@
 package Mouse::Meta::TypeConstraint;
 use Mouse::Util qw(:meta); # enables strict and warnings
+use Scalar::Util ();
 
 use overload
     'bool'   => sub (){ 1 },           # always true
     '""'     => sub { $_[0]->name },   # stringify to tc name
+    '0+'     => sub { Scalar::Util::refaddr($_[0]) },
     '|'      => sub {                  # or-combination
         require Mouse::Util::TypeConstraints;
         return Mouse::Util::TypeConstraints::find_or_parse_type_constraint(
@@ -14,7 +16,8 @@
     fallback => 1;
 
 sub new {
-    my($class, %args) = @_;
+    my $class = shift;
+    my %args  = @_ == 1 ? %{$_[0]} : @_;
 
     $args{name} = '__ANON__' if !defined $args{name};
 
@@ -236,7 +239,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 DESCRIPTION
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm Wed Jul 21 04:44:16 2010
@@ -17,7 +17,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 METHODS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm Wed Jul 21 04:44:16 2010
@@ -778,7 +778,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm Wed Jul 21 04:44:16 2010
@@ -1,7 +1,7 @@
 package Mouse::Role;
 use Mouse::Exporter; # enables strict and warnings
 
-our $VERSION = '0.62';
+our $VERSION = '0.63';
 
 use Carp         qw(confess);
 use Scalar::Util qw(blessed);
@@ -145,7 +145,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm Wed Jul 21 04:44:16 2010
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '0.62';
+our $VERSION = '0.63';
 
 our $MouseVersion = $VERSION;
 our $MooseVersion = '1.05';
@@ -19,7 +19,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod Wed Jul 21 04:44:16 2010
@@ -5,7 +5,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 DESCRIPTION
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm Wed Jul 21 04:44:16 2010
@@ -52,7 +52,7 @@
     # Because Mouse::Util is loaded first in all the Mouse sub-modules,
     # XS loader is placed here, not in Mouse.pm.
 
-    our $VERSION = '0.62';
+    our $VERSION = '0.63';
 
     my $xs = !(exists $INC{'Mouse/PurePerl.pm'} || $ENV{MOUSE_PUREPERL});
 
@@ -365,7 +365,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 IMPLEMENTATIONS FOR
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm Wed Jul 21 04:44:16 2010
@@ -17,6 +17,7 @@
         coerce
 
         find_type_constraint
+        register_type_constraint
     )],
 );
 
@@ -367,6 +368,16 @@
     return $TYPE{$spec};
 }
 
+sub register_type_constraint {
+    my($constraint) = @_;
+    Carp::croak("No type supplied / type is not a valid type constraint")
+        unless Mouse::Util::is_a_type_constraint($constraint);
+    my $name = $constraint->name;
+    Carp::croak("can't register an unnamed type constraint")
+        unless defined $name;
+    return $TYPE{$name} = $constraint;
+}
+
 sub find_or_parse_type_constraint {
     my($spec) = @_;
     return $spec if Mouse::Util::is_a_type_constraint($spec);
@@ -406,7 +417,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head2 SYNOPSIS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod Wed Jul 21 04:44:16 2010
@@ -5,7 +5,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.62
+This document describes Mouse version 0.63
 
 =head1 DESCRIPTION
 

Modified: branches/upstream/libmouse-perl/current/t/040_type_constraints/010_misc_type_tests.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/t/040_type_constraints/010_misc_type_tests.t?rev=60440&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/t/040_type_constraints/010_misc_type_tests.t (original)
+++ branches/upstream/libmouse-perl/current/t/040_type_constraints/010_misc_type_tests.t Wed Jul 21 04:44:16 2010
@@ -3,8 +3,9 @@
 use strict;
 use warnings;
 
-use Test::More tests => 11;
+use Test::More;
 use Test::Exception;
+use Scalar::Util qw(refaddr);
 
 BEGIN {
     use_ok('Mouse::Util::TypeConstraints');
@@ -65,3 +66,24 @@
         "correct error thrown"
     );
 }
+
+{
+    for my $t (qw(Bar Foo)) {
+        my $tc = Mouse::Meta::TypeConstraint->new({
+            name => $t,
+        });
+
+        Mouse::Util::TypeConstraints::register_type_constraint($tc);
+    }
+
+    my $foo = Mouse::Util::TypeConstraints::find_type_constraint('Foo');
+    my $bar = Mouse::Util::TypeConstraints::find_type_constraint('Bar');
+
+    ok(!$foo->is_a_type_of($bar), "Foo type is not equal to Bar type");
+    ok( $foo->is_a_type_of($foo), "Foo equals Foo");
+    ok( 0+$foo == refaddr($foo), "overloading works");
+}
+
+ok $subtype1, "type constraint boolean overload works";
+
+done_testing;




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