Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Sub-HandlesVia for
openSUSE:Factory checked in at 2022-07-04 11:32:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Sub-HandlesVia (Old)
and /work/SRC/openSUSE:Factory/.perl-Sub-HandlesVia.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sub-HandlesVia"
Mon Jul 4 11:32:31 2022 rev:3 rq:986281 version:0.027
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Sub-HandlesVia/perl-Sub-HandlesVia.changes
2022-06-21 16:32:08.095786791 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Sub-HandlesVia.new.1548/perl-Sub-HandlesVia.changes
2022-07-04 11:32:35.743996149 +0200
@@ -1,0 +2,12 @@
+Thu Jun 30 03:06:38 UTC 2022 - Tina M??ller <[email protected]>
+
+- updated to 0.027
+ see /usr/share/doc/packages/perl-Sub-HandlesVia/Changes
+
+ 0.027 2022-06-30
+ [ Test Suite ]
+ - Skip Mite test on Perl < 5.10.1
+ 0.026 2022-06-30
+ - Added: Support classes built with Mite.
+
+-------------------------------------------------------------------
Old:
----
Sub-HandlesVia-0.025.tar.gz
New:
----
Sub-HandlesVia-0.027.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Sub-HandlesVia.spec ++++++
--- /var/tmp/diff_new_pack.1x9ZjK/_old 2022-07-04 11:32:36.159996818 +0200
+++ /var/tmp/diff_new_pack.1x9ZjK/_new 2022-07-04 11:32:36.167996831 +0200
@@ -18,7 +18,7 @@
%define cpan_name Sub-HandlesVia
Name: perl-Sub-HandlesVia
-Version: 0.025
+Version: 0.027
Release: 0
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Alternative handles_via implementation
++++++ Sub-HandlesVia-0.025.tar.gz -> Sub-HandlesVia-0.027.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/COPYRIGHT
new/Sub-HandlesVia-0.027/COPYRIGHT
--- old/Sub-HandlesVia-0.025/COPYRIGHT 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/COPYRIGHT 2022-06-30 02:08:51.000000000 +0200
@@ -72,6 +72,7 @@
lib/Sub/HandlesVia/HandlerLibrary/Number.pm
lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
lib/Sub/HandlesVia/HandlerLibrary/String.pm
+ lib/Sub/HandlesVia/Toolkit/Mite.pm
lib/Sub/HandlesVia/Toolkit/Moo.pm
lib/Sub/HandlesVia/Toolkit/Moose.pm
lib/Sub/HandlesVia/Toolkit/Mouse.pm
@@ -96,6 +97,8 @@
t/30egpod/number.t
t/30egpod/scalar.t
t/30egpod/string.t
+ t/40mite/lib/MyTest.pm
+ t/40mite/lib/MyTest.pm.mite.pm
t/94cmp.t
t/96foreach.t
t/99headtail.t
@@ -126,11 +129,13 @@
Files: t/20moosex_extended.t
t/31egpod_dummy.t
+ t/40mite/basic.t
Copyright: This software is copyright (c) 2022 by Toby Inkster.
License: GPL-1.0+ or Artistic-1.0
Files: INSTALL
LICENSE
+ t/40mite/.mite/config
Copyright: Unknown
License: Unknown
@@ -138,6 +143,11 @@
Copyright: This software is copyright (c) 2020 by Toby Inkster.
License: GPL-1.0+ or Artistic-1.0
+Files: t/40mite/lib/MyTest/Mite.pm
+Copyright: This software is copyright (c) 2011-2014 by Michael G Schwern.
+ This software is copyright (c) 2022 by Toby Inkster.
+License: GPL-1.0+ or Artistic-1.0
+
License: Artistic-1.0
This software is Copyright (c) 2022 by the copyright holder(s).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/Changes
new/Sub-HandlesVia-0.027/Changes
--- old/Sub-HandlesVia-0.025/Changes 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/Changes 2022-06-30 02:08:51.000000000 +0200
@@ -6,6 +6,15 @@
Bug tracker: <https://github.com/tobyink/p5-sub-handlesvia/issues>
Maintainer: Toby Inkster (TOBYINK) <[email protected]>
+0.027 2022-06-30
+
+ [ Test Suite ]
+ - Skip Mite test on Perl < 5.10.1
+
+0.026 2022-06-30
+
+ - Added: Support classes built with Mite.
+
0.025 2022-06-16
- Internally shift off the method invocant sometimes as benchmarking shows
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/MANIFEST
new/Sub-HandlesVia-0.027/MANIFEST
--- old/Sub-HandlesVia-0.025/MANIFEST 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/MANIFEST 2022-06-30 02:08:51.000000000 +0200
@@ -32,6 +32,7 @@
lib/Sub/HandlesVia/HandlerLibrary/String.pm
lib/Sub/HandlesVia/HandlerLibrary/String.pod
lib/Sub/HandlesVia/Toolkit.pm
+lib/Sub/HandlesVia/Toolkit/Mite.pm
lib/Sub/HandlesVia/Toolkit/Moo.pm
lib/Sub/HandlesVia/Toolkit/Moose.pm
lib/Sub/HandlesVia/Toolkit/Mouse.pm
@@ -107,6 +108,11 @@
t/30egpod/scalar.t
t/30egpod/string.t
t/31egpod_dummy.t
+t/40mite/.mite/config
+t/40mite/basic.t
+t/40mite/lib/MyTest.pm
+t/40mite/lib/MyTest.pm.mite.pm
+t/40mite/lib/MyTest/Mite.pm
t/94cmp.t
t/95any.t
t/96foreach.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/META.json
new/Sub-HandlesVia-0.027/META.json
--- old/Sub-HandlesVia-0.025/META.json 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/META.json 2022-06-30 02:08:51.000000000 +0200
@@ -72,95 +72,99 @@
"provides" : {
"Sub::HandlesVia" : {
"file" : "lib/Sub/HandlesVia.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::CodeGenerator" : {
"file" : "lib/Sub/HandlesVia/CodeGenerator.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Handler" : {
"file" : "lib/Sub/HandlesVia/Handler.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Handler::CodeRef" : {
"file" : "lib/Sub/HandlesVia/Handler.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Handler::Traditional" : {
"file" : "lib/Sub/HandlesVia/Handler.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::Array" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/Array.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::Bool" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/Bool.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::Code" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/Code.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::Counter" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/Counter.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::Hash" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/Hash.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::Number" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/Number.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::Scalar" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::HandlerLibrary::String" : {
"file" : "lib/Sub/HandlesVia/HandlerLibrary/String.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit" : {
"file" : "lib/Sub/HandlesVia/Toolkit.pm",
- "version" : "0.025"
+ "version" : "0.027"
+ },
+ "Sub::HandlesVia::Toolkit::Mite" : {
+ "file" : "lib/Sub/HandlesVia/Toolkit/Mite.pm",
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Moo" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Moo.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Moose" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Moose.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Moose::PackageTrait" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Moose.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Moose::RoleTrait" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Moose.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Mouse" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Mouse.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Mouse::PackageTrait" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Mouse.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Mouse::RoleTrait" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Mouse.pm",
- "version" : "0.025"
+ "version" : "0.027"
},
"Sub::HandlesVia::Toolkit::Plain" : {
"file" : "lib/Sub/HandlesVia/Toolkit/Plain.pm",
- "version" : "0.025"
+ "version" : "0.027"
}
},
"release_status" : "stable",
@@ -179,7 +183,7 @@
},
"x_identifier" :
"http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/project"
},
- "version" : "0.025",
- "x_serialization_backend" : "JSON::PP version 4.06",
+ "version" : "0.027",
+ "x_serialization_backend" : "JSON::PP version 4.09",
"x_static_install" : 1
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/META.yml
new/Sub-HandlesVia-0.027/META.yml
--- old/Sub-HandlesVia-0.025/META.yml 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/META.yml 2022-06-30 02:08:51.000000000 +0200
@@ -28,73 +28,76 @@
provides:
Sub::HandlesVia:
file: lib/Sub/HandlesVia.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::CodeGenerator:
file: lib/Sub/HandlesVia/CodeGenerator.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Handler:
file: lib/Sub/HandlesVia/Handler.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Handler::CodeRef:
file: lib/Sub/HandlesVia/Handler.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Handler::Traditional:
file: lib/Sub/HandlesVia/Handler.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary:
file: lib/Sub/HandlesVia/HandlerLibrary.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::Array:
file: lib/Sub/HandlesVia/HandlerLibrary/Array.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::Bool:
file: lib/Sub/HandlesVia/HandlerLibrary/Bool.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::Code:
file: lib/Sub/HandlesVia/HandlerLibrary/Code.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::Counter:
file: lib/Sub/HandlesVia/HandlerLibrary/Counter.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::Hash:
file: lib/Sub/HandlesVia/HandlerLibrary/Hash.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::Number:
file: lib/Sub/HandlesVia/HandlerLibrary/Number.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::Scalar:
file: lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::HandlerLibrary::String:
file: lib/Sub/HandlesVia/HandlerLibrary/String.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit:
file: lib/Sub/HandlesVia/Toolkit.pm
- version: '0.025'
+ version: '0.027'
+ Sub::HandlesVia::Toolkit::Mite:
+ file: lib/Sub/HandlesVia/Toolkit/Mite.pm
+ version: '0.027'
Sub::HandlesVia::Toolkit::Moo:
file: lib/Sub/HandlesVia/Toolkit/Moo.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit::Moose:
file: lib/Sub/HandlesVia/Toolkit/Moose.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit::Moose::PackageTrait:
file: lib/Sub/HandlesVia/Toolkit/Moose.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit::Moose::RoleTrait:
file: lib/Sub/HandlesVia/Toolkit/Moose.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit::Mouse:
file: lib/Sub/HandlesVia/Toolkit/Mouse.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit::Mouse::PackageTrait:
file: lib/Sub/HandlesVia/Toolkit/Mouse.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit::Mouse::RoleTrait:
file: lib/Sub/HandlesVia/Toolkit/Mouse.pm
- version: '0.025'
+ version: '0.027'
Sub::HandlesVia::Toolkit::Plain:
file: lib/Sub/HandlesVia/Toolkit/Plain.pm
- version: '0.025'
+ version: '0.027'
recommends:
Sub::Util: '0'
requires:
@@ -114,6 +117,6 @@
homepage: https://metacpan.org/release/Sub-HandlesVia
license: http://dev.perl.org/licenses/
repository: git://github.com/tobyink/p5-sub-handlesvia.git
-version: '0.025'
+version: '0.027'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
x_static_install: 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/Makefile.PL
new/Sub-HandlesVia-0.027/Makefile.PL
--- old/Sub-HandlesVia-0.025/Makefile.PL 2022-06-16 12:34:45.000000000
+0200
+++ new/Sub-HandlesVia-0.027/Makefile.PL 2022-06-30 02:08:51.000000000
+0200
@@ -52,53 +52,54 @@
},
},
"provides" => {
- "Sub::HandlesVia" => {
file => "lib/Sub/HandlesVia.pm", version => 0.025 },
- "Sub::HandlesVia::CodeGenerator" => {
file => "lib/Sub/HandlesVia/CodeGenerator.pm", version => 0.025 },
- "Sub::HandlesVia::Handler" => {
file => "lib/Sub/HandlesVia/Handler.pm", version => 0.025 },
- "Sub::HandlesVia::Handler::CodeRef" => {
file => "lib/Sub/HandlesVia/Handler.pm", version => 0.025 },
- "Sub::HandlesVia::Handler::Traditional" => {
file => "lib/Sub/HandlesVia/Handler.pm", version => 0.025 },
- "Sub::HandlesVia::HandlerLibrary" => {
file => "lib/Sub/HandlesVia/HandlerLibrary.pm", version => 0.025 },
+ "Sub::HandlesVia" => {
file => "lib/Sub/HandlesVia.pm", version => 0.027 },
+ "Sub::HandlesVia::CodeGenerator" => {
file => "lib/Sub/HandlesVia/CodeGenerator.pm", version => 0.027 },
+ "Sub::HandlesVia::Handler" => {
file => "lib/Sub/HandlesVia/Handler.pm", version => 0.027 },
+ "Sub::HandlesVia::Handler::CodeRef" => {
file => "lib/Sub/HandlesVia/Handler.pm", version => 0.027 },
+ "Sub::HandlesVia::Handler::Traditional" => {
file => "lib/Sub/HandlesVia/Handler.pm", version => 0.027 },
+ "Sub::HandlesVia::HandlerLibrary" => {
file => "lib/Sub/HandlesVia/HandlerLibrary.pm", version => 0.027 },
"Sub::HandlesVia::HandlerLibrary::Array" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/Array.pm",
-
version => 0.025,
+
version => 0.027,
},
"Sub::HandlesVia::HandlerLibrary::Bool" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/Bool.pm",
-
version => 0.025,
+
version => 0.027,
},
"Sub::HandlesVia::HandlerLibrary::Code" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/Code.pm",
-
version => 0.025,
+
version => 0.027,
},
"Sub::HandlesVia::HandlerLibrary::Counter" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/Counter.pm",
-
version => 0.025,
+
version => 0.027,
},
"Sub::HandlesVia::HandlerLibrary::Hash" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/Hash.pm",
-
version => 0.025,
+
version => 0.027,
},
"Sub::HandlesVia::HandlerLibrary::Number" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/Number.pm",
-
version => 0.025,
+
version => 0.027,
},
"Sub::HandlesVia::HandlerLibrary::Scalar" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm",
-
version => 0.025,
+
version => 0.027,
},
"Sub::HandlesVia::HandlerLibrary::String" => {
file => "lib/Sub/HandlesVia/HandlerLibrary/String.pm",
-
version => 0.025,
+
version => 0.027,
},
- "Sub::HandlesVia::Toolkit" => {
file => "lib/Sub/HandlesVia/Toolkit.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Moo" => {
file => "lib/Sub/HandlesVia/Toolkit/Moo.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Moose" => {
file => "lib/Sub/HandlesVia/Toolkit/Moose.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Moose::PackageTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Moose.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Moose::RoleTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Moose.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Mouse" => {
file => "lib/Sub/HandlesVia/Toolkit/Mouse.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Mouse::PackageTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Mouse.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Mouse::RoleTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Mouse.pm", version => 0.025 },
- "Sub::HandlesVia::Toolkit::Plain" => {
file => "lib/Sub/HandlesVia/Toolkit/Plain.pm", version => 0.025 },
+ "Sub::HandlesVia::Toolkit" => {
file => "lib/Sub/HandlesVia/Toolkit.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Mite" => {
file => "lib/Sub/HandlesVia/Toolkit/Mite.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Moo" => {
file => "lib/Sub/HandlesVia/Toolkit/Moo.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Moose" => {
file => "lib/Sub/HandlesVia/Toolkit/Moose.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Moose::PackageTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Moose.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Moose::RoleTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Moose.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Mouse" => {
file => "lib/Sub/HandlesVia/Toolkit/Mouse.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Mouse::PackageTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Mouse.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Mouse::RoleTrait" => {
file => "lib/Sub/HandlesVia/Toolkit/Mouse.pm", version => 0.027 },
+ "Sub::HandlesVia::Toolkit::Plain" => {
file => "lib/Sub/HandlesVia/Toolkit/Plain.pm", version => 0.027 },
},
"release_status" => "stable",
"resources" => {
@@ -112,7 +113,7 @@
},
x_identifier =>
"http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/project",
},
- "version" => 0.025,
+ "version" => 0.027,
"x_static_install" => 1,
};
@@ -125,7 +126,7 @@
VERSION => $meta->{version},
EXE_FILES => [ map $_->{file}, values %{ $meta->{x_provides_scripts}
|| {} } ],
NAME => do { my $n = $meta->{name}; $n =~ s/-/::/g; $n },
- test => { TESTS => "t/*.t t/02moo/*.t t/03moo_mxtt/*.t
t/04moose/*.t t/05moose_nativetypes/*.t t/06mouse/*.t t/07mouse_nativetypes/*.t
t/30egpod/*.t" },
+ test => { TESTS => "t/*.t t/02moo/*.t t/03moo_mxtt/*.t
t/04moose/*.t t/05moose_nativetypes/*.t t/06mouse/*.t t/07mouse_nativetypes/*.t
t/30egpod/*.t t/40mite/*.t" },
%dynamic_config,
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/README
new/Sub-HandlesVia-0.027/README
--- old/Sub-HandlesVia-0.025/README 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/README 2022-06-30 02:08:51.000000000 +0200
@@ -185,6 +185,26 @@
(If you have a moose in your kitchen, that might be even worse than the
mouse.)
+ Using with Mite
+ You should be able to use Sub::HandlesVia with Mite 0.001011 or above.
+ Your project will still have a dependency on Sub::HandlesVia.
+
+ package MyApp::Kitchen {
+ use MyApp::Mite;
+ use Sub::HandlesVia;
+
+ has food => (
+ is => 'ro',
+ isa => 'ArrayRef[Str]',
+ handles_via => 'Array',
+ default => sub { [] },
+ handles => {
+ 'add_food' => 'push',
+ 'find_food' => 'grep',
+ },
+ );
+ }
+
Using with Anything
For Moose and Mouse, Sub::HandlesVia can use their metaobject protocols to
grab an attribute's definition and install the methods it needs to. For
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/SIGNATURE
new/Sub-HandlesVia-0.027/SIGNATURE
--- old/Sub-HandlesVia-0.025/SIGNATURE 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/SIGNATURE 2022-06-30 02:08:51.000000000 +0200
@@ -14,43 +14,44 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
-SHA256 e71ac582d6e20911692259a487e373113f83e6e769ba85212efc70025a030e56
COPYRIGHT
+SHA256 9329676fd1e3f8631b9c3cacce1e66c22048c69ea5d189fc5c1e79d4a5bfec6b
COPYRIGHT
SHA256 7977c02e031153dc91d6db9d2e803671d586e59bca2c5c3dc6211f29c04d92d6 CREDITS
-SHA256 e9a2a43d884cb5297d02505597709c09bf4a8a53799a4e78a394fae9c9058767 Changes
+SHA256 178466c93b9511fc8cbf50b1348a16f258d6bb527ad454a7ae2230efee4d332a Changes
SHA256 35bc6e48ae9f06aba42a170044f623d625a4825b6c1d960959ee0e286d5e8732 INSTALL
SHA256 a4f85c6f4d6e8bdd37b7ab08013e3e3bee1fe8e910e20f8f54d5025ffe40f384 LICENSE
-SHA256 2751900f3474a3c5991fae13e049b0e4947ee9270cdc826baa2c9b26ddd6c743
MANIFEST
-SHA256 45d4b345b754c6ce3570fe36ad8653640058388f7d6e0a5ca5fae821c3e271b0
META.json
-SHA256 1488dd724007c1c143705546f8e2ed58fe1d72246292aa77187d41bbb9bbda6d
META.yml
-SHA256 7134fe3e6fe8aa12ea014a0326ce20d8f17c916272768c7b0a5e6ebbe9488ddd
Makefile.PL
-SHA256 27f9973af6d6ca0d4b2ed57e5bd332b385d208bb1f91cfac67309d0ae27359b0 README
+SHA256 1d5d1e7c5601df48bd8e8de9174078a311b3aa758b917bcfb276d3b6a03706a4
MANIFEST
+SHA256 87fbe171bb848987945bbc8101a2409fccc2cffa2c1d119def85d6a9b8303224
META.json
+SHA256 65506320ed5c35a110709380dd508fca2dd9e55c28e37c1efce1cf43af36a011
META.yml
+SHA256 9a353c65faccf4f94ffb16a32c47ee795b339c891dd964004ac6b31f0e0a83ec
Makefile.PL
+SHA256 2c90bb2f57a12f21034430caff85c6d353c1dada62ab63d3e0b6a749ff74ebe8 README
SHA256 19f3f459b9cfea0def44f03009e61bb836505472ebf33ff33082885276d4681c
dist.ini
-SHA256 9338678c431ed6e33623e36632d74774a5eeddd5916d787e00683774f065f9e2
doap.ttl
-SHA256 4855f7f3dcc5e9381934411df17ed982eb6c15bb466fa2964bee2b5afc92fd1f
lib/Sub/HandlesVia.pm
-SHA256 24020ed6c0536178e92f13fc6ab8d2b28f5ecaebe6f8b07e8348b2e24b422526
lib/Sub/HandlesVia/CodeGenerator.pm
-SHA256 f3c0237716657a787a1574207b3c87e174234400c064b5144a3fe39096841788
lib/Sub/HandlesVia/Handler.pm
-SHA256 37455533792eff3f608be08b8d4a21b6dd95f111bd4ef241413fd42dea27ef6e
lib/Sub/HandlesVia/HandlerLibrary.pm
-SHA256 500158a686e0476065af85c3cc28c155f51c1a0418061edec78e6f91f7bf7ad3
lib/Sub/HandlesVia/HandlerLibrary/Array.pm
+SHA256 dfd6d78dd711b8cfa89dec2134b6324303a345f136d74b88704ef3a18004d8c6
doap.ttl
+SHA256 d3bb5dc767de6e8d5e98b53ebc44e984367a29db8da56ad64ab5c2bc4f3a717b
lib/Sub/HandlesVia.pm
+SHA256 f1201c7a425a04723d878ddfc5e34a1e9e89945ec51eaba32d6fb74aea308faf
lib/Sub/HandlesVia/CodeGenerator.pm
+SHA256 740356033c088c4a8f7d8569e16c3ce73c60e7ff13e276d19b1934b9c449f300
lib/Sub/HandlesVia/Handler.pm
+SHA256 740cf918c094788c2f58bdafc430e8239b64719647f8a8f254e5697856580feb
lib/Sub/HandlesVia/HandlerLibrary.pm
+SHA256 78cf143c719e2dd981789a63497262f8a4ab02fe3f35b771d4bbeb032f127532
lib/Sub/HandlesVia/HandlerLibrary/Array.pm
SHA256 4cbe4e322399bf35f4c57b6eeacc20599989b9ec963e2bef5c9e51d7bdcc30d3
lib/Sub/HandlesVia/HandlerLibrary/Array.pod
-SHA256 92bcac7f0b84996b5b7f4e3d4f7300827ed94a00f9caf14e885f4a13200b9c79
lib/Sub/HandlesVia/HandlerLibrary/Bool.pm
+SHA256 f92acdcff395d8c164b8fda17948af79d357a6af16c6a45e37427d5c158a36e9
lib/Sub/HandlesVia/HandlerLibrary/Bool.pm
SHA256 b364df1453e94807beab1bf7aa59ede52f6278b89467d7ef211a13eed91e1d6b
lib/Sub/HandlesVia/HandlerLibrary/Bool.pod
-SHA256 e54f786a89edb2d392c680996c41369cea46866bb8c2aa1ff47b2b47537c71ce
lib/Sub/HandlesVia/HandlerLibrary/Code.pm
+SHA256 75fdbd72eacf5154d33b2ec40be81841f4ae63e8e8bd1753334f5d837bce0ce3
lib/Sub/HandlesVia/HandlerLibrary/Code.pm
SHA256 3d3dfbc8071576af7921fc86a406505a782667d8df05e6b868ec5ca96811ef79
lib/Sub/HandlesVia/HandlerLibrary/Code.pod
-SHA256 00e090cd5f6fdc335971f6717ce4cba90761877ea88771d699b481f393b842ff
lib/Sub/HandlesVia/HandlerLibrary/Counter.pm
+SHA256 6783923ccc2f269c729e3815026b2ecc274b90bb645004d23e667b5ce4e9cf5c
lib/Sub/HandlesVia/HandlerLibrary/Counter.pm
SHA256 0e4960e3e6bf46c6043da8d1dee8dc46c94b073bb997ef73195391bff9f8323f
lib/Sub/HandlesVia/HandlerLibrary/Counter.pod
-SHA256 7909dea6579d46813f2b5db177b95d4e73aa6922254b8089a9d65fc4d8cd3f15
lib/Sub/HandlesVia/HandlerLibrary/Hash.pm
+SHA256 bf285f6df0b47ef550ff91975213b512cfafe20956a4c1600e831c69d14ed898
lib/Sub/HandlesVia/HandlerLibrary/Hash.pm
SHA256 60f3595bb3ab77420948e04272d2c5089cda1e04a0a4a53fe1c9a18c120849d3
lib/Sub/HandlesVia/HandlerLibrary/Hash.pod
-SHA256 b652a02bea9ff4952015907ec61458e0bf3deb262b8ef8fa8dbd9f5635f2c9e1
lib/Sub/HandlesVia/HandlerLibrary/Number.pm
+SHA256 ffe113e32e2a072eaee3e46ec0e3a682330637e681ea9ec708e74e77f03bd3a0
lib/Sub/HandlesVia/HandlerLibrary/Number.pm
SHA256 63e76521c76c1d15cce086eebc636b408342afa20fa863f2f5d27e2c1b4aba91
lib/Sub/HandlesVia/HandlerLibrary/Number.pod
-SHA256 a2ed81094b9910ee04f04fae1aaee79e3eb8f8bd8f6fb5f8928c8febbc878b81
lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
+SHA256 d5c992dd2be00bbc7026ffeaa8d2cb464d97248bbf9c1977d07bc225fc678916
lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
SHA256 f729f7562a305cbd9d566aa9dda983370d4ff64f284ac8b548ae2c1436a021ef
lib/Sub/HandlesVia/HandlerLibrary/Scalar.pod
-SHA256 aafa473397adbad6836ae1eeb5990c812b66e2ef8435487640bb1e601a076f87
lib/Sub/HandlesVia/HandlerLibrary/String.pm
+SHA256 97dd193c1e988e2be5a18e58e2a0fb2ba51644baaa0a74cc8ba9ac966a756121
lib/Sub/HandlesVia/HandlerLibrary/String.pm
SHA256 9a16dde746b64d01b18082ca8cca24571865bcdced3e161fddaa68768d737e04
lib/Sub/HandlesVia/HandlerLibrary/String.pod
-SHA256 61a58deaeaf5b30ddcba9b8d862c9a45a6d2e57ac20b1c4f7edcf90371411871
lib/Sub/HandlesVia/Toolkit.pm
-SHA256 f08579d59d75c6e9861b4cc9aeddc4d30aeeed7828ab7f3989bad4cfde8ac184
lib/Sub/HandlesVia/Toolkit/Moo.pm
-SHA256 15f394d9c73cfd302492240954ab9bcb1538295c2851567d59f104ea3ad6c2a1
lib/Sub/HandlesVia/Toolkit/Moose.pm
-SHA256 e7f815d7bb6be9b2171b9938749bc16d9c1bd780a5842289e853f1f98cbf1e22
lib/Sub/HandlesVia/Toolkit/Mouse.pm
-SHA256 21b8282ce62d604c9679e67e70ae6beb5bf3fd745bf682aa9249128120f052db
lib/Sub/HandlesVia/Toolkit/Plain.pm
+SHA256 72a246612cf1fb7813572a7272d3595270a94dce53e2aa8797c37580c79a74d2
lib/Sub/HandlesVia/Toolkit.pm
+SHA256 47664509e0a2293e223fa20d3a1a87a710dcbb388d81e60c790171a02ba1dee7
lib/Sub/HandlesVia/Toolkit/Mite.pm
+SHA256 cded22f230bd664b4099e4550c6ac7e9eaac71c70fe0304ee12dc6be5ee10dec
lib/Sub/HandlesVia/Toolkit/Moo.pm
+SHA256 28d42d9bb26634e31039285690df7325023055bc26138f56fa7aeeeb6b22591a
lib/Sub/HandlesVia/Toolkit/Moose.pm
+SHA256 79929aa0f5eed31d1d01f77d684cdc4c625141d1ac1a704bc6ee4f12fe00c957
lib/Sub/HandlesVia/Toolkit/Mouse.pm
+SHA256 5aa6f232da426bf99d3d1cc0c61ed01fe559e1df3452950d48dade8ca5bcfa3b
lib/Sub/HandlesVia/Toolkit/Plain.pm
SHA256 2078046dd5726576304630c6f0ff72da1b938007a1cb49429327b569e689f81c
t/00begin.t
SHA256 5be3d6935e48a88ff74c38cd8a03e911b2f3d4f49ac639246e40b1e88e8fcb32
t/01basic.t
SHA256 345d5ded3095f416270828ff24316643c1358172a49c6984694085e91eadd611
t/02moo.t
@@ -122,6 +123,11 @@
SHA256 fbc667741d6c338fdc55320066732f307695ee0a9016319598898f406ebe9a01
t/30egpod/scalar.t
SHA256 ae267058620cc77af8aedf98cc35ad449d758fd87cea428a3dec998f1a456b7d
t/30egpod/string.t
SHA256 5c554a286988e45bf3b265183015573be57e07b1fdc8f3d31e6adfaf4f0629a4
t/31egpod_dummy.t
+SHA256 be2ea3f2f766193b9f3458abf20c75bd0668311056f86950375e7a15c95796df
t/40mite/.mite/config
+SHA256 2f86e8781d7048e7207cf5dc5a204eed46de1bc126582df488920af2c7ba8140
t/40mite/basic.t
+SHA256 16be70f8200bf3cd729ecfc162c4a22c50c293ad54ec840186bc48beb5523585
t/40mite/lib/MyTest.pm
+SHA256 54d9c4ece57511310f8b52e16d8e5ef39f8c0eff3e5593f7ac3c2e0438a0538c
t/40mite/lib/MyTest.pm.mite.pm
+SHA256 cab00f8e4e0803935eb28a19fa8e30ab9b085432ab8d39587bfdec40ca3b5abb
t/40mite/lib/MyTest/Mite.pm
SHA256 3dc956219599a77e77a038efcc753a822d57646ffdda8109433df635d7cf79f3
t/94cmp.t
SHA256 c2b7cf16e9eab452e875e0303e5f4e7722d69ba4d5ada363caff9e807cfaa67c
t/95any.t
SHA256 f393205104cde3e714e7a078b801fed222fd941a366c2d9acde59e6ca93e282e
t/96foreach.t
@@ -130,7 +136,7 @@
SHA256 e7ac6a8eb214f919ddb67cb5ec0810b0f80719f6fe09d3123dcbf19b1b0a742e
t/99headtail.t
-----BEGIN PGP SIGNATURE-----
-iF0EAREDAB0WIQRVJKj/4+s6z4WzNujOv4Eoaip9OQUCYqsHRQAKCRDOv4Eoaip9
-OSpOAJ9anpnILhYj06U4kjv5swgP0a688QCeP4NAdP1SV5pDFn4C4SP6BOOmu2U=
-=Eel0
+iF0EAREDAB0WIQRVJKj/4+s6z4WzNujOv4Eoaip9OQUCYrzpkwAKCRDOv4Eoaip9
+OYxlAKChGuADgOAYPIn5j+Mg5eARp2JCRQCdE8jHljDsOrTJNjsANl8dARw8q9I=
+=f50o
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/doap.ttl
new/Sub-HandlesVia-0.027/doap.ttl
--- old/Sub-HandlesVia-0.025/doap.ttl 2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/doap.ttl 2022-06-30 02:08:51.000000000 +0200
@@ -33,7 +33,7 @@
doap:maintainer <http://purl.org/NET/cpan-uri/person/tobyink>;
doap:name "Sub-HandlesVia";
doap:programming-language "Perl";
- doap:release
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-001>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-002>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-003>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-004>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-005>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-006>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-007>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_000>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_001>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_002>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_003>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-009>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-010>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-011>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-012>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-013>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-014>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-015>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-016>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-017>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-018>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-019>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-020>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-021>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-022>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-023>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-024>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-025>;
+ doap:release
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-001>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-002>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-003>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-004>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-005>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-006>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-007>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_000>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_001>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_002>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-008_003>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-009>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-010>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-011>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-012>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-013>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-014>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-015>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-016>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-017>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-018>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-019>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-020>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-021>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-022>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-023>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-024>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-025>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-026>,
<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-027>;
doap:repository [
a doap:GitRepository;
doap:browse <https://github.com/tobyink/p5-sub-handlesvia>;
@@ -533,6 +533,34 @@
doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.025.tar.gz>;
doap:revision "0.025"^^xsd:string.
+<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-026>
+ a doap:Version;
+ dc:identifier "Sub-HandlesVia-0.026"^^xsd:string;
+ dc:issued "2022-06-30"^^xsd:date;
+ doap-changeset:changeset [
+ doap-changeset:item [
+ a doap-changeset:Addition;
+ rdfs:label "Support classes built with Mite.";
+ ];
+ ];
+ doap-changeset:released-by
<http://purl.org/NET/cpan-uri/person/tobyink>;
+ doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.026.tar.gz>;
+ doap:revision "0.026"^^xsd:string.
+
+<http://purl.org/NET/cpan-uri/dist/Sub-HandlesVia/v_0-027>
+ a doap:Version;
+ dc:identifier "Sub-HandlesVia-0.027"^^xsd:string;
+ dc:issued "2022-06-30"^^xsd:date;
+ doap-changeset:changeset [
+ doap-changeset:item [
+ a doap-changeset:Tests;
+ rdfs:label "Skip Mite test on Perl < 5.10.1";
+ ];
+ ];
+ doap-changeset:released-by
<http://purl.org/NET/cpan-uri/person/tobyink>;
+ doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.027.tar.gz>;
+ doap:revision "0.027"^^xsd:string.
+
<http://purl.org/NET/cpan-uri/person/tobyink>
a foaf:Person;
foaf:mbox <mailto:[email protected]>;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/CodeGenerator.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/CodeGenerator.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/CodeGenerator.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/CodeGenerator.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::CodeGenerator;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Scope::Guard ();
use Class::Tiny (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Handler.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Handler.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Handler.pm 2022-06-16
12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Handler.pm 2022-06-30
02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::Handler;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Class::Tiny (
qw(
@@ -203,7 +203,7 @@
package Sub::HandlesVia::Handler::Traditional;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
BEGIN { our @ISA = 'Sub::HandlesVia::Handler' };
@@ -225,7 +225,7 @@
package Sub::HandlesVia::Handler::CodeRef;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
BEGIN { our @ISA = 'Sub::HandlesVia::Handler' };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Array.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Array.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Array.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Array.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::Array;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Bool.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Bool.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Bool.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Bool.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::Bool;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Code.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Code.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Code.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Code.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::Code;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Counter.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Counter.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Counter.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Counter.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::Counter;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Hash.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Hash.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Hash.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Hash.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::Hash;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Number.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Number.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Number.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Number.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::Number;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/Scalar.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::Scalar;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/String.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/String.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary/String.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary/String.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary::String;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::HandlerLibrary;
our @ISA = 'Sub::HandlesVia::HandlerLibrary';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/HandlerLibrary.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/HandlerLibrary.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::HandlerLibrary;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Types::Standard qw( Any Item );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Mite.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Mite.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Mite.pm 1970-01-01
01:00:00.000000000 +0100
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Mite.pm 2022-06-30
02:08:51.000000000 +0200
@@ -0,0 +1,183 @@
+use 5.008;
+use strict;
+use warnings;
+
+package Sub::HandlesVia::Toolkit::Mite;
+
+our $AUTHORITY = 'cpan:TOBYINK';
+our $VERSION = '0.027';
+
+use Sub::HandlesVia::Toolkit;
+our @ISA = 'Sub::HandlesVia::Toolkit';
+
+sub setup_for {
+ my $me = shift;
+ my ($target) = @_;
+ $me->install_has_wrapper($target);
+}
+
+my %SPECS;
+sub install_has_wrapper {
+ my $me = shift;
+ my ($target) = @_;
+
+ no strict 'refs';
+ no warnings 'redefine';
+
+ my $orig = \&{ "$target\::has" };
+ *{ "$target\::has" } = sub {
+ my ( $names, %spec ) = @_;
+ return $orig->($names, %spec) unless $spec{handles}; # shortcut
+
+ $names = [ $names ] unless ref($names);
+ for my $name ( @$names ) {
+ my $shv = $me->clean_spec( $target, $name, \%spec );
+ $SPECS{$target}{$name} = \%spec;
+ $orig->( $name, %spec );
+ $me->install_delegations( $shv ) if $shv;
+ }
+
+ return;
+ };
+}
+
+my @method_name_generator = (
+ { # public
+ reader => sub { "get_$_" },
+ writer => sub { "set_$_" },
+ accessor => sub { $_ },
+ clearer => sub { "clear_$_" },
+ predicate => sub { "has_$_" },
+ builder => sub { "_build_$_" },
+ trigger => sub { "_trigger_$_" },
+ },
+ { # private
+ reader => sub { "_get_$_" },
+ writer => sub { "_set_$_" },
+ accessor => sub { $_ },
+ clearer => sub { "_clear_$_" },
+ predicate => sub { "_has_$_" },
+ builder => sub { "_build_$_" },
+ trigger => sub { "_trigger_$_" },
+ },
+);
+
+sub code_generator_for_attribute {
+ my ( $me, $target, $attrname ) = ( shift, @_ );
+
+ my $name = $attrname->[0];
+ my $spec = $SPECS{$target}{$name};
+ my $env = {};
+
+ my $private = 0+!! ( $name =~ /^_/ );
+
+ $spec->{is} ||= 'bare';
+ if ( $spec->{is} eq 'lazy' ) {
+ $spec->{builder} = 1 unless exists $spec->{builder};
+ $spec->{is} = 'ro';
+ }
+ if ( $spec->{is} eq 'ro' ) {
+ $spec->{reader} = $name unless exists $spec->{reader};
+ }
+ if ( $spec->{is} eq 'rw' ) {
+ $spec->{accessor} = $name unless exists $spec->{accessor};
+ }
+ if ( $spec->{is} eq 'rwp' ) {
+ $spec->{reader} = $name unless exists $spec->{reader};
+ $spec->{writer} = "_set_$name" unless exists $spec->{writer};
+ }
+
+ for my $property ( 'reader', 'writer', 'accessor', 'builder' ) {
+ my $methodname = $spec->{$property};
+ if ( defined $methodname and $methodname eq 1 ) {
+ my $gen = $method_name_generator[$private]{$property};
+ local $_ = $name;
+ $spec->{$property} = $gen->( $_ );
+ }
+ }
+
+ my ( $get, $set, $get_is_lvalue, $set_checks_isa, $default, $slot );
+
+ if ( my $reader = $spec->{reader} || $spec->{accessor} ) {
+ $get = sub { shift->generate_self . "->$reader" };
+ $get_is_lvalue = !!0;
+ }
+ else {
+ $get = sub { shift->generate_self . "->{q[$name]}" };
+ $get_is_lvalue = !!1;
+ }
+
+ if ( my $writer = $spec->{writer} || $spec->{accessor} ) {
+ $set = sub {
+ my ( $gen, $expr ) = @_;
+ $gen->generate_self . "->$writer($expr)";
+ };
+ $set_checks_isa = !!1;
+ }
+ else {
+ $set = sub {
+ my ( $gen, $expr ) = @_;
+ "( " . $gen->generate_self . "->{q[$name]} = $expr )";
+ };
+ $set_checks_isa = !!0;
+ }
+
+ $slot = sub { shift->generate_self . "->{q[$name]}" };
+
+ if ( ref $spec->{builder} ) {
+ $default = $spec->{builder};
+ $env->{'$shv_default_for_reset'} = \$default;
+ }
+ elsif ( $spec->{builder} ) {
+ $default = $spec->{builder};
+ }
+ elsif ( ref $spec->{default} ) {
+ $default = $spec->{default};
+ $env->{'$shv_default_for_reset'} = \$default;
+ }
+ elsif ( exists $spec->{default} ) {
+ my $value = $spec->{default};
+ $default = sub { $value };
+ $env->{'$shv_default_for_reset'} = \$default;
+ }
+
+ require Sub::HandlesVia::CodeGenerator;
+ return 'Sub::HandlesVia::CodeGenerator'->new(
+ toolkit => $me,
+ target => $target,
+ attribute => $name,
+ env => $env,
+ isa => $spec->{type},
+ coerce => $spec->{coerce},
+ generator_for_get => $get,
+ generator_for_set => $set,
+ get_is_lvalue => $get_is_lvalue,
+ set_checks_isa => $set_checks_isa,
+ set_strictly => !!1,
+ generator_for_default => sub {
+ my ( $gen, $handler ) = @_ or die;
+ if ( !$default and $handler ) {
+ return $handler->default_for_reset->();
+ }
+ elsif ( is_CodeRef $default ) {
+ return sprintf(
+ '(%s)->$shv_default_for_reset',
+ $gen->generate_self,
+ );
+ }
+ elsif ( is_Str $default ) {
+ require B;
+ return sprintf(
+ '(%s)->${\ %s }',
+ $gen->generate_self,
+ B::perlstring( $default ),
+ );
+ }
+ return;
+ },
+ ( $slot ? ( generator_for_slot => $slot ) : () ),
+ );
+}
+
+1;
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Moo.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Moo.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Moo.pm 2022-06-16
12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Moo.pm 2022-06-30
02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::Toolkit::Moo;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::Toolkit;
our @ISA = 'Sub::HandlesVia::Toolkit';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Moose.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Moose.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Moose.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Moose.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::Toolkit::Moose;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::Toolkit;
our @ISA = 'Sub::HandlesVia::Toolkit';
@@ -156,7 +156,7 @@
package Sub::HandlesVia::Toolkit::Moose::PackageTrait;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Role::Tiny;
@@ -194,7 +194,7 @@
package Sub::HandlesVia::Toolkit::Moose::RoleTrait;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Role::Tiny;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Mouse.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Mouse.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Mouse.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Mouse.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::Toolkit::Mouse;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::Toolkit;
our @ISA = 'Sub::HandlesVia::Toolkit';
@@ -155,7 +155,7 @@
package Sub::HandlesVia::Toolkit::Mouse::PackageTrait;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Role::Tiny;
@@ -193,7 +193,7 @@
package Sub::HandlesVia::Toolkit::Mouse::RoleTrait;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Role::Tiny;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Plain.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Plain.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit/Plain.pm
2022-06-16 12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit/Plain.pm
2022-06-30 02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::Toolkit::Plain;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Sub::HandlesVia::Toolkit;
our @ISA = 'Sub::HandlesVia::Toolkit';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia/Toolkit.pm 2022-06-16
12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia/Toolkit.pm 2022-06-30
02:08:51.000000000 +0200
@@ -5,7 +5,7 @@
package Sub::HandlesVia::Toolkit;
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
use Type::Params qw(compile_named_oo);
use Types::Standard qw( ArrayRef HashRef Str Num Int CodeRef Bool Item );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia.pm
new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia.pm
--- old/Sub-HandlesVia-0.025/lib/Sub/HandlesVia.pm 2022-06-16
12:34:45.000000000 +0200
+++ new/Sub-HandlesVia-0.027/lib/Sub/HandlesVia.pm 2022-06-30
02:08:51.000000000 +0200
@@ -7,7 +7,7 @@
use Exporter::Shiny qw( delegations );
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '0.025';
+our $VERSION = '0.027';
sub _generate_delegations {
my ($me, $name, $args, $globals) = (shift, @_);
@@ -79,6 +79,14 @@
return 'Mouse';
}
+ {
+ no strict 'refs';
+ no warnings 'once';
+ if ( ${"$target\::USES_MITE"} ) {
+ return 'Mite';
+ }
+ }
+
return 'Plain';
}
@@ -283,6 +291,27 @@
(If you have a moose in your kitchen, that might be even worse than
the mouse.)
+=head2 Using with Mite
+
+You should be able to use Sub::HandlesVia with L<Mite> 0.001011 or above.
+Your project will still have a dependency on Sub::HandlesVia.
+
+ package MyApp::Kitchen {
+ use MyApp::Mite;
+ use Sub::HandlesVia;
+
+ has food => (
+ is => 'ro',
+ isa => 'ArrayRef[Str]',
+ handles_via => 'Array',
+ default => sub { [] },
+ handles => {
+ 'add_food' => 'push',
+ 'find_food' => 'grep',
+ },
+ );
+ }
+
=head2 Using with Anything
For Moose and Mouse, Sub::HandlesVia can use their metaobject protocols
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/t/40mite/.mite/config
new/Sub-HandlesVia-0.027/t/40mite/.mite/config
--- old/Sub-HandlesVia-0.025/t/40mite/.mite/config 1970-01-01
01:00:00.000000000 +0100
+++ new/Sub-HandlesVia-0.027/t/40mite/.mite/config 2022-06-30
02:08:51.000000000 +0200
@@ -0,0 +1,5 @@
+---
+compiled_to: lib
+project: MyTest
+shim: MyTest::Mite
+source_from: lib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/t/40mite/basic.t
new/Sub-HandlesVia-0.027/t/40mite/basic.t
--- old/Sub-HandlesVia-0.025/t/40mite/basic.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Sub-HandlesVia-0.027/t/40mite/basic.t 2022-06-30 02:08:51.000000000
+0200
@@ -0,0 +1,43 @@
+=pod
+
+=encoding utf-8
+
+=head1 PURPOSE
+
+Test that Sub::HandlesVia works with L<Mite>.
+
+=head1 AUTHOR
+
+Toby Inkster E<lt>[email protected]<gt>.
+
+=head1 COPYRIGHT AND LICENCE
+
+This software is copyright (c) 2022 by Toby Inkster.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+use strict;
+use warnings;
+use Test::More;
+use Test::Requires '5.010001';
+
+use FindBin qw($Bin);
+use lib "$Bin/lib";
+
+use MyTest;
+
+my $object = MyTest->new;
+
+$object->push( 22 );
+$object->push( 33 );
+$object->push( 44 );
+
+is( $object->pop, 44 );
+is_deeply( $object->list, [ 22, 33 ] );
+is( $object->pop, 33 );
+is_deeply( $object->list, [ 22 ] );
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/t/40mite/lib/MyTest/Mite.pm
new/Sub-HandlesVia-0.027/t/40mite/lib/MyTest/Mite.pm
--- old/Sub-HandlesVia-0.025/t/40mite/lib/MyTest/Mite.pm 1970-01-01
01:00:00.000000000 +0100
+++ new/Sub-HandlesVia-0.027/t/40mite/lib/MyTest/Mite.pm 2022-06-30
02:08:51.000000000 +0200
@@ -0,0 +1,203 @@
+use 5.010001;
+use strict;
+use warnings;
+## skip Test::Tabs
+
+package MyTest::Mite;
+
+# NOTE: Since the intention is to ship this file with a project, this file
+# cannot have any non-core dependencies.
+
+use strict;
+use warnings;
+
+sub _is_compiling {
+ return $ENV{MITE_COMPILE} ? 1 : 0;
+}
+
+sub import {
+ my $class = shift;
+ my($caller, $file) = caller;
+
+ # Turn on warnings and strict in the caller
+ warnings->import;
+ strict->import;
+
+ if( _is_compiling() ) {
+ require Mite::Project;
+ Mite::Project->default->inject_mite_functions(
+ package => $caller,
+ file => $file,
+ );
+ }
+ else {
+ # Work around Test::Compile's tendency to 'use' modules.
+ # Mite.pm won't stand for that.
+ return if $ENV{TEST_COMPILE};
+
+ # Changes to this filename must be coordinated with Mite::Compiled
+ my $mite_file = $file . ".mite.pm";
+ if( !-e $mite_file ) {
+ require Carp;
+ Carp::croak("Compiled Mite file ($mite_file) for $file is
missing");
+ }
+
+ {
+ local @INC = ('.', @INC);
+ require $mite_file;
+ }
+
+ $class->_install_exports( $caller, $file );
+ }
+}
+
+sub _install_exports {
+ my ( $class, $caller, $file ) = ( shift, @_ );
+
+ no strict 'refs';
+ *{ $caller .'::has' } = sub {
+ my $names = shift;
+ $names = [$names] unless ref $names;
+ my %args = @_;
+ for my $name ( @$names ) {
+ $name =~ s/^\+//;
+
+ my $default = $args{default};
+ if ( ref $default eq 'CODE' ) {
+ ${$caller .'::__'.$name.'_DEFAULT__'} = $default;
+ }
+
+ my $builder = $args{builder};
+ if ( ref $builder eq 'CODE' ) {
+ *{"$caller\::_build_$name"} = $builder;
+ }
+
+ my $trigger = $args{trigger};
+ if ( ref $trigger eq 'CODE' ) {
+ *{"$caller\::_trigger_$name"} = $trigger;
+ }
+ }
+
+ return;
+ };
+
+ # Method modifiers - these actually happen at runtime.
+ {
+ my $parse_args = sub {
+ my $coderef = pop;
+ my $names = [ map { ref($_) ? @$_ : $_ } @_ ];
+ ( $names, $coderef );
+ };
+
+ my $get_orig = sub {
+ my $name = shift;
+ \&{ "$caller\::$name" };
+ };
+
+ *{ $caller .'::before' } = sub {
+ my ( $names, $coderef ) = &$parse_args;
+ for my $name ( @$names ) {
+ my $orig = $get_orig->($name);
+ local $@;
+ eval <<"BEFORE" or die $@;
+ package $caller;
+ no warnings 'redefine';
+ sub $name {
+ \$coderef->( \@_ );
+ \$orig->( \@_ );
+ }
+ 1;
+BEFORE
+ }
+ return;
+ };
+
+ *{ $caller .'::after' } = sub {
+ my ( $names, $coderef ) = &$parse_args;
+ for my $name ( @$names ) {
+ my $orig = $get_orig->($name);
+ local $@;
+ eval <<"AFTER" or die $@;
+ package $caller;
+ no warnings 'redefine';
+ sub $name {
+ my \@r;
+ if ( wantarray ) {
+ \@r = \$orig->( \@_ );
+ }
+ elsif ( defined wantarray ) {
+ \@r = scalar \$orig->( \@_ );
+ }
+ else {
+ \$orig->( \@_ );
+ 1;
+ }
+ \$coderef->( \@_ );
+ wantarray ? \@r : \$r[0];
+ }
+ 1;
+AFTER
+ }
+ return;
+ };
+
+ *{ $caller .'::around' } = sub {
+ my ( $names, $coderef ) = &$parse_args;
+ for my $name ( @$names ) {
+ my $orig = $get_orig->($name);
+ local $@;
+ eval <<"AROUND" or die $@;
+ package $caller;
+ no warnings 'redefine';
+ sub $name {
+ \$coderef->( \$orig, \@_ );
+ }
+ 1;
+AROUND
+ }
+ return;
+ };
+ }
+
+ # Inject blank Mite routines
+ for my $name (qw( extends )) {
+ *{ $caller .'::'. $name } = sub {};
+ }
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MyTest::Mite - shim to load .mite.pm files
+
+=head1 DESCRIPTION
+
+This is a copy of L<Mite::Shim>.
+
+=head1 AUTHOR
+
+Michael G Schwern E<lt>[email protected]<gt>.
+
+Toby Inkster E<lt>[email protected]<gt>.
+
+=head1 COPYRIGHT AND LICENCE
+
+This software is copyright (c) 2011-2014 by Michael G Schwern.
+
+This software is copyright (c) 2022 by Toby Inkster.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=head1 DISCLAIMER OF WARRANTIES
+
+THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/t/40mite/lib/MyTest.pm
new/Sub-HandlesVia-0.027/t/40mite/lib/MyTest.pm
--- old/Sub-HandlesVia-0.025/t/40mite/lib/MyTest.pm 1970-01-01
01:00:00.000000000 +0100
+++ new/Sub-HandlesVia-0.027/t/40mite/lib/MyTest.pm 2022-06-30
02:08:51.000000000 +0200
@@ -0,0 +1,17 @@
+package MyTest;
+
+use MyTest::Mite;
+use Sub::HandlesVia;
+
+has list => (
+ is => 'ro',
+ isa => 'ArrayRef',
+ default => sub { [] },
+ handles_via => 'Array',
+ handles => {
+ push => 'push',
+ pop => 'pop',
+ },
+);
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sub-HandlesVia-0.025/t/40mite/lib/MyTest.pm.mite.pm
new/Sub-HandlesVia-0.027/t/40mite/lib/MyTest.pm.mite.pm
--- old/Sub-HandlesVia-0.025/t/40mite/lib/MyTest.pm.mite.pm 1970-01-01
01:00:00.000000000 +0100
+++ new/Sub-HandlesVia-0.027/t/40mite/lib/MyTest.pm.mite.pm 2022-06-30
02:08:51.000000000 +0200
@@ -0,0 +1,83 @@
+{
+package MyTest;
+our $USES_MITE = 1;
+use strict;
+use warnings;
+## skip Test::Tabs
+
+sub new {
+ my $class = ref($_[0]) ? ref(shift) : shift;
+ my $meta = ( $Mite::META{$class} ||= $class->__META__ );
+ my $self = bless {}, $class;
+ my $args = $meta->{HAS_BUILDARGS} ? $class->BUILDARGS( @_ ) : { ( @_ == 1
) ? %{$_[0]} : @_ };
+ my $no_build = delete $args->{__no_BUILD__};
+
+ # Initialize attributes
+ if ( exists($args->{q[list]}) ) { do { package MyTest::Mite;
ref($args->{q[list]}) eq 'ARRAY' } or require Carp && Carp::croak(q[Type check
failed in constructor: list should be ArrayRef]); $self->{q[list]} =
$args->{q[list]}; } else { my $value = do { my $default_value = do { our
$__list_DEFAULT__; $__list_DEFAULT__->($self) }; (ref($default_value) eq
'ARRAY') or do { require Carp; Carp::croak(q[Type check failed in default: list
should be ArrayRef]) }; $default_value }; $self->{q[list]} = $value; }
+
+ # Enforce strict constructor
+ my @unknown = grep not( do { package MyTest::Mite; (defined and !ref and
m{\A(?:list)\z}) } ), keys %{$args}; @unknown and require Carp and
Carp::croak("Unexpected keys in constructor: " . join(q[, ], sort @unknown));
+
+ # Call BUILD methods
+ unless ( $no_build ) { $_->($self, $args) for @{ $meta->{BUILD} || [] } };
+
+ return $self;
+}
+
+defined ${^GLOBAL_PHASE}
+ or eval { require Devel::GlobalDestruction; 1 }
+ or do { *Devel::GlobalDestruction::in_global_destruction = sub { undef;
} };
+
+sub DESTROY {
+ my $self = shift;
+ my $class = ref( $self ) || $self;
+ my $meta = ( $Mite::META{$class} ||= $class->__META__ );
+ my $in_global_destruction = defined ${^GLOBAL_PHASE}
+ ? ${^GLOBAL_PHASE} eq 'DESTRUCT'
+ : Devel::GlobalDestruction::in_global_destruction();
+ for my $demolisher ( @{ $meta->{DEMOLISH} || [] } ) {
+ my $e = do {
+ local ( $?, $@ );
+ eval { $demolisher->( $self, $in_global_destruction ) };
+ $@;
+ };
+ no warnings 'misc'; # avoid (in cleanup) warnings
+ die $e if $e; # rethrow
+ }
+ return;
+}
+
+sub __META__ {
+ no strict 'refs';
+ require mro;
+ my $class = shift; $class = ref($class) || $class;
+ my $linear_isa = mro::get_linear_isa( $class );
+ return {
+ BUILD => [
+ map { ( *{$_}{CODE} ) ? ( *{$_}{CODE} ) : () }
+ map { "$_\::BUILD" } reverse @$linear_isa
+ ],
+ DEMOLISH => [
+ map { ( *{$_}{CODE} ) ? ( *{$_}{CODE} ) : () }
+ map { "$_\::DEMOLISH" } @$linear_isa
+ ],
+ HAS_BUILDARGS => $class->can('BUILDARGS'),
+ };
+}
+
+my $__XS = !$ENV{MITE_PURE_PERL} && eval { require Class::XSAccessor;
Class::XSAccessor->VERSION("1.19") };
+
+# Accessors for list
+if ( $__XS ) {
+ Class::XSAccessor->import(
+ chained => 1,
+ getters => { q[list] => q[list] },
+ );
+}
+else {
+ *list = sub { @_ > 1 ? require Carp && Carp::croak("list is a read-only
attribute of @{[ref $_[0]]}") : $_[0]{q[list]} };
+}
+
+
+1;
+}
\ No newline at end of file