Hello community,
here is the log from the commit of package perl-Exporter-Tiny for
openSUSE:Factory checked in at 2018-07-23 17:58:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Exporter-Tiny (Old)
and /work/SRC/openSUSE:Factory/.perl-Exporter-Tiny.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Exporter-Tiny"
Mon Jul 23 17:58:18 2018 rev:6 rq:624421 version:1.002001
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Exporter-Tiny/perl-Exporter-Tiny.changes
2017-10-26 18:41:40.455538710 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Exporter-Tiny.new/perl-Exporter-Tiny.changes
2018-07-23 17:58:20.805129222 +0200
@@ -1,0 +2,27 @@
+Wed Jul 18 05:22:03 UTC 2018 - [email protected]
+
+- updated to 1.002001
+ see /usr/share/doc/packages/perl-Exporter-Tiny/Changes
+
+ 1.002001 2018-07-17
+
+ [ Packaging ]
+ - Fix dates in changelog.
+
+ 1.002000 2018-07-17
+
+ [ Packaging ]
+ - Repackage as 1.002000.
+
+ 1.001_001 2018-06-29
+
+ [ Test Suite ]
+ - Improved test coverage, up from 88.78% on coveralls.io to 96.74%.
+
+ 1.001_000 2018-06-26
+
+ - Added: Support for exporting non-code symbols such as $Foo, @Bar, and
+ %Baz.
+ - Added: Support for generating non-code symbols.
+
+-------------------------------------------------------------------
Old:
----
Exporter-Tiny-1.000000.tar.gz
New:
----
Exporter-Tiny-1.002001.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Exporter-Tiny.spec ++++++
--- /var/tmp/diff_new_pack.PIUS4e/_old 2018-07-23 17:58:21.205128723 +0200
+++ /var/tmp/diff_new_pack.PIUS4e/_new 2018-07-23 17:58:21.209128718 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Exporter-Tiny
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,11 +17,11 @@
Name: perl-Exporter-Tiny
-Version: 1.000000
+Version: 1.002001
Release: 0
%define cpan_name Exporter-Tiny
Summary: An Exporter with the Features of Sub::Exporter but Only Core
Dependencies
-License: Artistic-1.0 or GPL-1.0+
+License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Exporter-Tiny/
Source0:
https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/%{cpan_name}-%{version}.tar.gz
@@ -72,6 +72,7 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes COPYRIGHT CREDITS doap.ttl examples README LICENSE
+%doc Changes COPYRIGHT CREDITS doap.ttl examples README TODO
+%license LICENSE
%changelog
++++++ Exporter-Tiny-1.000000.tar.gz -> Exporter-Tiny-1.002001.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/COPYRIGHT
new/Exporter-Tiny-1.002001/COPYRIGHT
--- old/Exporter-Tiny-1.000000/COPYRIGHT 2017-05-22 13:10:46.000000000
+0200
+++ new/Exporter-Tiny-1.002001/COPYRIGHT 2018-07-17 13:00:36.000000000
+0200
@@ -16,26 +16,35 @@
Copyright: This software is copyright (c) 2013-2014, 2017 by Toby Inkster.
License: GPL-1.0+ or Artistic-1.0
+Files: lib/Exporter/Shiny.pm
+ t/05shiny.t
+ t/06notwant.t
+ t/07regexp.t
+ t/08tags.t
+ t/09warnings.t
+ t/10no.t
+Copyright: This software is copyright (c) 2014, 2017 by Toby Inkster.
+License: GPL-1.0+ or Artistic-1.0
+
Files: COPYRIGHT
CREDITS
- Changes
INSTALL
LICENSE
+ Makefile.PL
+Copyright: Copyright 1970 Toby Inkster.
+License: GPL-1.0+ or Artistic-1.0
+
+Files: Changes
META.json
META.yml
- Makefile.PL
doap.ttl
-Copyright: Copyright 2017 Toby Inkster.
+Copyright: Copyright 2018 Toby Inkster.
License: GPL-1.0+ or Artistic-1.0
-Files: lib/Exporter/Shiny.pm
- t/05shiny.t
- t/06notwant.t
- t/07regexp.t
- t/08tags.t
- t/09warnings.t
- t/10no.t
-Copyright: This software is copyright (c) 2014, 2017 by Toby Inkster.
+Files: t/11noncode.t
+ t/12noncodegenerators.t
+ t/13doesntexist.t
+Copyright: This software is copyright (c) 2018 by Toby Inkster.
License: GPL-1.0+ or Artistic-1.0
Files: dist.ini
@@ -47,15 +56,19 @@
Copyright: None
License: public-domain
+Files: TODO
+Copyright: Unknown
+License: Unknown
+
License: Artistic-1.0
- This software is Copyright (c) 2017 by the copyright holder(s).
+ This software is Copyright (c) 2018 by the copyright holder(s).
This is free software, licensed under:
The Artistic License 1.0
License: GPL-1.0
- This software is Copyright (c) 2017 by the copyright holder(s).
+ This software is Copyright (c) 2018 by the copyright holder(s).
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/Changes
new/Exporter-Tiny-1.002001/Changes
--- old/Exporter-Tiny-1.000000/Changes 2017-05-22 13:10:45.000000000 +0200
+++ new/Exporter-Tiny-1.002001/Changes 2018-07-17 13:00:36.000000000 +0200
@@ -6,6 +6,27 @@
Bug tracker: <http://rt.cpan.org/Dist/Display.html?Queue=Exporter-Tiny>
Maintainer: Toby Inkster (TOBYINK) <[email protected]>
+1.002001 2018-07-17
+
+ [ Packaging ]
+ - Fix dates in changelog.
+
+1.002000 2018-07-17
+
+ [ Packaging ]
+ - Repackage as 1.002000.
+
+1.001_001 2018-06-29
+
+ [ Test Suite ]
+ - Improved test coverage, up from 88.78% on coveralls.io to 96.74%.
+
+1.001_000 2018-06-26
+
+ - Added: Support for exporting non-code symbols such as $Foo, @Bar, and
+ %Baz.
+ - Added: Support for generating non-code symbols.
+
1.000000 2017-05-22
[ Packaging ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/LICENSE
new/Exporter-Tiny-1.002001/LICENSE
--- old/Exporter-Tiny-1.000000/LICENSE 2017-05-22 13:10:45.000000000 +0200
+++ new/Exporter-Tiny-1.002001/LICENSE 2018-07-17 13:00:36.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2017 by Toby Inkster.
+This software is copyright (c) 2018 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.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2017 by Toby Inkster.
+This software is Copyright (c) 2018 by Toby Inkster.
This is free software, licensed under:
@@ -272,7 +272,7 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2017 by Toby Inkster.
+This software is Copyright (c) 2018 by Toby Inkster.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/MANIFEST
new/Exporter-Tiny-1.002001/MANIFEST
--- old/Exporter-Tiny-1.000000/MANIFEST 2017-05-22 13:10:46.000000000 +0200
+++ new/Exporter-Tiny-1.002001/MANIFEST 2018-07-17 13:00:36.000000000 +0200
@@ -9,6 +9,7 @@
Makefile.PL
README
SIGNATURE
+TODO
dist.ini
doap.ttl
examples/Example/Exporter.pm
@@ -28,3 +29,6 @@
t/08tags.t
t/09warnings.t
t/10no.t
+t/11noncode.t
+t/12noncodegenerators.t
+t/13doesntexist.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/META.json
new/Exporter-Tiny-1.002001/META.json
--- old/Exporter-Tiny-1.000000/META.json 2017-05-22 13:10:46.000000000
+0200
+++ new/Exporter-Tiny-1.002001/META.json 2018-07-17 13:00:36.000000000
+0200
@@ -4,7 +4,7 @@
"Toby Inkster (TOBYINK) <[email protected]>"
],
"dynamic_config" : 1,
- "generated_by" : "Dist::Inkt::Profile::TOBYINK version 0.024,
CPAN::Meta::Converter version 2.150005",
+ "generated_by" : "Dist::Inkt::Profile::TOBYINK version 0.024,
CPAN::Meta::Converter version 2.150010",
"keywords" : [],
"license" : [
"perl_5"
@@ -48,11 +48,11 @@
"provides" : {
"Exporter::Shiny" : {
"file" : "lib/Exporter/Shiny.pm",
- "version" : "1.000000"
+ "version" : "1.002001"
},
"Exporter::Tiny" : {
"file" : "lib/Exporter/Tiny.pm",
- "version" : "1.000000"
+ "version" : "1.002001"
}
},
"release_status" : "stable",
@@ -72,6 +72,6 @@
"x_IRC" : "irc://irc.perl.org/#moops",
"x_identifier" :
"http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/project"
},
- "version" : "1.000000",
- "x_serialization_backend" : "JSON::PP version 2.27300_01"
+ "version" : "1.002001",
+ "x_serialization_backend" : "JSON::PP version 2.27400_02"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/META.yml
new/Exporter-Tiny-1.002001/META.yml
--- old/Exporter-Tiny-1.000000/META.yml 2017-05-22 13:10:46.000000000 +0200
+++ new/Exporter-Tiny-1.002001/META.yml 2018-07-17 13:00:36.000000000 +0200
@@ -7,7 +7,7 @@
configure_requires:
ExtUtils::MakeMaker: '6.17'
dynamic_config: 1
-generated_by: 'Dist::Inkt::Profile::TOBYINK version 0.024,
CPAN::Meta::Converter version 2.150005'
+generated_by: 'Dist::Inkt::Profile::TOBYINK version 0.024,
CPAN::Meta::Converter version 2.150010'
keywords: []
license: perl
meta-spec:
@@ -25,10 +25,10 @@
provides:
Exporter::Shiny:
file: lib/Exporter/Shiny.pm
- version: '1.000000'
+ version: '1.002001'
Exporter::Tiny:
file: lib/Exporter/Tiny.pm
- version: '1.000000'
+ version: '1.002001'
requires:
perl: '5.006001'
resources:
@@ -38,5 +38,5 @@
homepage: https://metacpan.org/release/Exporter-Tiny
license: http://dev.perl.org/licenses/
repository: git://github.com/tobyink/p5-exporter-tiny.git
-version: '1.000000'
+version: '1.002001'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/Makefile.PL
new/Exporter-Tiny-1.002001/Makefile.PL
--- old/Exporter-Tiny-1.000000/Makefile.PL 2017-05-22 13:10:46.000000000
+0200
+++ new/Exporter-Tiny-1.002001/Makefile.PL 2018-07-17 13:00:36.000000000
+0200
@@ -7,7 +7,7 @@
"abstract" => "an exporter with the features of Sub::Exporter but only
core dependencies",
"author" => ["Toby Inkster (TOBYINK) <tobyink\@cpan.org>"],
"dynamic_config" => 1,
- "generated_by" => "Dist::Inkt::Profile::TOBYINK version 0.024,
CPAN::Meta::Converter version 2.150005",
+ "generated_by" => "Dist::Inkt::Profile::TOBYINK version 0.024,
CPAN::Meta::Converter version 2.150010",
"keywords" => [],
"license" => ["perl_5"],
"meta-spec" => {
@@ -25,8 +25,8 @@
},
},
"provides" => {
- "Exporter::Shiny" => { file =>
"lib/Exporter/Shiny.pm", version => "1.000000" },
- "Exporter::Tiny" => { file => "lib/Exporter/Tiny.pm",
version => "1.000000" },
+ "Exporter::Shiny" => { file =>
"lib/Exporter/Shiny.pm", version => 1.002001 },
+ "Exporter::Tiny" => { file => "lib/Exporter/Tiny.pm",
version => 1.002001 },
},
"release_status" => "stable",
"resources" => {
@@ -43,7 +43,7 @@
x_identifier =>
"http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/project",
x_IRC => "irc://irc.perl.org/#moops",
},
- "version" => "1.000000",
+ "version" => 1.002001,
};
my %dynamic_config;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/SIGNATURE
new/Exporter-Tiny-1.002001/SIGNATURE
--- old/Exporter-Tiny-1.000000/SIGNATURE 2017-05-22 13:10:47.000000000
+0200
+++ new/Exporter-Tiny-1.002001/SIGNATURE 2018-07-17 13:00:36.000000000
+0200
@@ -14,39 +14,42 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-SHA1 58970c16dff93a4e1d6e8c405c5bc8188be49799 COPYRIGHT
+SHA1 e34019bb03e7e1c7d43b3f510ba6fa18cb4da804 COPYRIGHT
SHA1 e3b0c464bb56d4285fa64e31a70b301692dd825c CREDITS
-SHA1 0e8eebbb4ee5e34fb15e90510bdf54d53a539c3c Changes
+SHA1 de97316448ab27b8c26f7d0089032aab64c6c977 Changes
SHA1 3b20e9835f489bbf71b1deb6aa7c10729482aa77 INSTALL
-SHA1 c4c1e6c578edcfd14d13eadebc8f56dd9ca46821 LICENSE
-SHA1 97bc2eb47523ed9f03f47271b29959b1f3edce24 MANIFEST
-SHA1 d262494ba318b185a27a034e950663303120ed94 META.json
-SHA1 5ae4c8c6bbdeb24edd37b2024ec4139be090a7a1 META.yml
-SHA1 9d43607022577d07f3a2df4494a4f743809d2f9e Makefile.PL
+SHA1 4b7ceb6d8f98b8e378a50f11d2feb4e205aa68d8 LICENSE
+SHA1 e1e501db1546902ac3464579e3af34a52d678866 MANIFEST
+SHA1 1c2ea837045a0f0dd4bde289ac505921ae9bf125 META.json
+SHA1 b54457f077d8829a87d80e345ccd812f0dac1192 META.yml
+SHA1 3abe41e1cf0cd449d0c447a39d28ca13b039108c Makefile.PL
SHA1 2d5592860cac601d95b1a00863f3b4fc29639d2f README
+SHA1 a36c0bfb1641f802a4d769a938a912f1360719f4 TODO
SHA1 a43593d3e3a79c5f455977ba75083d9f191f6af6 dist.ini
-SHA1 0fdb2b1f95a4562ece610412c6c78cc7e6a2adc2 doap.ttl
+SHA1 f61e2aabd36e990f8971fd94af51af1ed3d70b73 doap.ttl
SHA1 3f65666b300ab7e7a1e5e25fb69e4ce6675e0f63 examples/Example/Exporter.pm
-SHA1 4b548adad97a2f9a52c6d691af847f829e850684 lib/Exporter/Shiny.pm
-SHA1 fc49e39bcb17b8124912d64f43c52c2db4a2a08e lib/Exporter/Tiny.pm
-SHA1 0e4aab8c35fbbdb9f7d7bad7ca0b09dbdcf49622 lib/Exporter/Tiny/Manual/Etc.pod
-SHA1 5d0f275559385cbd4fe9da7b5d815af5d65151ef
lib/Exporter/Tiny/Manual/Exporting.pod
+SHA1 258388d6c12abfbcf20464f3f72eab37b08a0478 lib/Exporter/Shiny.pm
+SHA1 202083e31f2816487b774e25a443930458af439e lib/Exporter/Tiny.pm
+SHA1 24a179e48ab6a56d24c6becdd86402723ac66a19 lib/Exporter/Tiny/Manual/Etc.pod
+SHA1 ddfd2768b0bac93263936d4d34920387bb384df8
lib/Exporter/Tiny/Manual/Exporting.pod
SHA1 6c9e12d234866ef242447be427583ea4cdba85a9
lib/Exporter/Tiny/Manual/Importing.pod
SHA1 d3490992563cb4fc178b9d1da0a7449a1f726560
lib/Exporter/Tiny/Manual/QuickStart.pod
SHA1 634706978c1b96226b35b763bfec74602303dbc6 t/01basic.t
SHA1 287d93a6d4ea7364f251dfabc18f49911eb34278 t/02renaming.t
SHA1 25a63815d24aff25751dc194be0c4cc950c47104 t/03generators.t
SHA1 99b8cbf69c65338c0b502b0351b5580c306235f3 t/04into.t
-SHA1 db0c8bf9facceb64971e5eeebd6592508d9335dd t/05shiny.t
+SHA1 42f4fd0ba41012abda6cf09f63ad549f5132140e t/05shiny.t
SHA1 f97e9d2cb58bf5fab88585a2b215c2840c129b00 t/06notwant.t
SHA1 db742ca2aac48c6fa0fb167796726d520f00d49b t/07regexp.t
-SHA1 1f08eb2996c19c4f85483d9b66d0223dd3da80f1 t/08tags.t
+SHA1 f7d74c1086c26d56ec0e08fc58d9e799ce55fe5d t/08tags.t
SHA1 57670cc5578a2aaf3932c18bf2c379b710229675 t/09warnings.t
-SHA1 11c0f79936b27cfd46bf5f27c1e8cb7455a6463f t/10no.t
+SHA1 2575766a7f9fbd9fe3d94f4e29c279e891cadf26 t/10no.t
+SHA1 85dc6905d47ff735379eb3943842d0b17c37b415 t/11noncode.t
+SHA1 774a64bfa970f46e3c28546e820b9c7f6afa6e54 t/12noncodegenerators.t
+SHA1 6920fd0ec76459d7f131c18cd5c21d9bbb29690c t/13doesntexist.t
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1
-iEYEARECAAYFAlkixzcACgkQzr+BKGoqfTk6UQCeKkh68lWNgfAXaP8c63pASGhD
-A9UAoI5BKRLBiajpluddNiiXxqvuIS+A
-=fuCC
+iF0EARECAB0WIQRVJKj/4+s6z4WzNujOv4Eoaip9OQUCW03MVAAKCRDOv4Eoaip9
+ORCDAKCzqugYclUIC0N2ssVPrafMHVgNgQCgkAf0rE5DclP8GqEhoicBgdHEw4g=
+=uJG6
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/TODO
new/Exporter-Tiny-1.002001/TODO
--- old/Exporter-Tiny-1.000000/TODO 1970-01-01 01:00:00.000000000 +0100
+++ new/Exporter-Tiny-1.002001/TODO 2018-07-17 13:00:36.000000000 +0200
@@ -0,0 +1,4 @@
+- improve test coverage
+- more tests and better support for non-code symbols
+- some kind of shim between Exporter::Tiny and Exporter.pm to allow people to
use Exporter::Tiny features with Exporter.pm modules
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/doap.ttl
new/Exporter-Tiny-1.002001/doap.ttl
--- old/Exporter-Tiny-1.000000/doap.ttl 2017-05-22 13:10:46.000000000 +0200
+++ new/Exporter-Tiny-1.002001/doap.ttl 2018-07-17 13:00:36.000000000 +0200
@@ -27,7 +27,7 @@
doap:maintainer <http://purl.org/NET/cpan-uri/person/tobyink>;
doap:name "Exporter-Tiny";
doap:programming-language "Perl";
- doap:release
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-026>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-029_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-030>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-031_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-032>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-033_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-034>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-036>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_03>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-038>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-039_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-040>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-042>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-044>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-000000>;
+ doap:release
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-026>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-029_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-030>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-031_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-032>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-033_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-034>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-036>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_03>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-038>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-039_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-040>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-042>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_01>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_02>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-044>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-000000>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_000>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_001>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002000>,
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002001>;
doap:repository [
a doap:GitRepository;
doap:browse <https://github.com/tobyink/p5-exporter-tiny>;
@@ -382,6 +382,69 @@
doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.000000.tar.gz>;
doap:revision "1.000000"^^xsd:string.
+<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_000>
+ a cpan-uri:DeveloperRelease, doap:Version;
+ dc:identifier "Exporter-Tiny-1.001_000"^^xsd:string;
+ dc:issued "2018-06-26"^^xsd:date;
+ doap-changeset:changeset [
+ doap-changeset:item [
+ a doap-changeset:Addition;
+ rdfs:label "Support for exporting non-code symbols such
as $Foo, @Bar, and %Baz.";
+ ], [
+ a doap-changeset:Addition;
+ rdfs:label "Support for generating non-code symbols.";
+ ];
+ doap-changeset:versus
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-000000>;
+ ];
+ doap-changeset:released-by
<http://purl.org/NET/cpan-uri/person/tobyink>;
+ doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.001_000.tar.gz>;
+ doap:revision "1.001_000"^^xsd:string.
+
+<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_001>
+ a cpan-uri:DeveloperRelease, doap:Version;
+ dc:identifier "Exporter-Tiny-1.001_001"^^xsd:string;
+ dc:issued "2018-06-29"^^xsd:date;
+ doap-changeset:changeset [
+ doap-changeset:item [
+ a doap-changeset:Tests;
+ rdfs:label "Improved test coverage, up from 88.78% on
coveralls.io to 96.74%.";
+ ];
+ doap-changeset:versus
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_000>;
+ ];
+ doap-changeset:released-by
<http://purl.org/NET/cpan-uri/person/tobyink>;
+ doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.001_001.tar.gz>;
+ doap:revision "1.001_001"^^xsd:string.
+
+<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002000>
+ a doap:Version;
+ dc:identifier "Exporter-Tiny-1.002000"^^xsd:string;
+ dc:issued "2018-07-17"^^xsd:date;
+ doap-changeset:changeset [
+ doap-changeset:item [
+ a doap-changeset:Packaging;
+ rdfs:label "Repackage as 1.002000.";
+ ];
+ doap-changeset:versus
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_001>;
+ ];
+ doap-changeset:released-by
<http://purl.org/NET/cpan-uri/person/tobyink>;
+ doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.002000.tar.gz>;
+ doap:revision "1.002000"^^xsd:string.
+
+<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002001>
+ a doap:Version;
+ dc:identifier "Exporter-Tiny-1.002001"^^xsd:string;
+ dc:issued "2018-07-17"^^xsd:date;
+ doap-changeset:changeset [
+ doap-changeset:item [
+ a doap-changeset:Packaging;
+ rdfs:label "Fix dates in changelog.";
+ ];
+ doap-changeset:versus
<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002000>;
+ ];
+ doap-changeset:released-by
<http://purl.org/NET/cpan-uri/person/tobyink>;
+ doap:file-release
<http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.002001.tar.gz>;
+ doap:revision "1.002001"^^xsd:string.
+
<http://purl.org/NET/cpan-uri/dist/Type-Tiny/project>
a doap:Project;
dc:contributor <http://purl.org/NET/cpan-uri/person/tobyink>;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/lib/Exporter/Shiny.pm
new/Exporter-Tiny-1.002001/lib/Exporter/Shiny.pm
--- old/Exporter-Tiny-1.000000/lib/Exporter/Shiny.pm 2017-05-22
13:10:45.000000000 +0200
+++ new/Exporter-Tiny-1.002001/lib/Exporter/Shiny.pm 2018-07-17
13:00:36.000000000 +0200
@@ -7,7 +7,7 @@
use Exporter::Tiny ();
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '1.000000';
+our $VERSION = '1.002001';
sub import {
my $me = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Exporter-Tiny-1.000000/lib/Exporter/Tiny/Manual/Etc.pod
new/Exporter-Tiny-1.002001/lib/Exporter/Tiny/Manual/Etc.pod
--- old/Exporter-Tiny-1.000000/lib/Exporter/Tiny/Manual/Etc.pod 2017-05-22
13:10:45.000000000 +0200
+++ new/Exporter-Tiny-1.002001/lib/Exporter/Tiny/Manual/Etc.pod 2018-07-17
13:00:36.000000000 +0200
@@ -94,7 +94,7 @@
ExpPM ExpTiny SubExp SubExpProg
Can export code symbols............. Yes Yes Yes Yes
- Can export non-code symbols......... Yes
+ Can export non-code symbols......... Yes Yes
Groups/tags......................... Yes Yes Yes Yes
Export by regexp.................... Yes Yes
Bang prefix......................... Yes Yes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Exporter-Tiny-1.000000/lib/Exporter/Tiny/Manual/Exporting.pod
new/Exporter-Tiny-1.002001/lib/Exporter/Tiny/Manual/Exporting.pod
--- old/Exporter-Tiny-1.000000/lib/Exporter/Tiny/Manual/Exporting.pod
2017-05-22 13:10:45.000000000 +0200
+++ new/Exporter-Tiny-1.002001/lib/Exporter/Tiny/Manual/Exporting.pod
2018-07-17 13:00:36.000000000 +0200
@@ -72,6 +72,12 @@
particular it will tell you what package the generated sub is destined
to be installed into.
+To generate non-code symbols, name your generators like this:
+
+ sub _generateScalar_Foo { ... } # generate a symbol $Foo
+ sub _generateArray_Bar { ... } # generate a symbol @Bar
+ sub _generateHash_Baz { ... } # generate a symbol %Baz
+
You can also generate tags:
my %constants;
@@ -193,6 +199,8 @@
otherwise) and calls C<_exporter_fail> if it's unable to generate or
retrieve a coderef.
+Despite the name, is also called for non-code symbols.
+
=item C<< _exporter_permitted_regexp($globals) >>
This method is called to retrieve a regexp for validating the names of
@@ -226,6 +234,8 @@
pre-process the arguments and then call the super method rather than
trying to handle all of it yourself.
+Despite the name, is also called for non-code symbols.
+
=item C<< _exporter_uninstall_sub($name, $args, $globals) >>
The opposite of C<_exporter_install_sub>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/lib/Exporter/Tiny.pm
new/Exporter-Tiny-1.002001/lib/Exporter/Tiny.pm
--- old/Exporter-Tiny-1.000000/lib/Exporter/Tiny.pm 2017-05-22
13:10:45.000000000 +0200
+++ new/Exporter-Tiny-1.002001/lib/Exporter/Tiny.pm 2018-07-17
13:00:36.000000000 +0200
@@ -5,7 +5,7 @@
use warnings; no warnings qw(void once uninitialized numeric redefine);
our $AUTHORITY = 'cpan:TOBYINK';
-our $VERSION = '1.000000';
+our $VERSION = '1.002001';
our @EXPORT_OK = qw< mkopt mkopt_hash _croak _carp >;
sub _croak ($;@) { require Carp; my $fmt = shift; @_ = sprintf($fmt, @_); goto
\&Carp::croak }
@@ -205,13 +205,36 @@
no strict qw(refs);
- if ($name =~ $permitted)
+ my $sigil = "&";
+ if ($name =~ /\A([&\$\%\@\*])(.+)\z/) {
+ $sigil = $1;
+ $name = $2;
+ if ($sigil eq '*') {
+ _croak("Cannot export symbols with a * sigil");
+ }
+ }
+ my $sigilname = $sigil eq '&' ? $name : "$sigil$name";
+
+ if ($sigilname =~ $permitted)
{
- my $generator = $class->can("_generate_$name");
- return $name => $class->$generator($name, $value, $globals) if
$generator;
+ my $generatorprefix = {
+ '&' => "_generate_",
+ '$' => "_generateScalar_",
+ '@' => "_generateArray_",
+ '%' => "_generateHash_",
+ }->{$sigil};
+
+ my $generator = $class->can("$generatorprefix$name");
+ return $sigilname => $class->$generator($sigilname, $value,
$globals) if $generator;
my $sub = $class->can($name);
- return $name => $sub if $sub;
+ return $sigilname => $sub if $sub;
+
+ # Could do this more cleverly, but this works.
+ if ($sigil ne '&') {
+ my $evalled = eval "\\${sigil}${class}::${name}";
+ return $sigilname => $evalled if $evalled;
+ }
}
$class->_exporter_fail(@_);
@@ -247,19 +270,35 @@
return unless defined $name;
- unless (ref($name))
- {
+ my $sigil = "&";
+ unless (ref($name)) {
+ if ($name =~ /\A([&\$\%\@\*])(.+)\z/) {
+ $sigil = $1;
+ $name = $2;
+ if ($sigil eq '*') {
+ _croak("Cannot export symbols with a * sigil");
+ }
+ }
my ($prefix) = grep defined, $value->{-prefix},
$globals->{prefix}, q();
my ($suffix) = grep defined, $value->{-suffix},
$globals->{suffix}, q();
$name = "$prefix$name$suffix";
}
- return ($$name = $sym) if ref($name) eq q(SCALAR);
- return ($into->{$name} = $sym) if ref($into) eq q(HASH);
+ my $sigilname = $sigil eq '&' ? $name : "$sigil$name";
+
+# if ({qw/$ SCALAR @ ARRAY % HASH & CODE/}->{$sigil} ne ref($sym)) {
+# warn $sym;
+# warn $sigilname;
+# _croak("Reference type %s does not match sigil %s", ref($sym),
$sigil);
+# }
+
+ return ($$name = $sym) if ref($name) eq q(SCALAR);
+ return ($into->{$sigilname} = $sym) if ref($into) eq q(HASH);
no strict qw(refs);
+ our %TRACKED;
- if (exists &{"$into\::$name"} and \&{"$into\::$name"} != $sym)
+ if (ref($sym) eq 'CODE' and exists &{"$into\::$name"} and
\&{"$into\::$name"} != $sym)
{
my ($level) = grep defined, $value->{-replace},
$globals->{replace}, q(0);
my $action = {
@@ -273,6 +312,10 @@
die => \&_croak,
}->{$level} || sub {};
+ # Don't complain about double-installing the same sub. This
isn't ideal
+ # because the same named sub might be generated in two
different ways.
+ $action = sub {} if $TRACKED{$class}{$into}{$sigilname};
+
$action->(
$action == \&_croak
? "Refusing to overwrite existing sub '%s::%s'
with sub '%s' exported by %s"
@@ -284,12 +327,11 @@
);
}
- our %TRACKED;
- $TRACKED{$class}{$into}{$name} = $sym;
+ $TRACKED{$class}{$into}{$sigilname} = $sym;
no warnings qw(prototype);
$installer
- ? $installer->($globals, [$name, $sym])
+ ? $installer->($globals, [$sigilname, $sym])
: (*{"$into\::$name"} = $sym);
}
@@ -302,7 +344,21 @@
ref $into and return;
no strict qw(refs);
+
+ my $sigil = "&";
+ if ($name =~ /\A([&\$\%\@\*])(.+)\z/) {
+ $sigil = $1;
+ $name = $2;
+ if ($sigil eq '*') {
+ _croak("Cannot export symbols with a * sigil");
+ }
+ }
+ my $sigilname = $sigil eq '&' ? $name : "$sigil$name";
+ if ($sigil ne '&') {
+ _croak("Unimporting non-code symbols not supported yet");
+ }
+
# Cowardly refuse to uninstall a sub that differs from the one
# we installed!
my $our_coderef = $TRACKED{$class}{$into}{$name};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/t/05shiny.t
new/Exporter-Tiny-1.002001/t/05shiny.t
--- old/Exporter-Tiny-1.000000/t/05shiny.t 2017-05-22 13:10:45.000000000
+0200
+++ new/Exporter-Tiny-1.002001/t/05shiny.t 2018-07-17 13:00:36.000000000
+0200
@@ -22,7 +22,7 @@
use strict;
use warnings;
-use Test::More tests => 1;
+use Test::More tests => 3;
{
package Local::Foo;
@@ -35,6 +35,28 @@
}
}
+{
+ package Local::Bar;
+ use Exporter::Shiny -setup => { exports => [qw(foo bar)] };
+ sub foo {
+ return 42;
+ }
+ sub bar {
+ return 666;
+ }
+}
+
use Local::Foo qw(foo);
+use Local::Bar qw(bar);
is(foo(), 42);
+is(bar(), 666);
+
+local $@;
+eval q{
+ package Local::Baz;
+ use Exporter::Shiny -setup => { exports => [qw(foo bar)], jazzy => 42 };
+};
+my $e = $@;
+
+like($e, qr/Unsupported Sub::Exporter-style options/);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/t/08tags.t
new/Exporter-Tiny-1.002001/t/08tags.t
--- old/Exporter-Tiny-1.000000/t/08tags.t 2017-05-22 13:10:45.000000000
+0200
+++ new/Exporter-Tiny-1.002001/t/08tags.t 2018-07-17 13:00:36.000000000
+0200
@@ -22,11 +22,12 @@
use strict;
use warnings;
-use Test::More tests => 7;
+use Test::More tests => 17;
BEGIN {
package Local::Foo;
use Exporter::Shiny qw(foo bar);
+ our @EXPORT = qw(foo);
our %EXPORT_TAGS = (
first => [ 'foo' => { xxx => 41 }, 'bar' ],
second => [ 'foo', 'bar' ],
@@ -38,11 +39,13 @@
sub _generate_foo {
my $me = shift;
my ($name, $args) = @_;
+ $args->{xxx} ||= 'foo';
return sub () { $args->{xxx} };
}
sub _generate_bar {
my $me = shift;
my ($name, $args) = @_;
+ $args->{xxx} ||= 'bar';
return sub () { $args->{xxx} };
}
};
@@ -53,7 +56,7 @@
-first => { -prefix => 'third_', xxx => 42 };
is(first_foo, 41);
-is(first_bar, undef);
+is(first_bar, 'bar');
is(second_foo, 666);
is(second_bar, 666);
@@ -64,3 +67,31 @@
use Local::Foo -upper => { -prefix => 'MY', xxx => 999 };
is(MYFOO, 999);
+
+{
+ package Local::Bar;
+ use Local::Foo;
+}
+
+ok( Local::Bar->can('foo') );
+ok( !Local::Bar->can('bar') );
+is( Local::Bar::foo(), 'foo' );
+
+{
+ package Local::Baz;
+ use Local::Foo -default;
+}
+
+ok( Local::Baz->can('foo') );
+ok( !Local::Baz->can('bar') );
+is( Local::Baz::foo(), 'foo' );
+
+{
+ package Local::Xyzzy;
+ use Local::Foo -all;
+}
+
+ok( Local::Xyzzy->can('foo') );
+ok( Local::Xyzzy->can('bar') );
+is( Local::Xyzzy::foo(), 'foo' );
+is( Local::Xyzzy::bar(), 'bar' );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/t/10no.t
new/Exporter-Tiny-1.002001/t/10no.t
--- old/Exporter-Tiny-1.000000/t/10no.t 2017-05-22 13:10:45.000000000 +0200
+++ new/Exporter-Tiny-1.002001/t/10no.t 2018-07-17 13:00:36.000000000 +0200
@@ -21,7 +21,7 @@
use strict;
use warnings;
-use Test::More tests => 7;
+use Test::More tests => 9;
use lib qw( examples ../examples );
@@ -52,3 +52,26 @@
}
ok( Local::Pkg3->can('embiggen') && !Local::Pkg3->can('fib'), 'tidied by
regexp' );
+
+BEGIN {
+ package Local::Pkg4;
+ use Exporter::Shiny qw( $Foo );
+ our $Foo = 42;
+};
+
+our ($xxx, $yyy);
+local $@;
+eval q{
+ use strict;
+ use warnings;
+ package Local::Pkg5;
+ use Local::Pkg4 qw( $Foo );
+ BEGIN { $::xxx = $Foo }; # why BEGIN needed???
+ no Local::Pkg4 qw( $Foo );
+ $::yyy = $Foo;
+};
+my $e = $@;
+
+
+is($xxx, 42, 'importing scalar works');
+like($e, qr/Unimporting non-code/, 'unimporting scalar works'); # TODO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/t/11noncode.t
new/Exporter-Tiny-1.002001/t/11noncode.t
--- old/Exporter-Tiny-1.000000/t/11noncode.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Exporter-Tiny-1.002001/t/11noncode.t 2018-07-17 13:00:36.000000000
+0200
@@ -0,0 +1,53 @@
+=pod
+
+=encoding utf-8
+
+=head1 PURPOSE
+
+Test Exporter::Tiny exporting non-code symbols.
+
+=head1 AUTHOR
+
+Toby Inkster E<lt>[email protected]<gt>.
+
+=head1 COPYRIGHT AND LICENCE
+
+This software is copyright (c) 2018 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 tests => 7;
+
+BEGIN {
+ package My::Exporter;
+ use Exporter::Shiny qw( $Foo @Bar %Baz );
+ our $Foo = 42;
+ our @Bar = (1, 2, 3);
+ our %Baz = (quux => 'xyzzy');
+};
+
+BEGIN {
+ package My::Importer;
+ use My::Exporter -all;
+};
+
+is($My::Importer::Foo, 42, 'importing scalar');
+is_deeply(\@My::Importer::Bar, [1,2,3], 'importing array');
+is_deeply(\%My::Importer::Baz, { quux => 'xyzzy' }, 'importing hash');
+
+$My::Importer::Foo /= 2;
+push @My::Importer::Bar, 4;
+$My::Importer::Baz{quuux} = 'blarg';
+
+is($My::Exporter::Foo, 21, 'importing scalar does not copy');
+is_deeply(\@My::Exporter::Bar, [1,2,3,4], 'importing array does not copy');
+is_deeply(\%My::Exporter::Baz, { quux => 'xyzzy', quuux => 'blarg' },
'importing hash does not copy');
+
+my $into = {};
+My::Exporter->import({ into => $into }, qw( $Foo @Bar %Baz ));
+is_deeply($into, { '$Foo' => \21, '@Bar' => [1..4], '%Baz' => {qw/quux xyzzy
quuux blarg/} }, 'importing non-code symbols into hashrefs');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/t/12noncodegenerators.t
new/Exporter-Tiny-1.002001/t/12noncodegenerators.t
--- old/Exporter-Tiny-1.000000/t/12noncodegenerators.t 1970-01-01
01:00:00.000000000 +0100
+++ new/Exporter-Tiny-1.002001/t/12noncodegenerators.t 2018-07-17
13:00:36.000000000 +0200
@@ -0,0 +1,56 @@
+=pod
+
+=encoding utf-8
+
+=head1 PURPOSE
+
+Test Exporter::Tiny exporting non-code symbols from generators.
+
+=head1 AUTHOR
+
+Toby Inkster E<lt>[email protected]<gt>.
+
+=head1 COPYRIGHT AND LICENCE
+
+This software is copyright (c) 2018 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 tests => 7;
+
+BEGIN {
+ package My::Exporter;
+ use Exporter::Shiny qw( $Foo @Bar %Baz );
+ our $_Foo = 42;
+ our @_Bar = (1, 2, 3);
+ our %_Baz = (quux => 'xyzzy');
+ sub _generateScalar_Foo { \$_Foo }
+ sub _generateArray_Bar { \@_Bar }
+ sub _generateHash_Baz { \%_Baz }
+};
+
+BEGIN {
+ package My::Importer;
+ use My::Exporter -all;
+};
+
+is($My::Importer::Foo, 42, 'importing scalar');
+is_deeply(\@My::Importer::Bar, [1,2,3], 'importing array');
+is_deeply(\%My::Importer::Baz, { quux => 'xyzzy' }, 'importing hash');
+
+$My::Importer::Foo /= 2;
+push @My::Importer::Bar, 4;
+$My::Importer::Baz{quuux} = 'blarg';
+
+is($My::Exporter::_Foo, 21, 'importing scalar does not copy');
+is_deeply(\@My::Exporter::_Bar, [1,2,3,4], 'importing array does not copy');
+is_deeply(\%My::Exporter::_Baz, { quux => 'xyzzy', quuux => 'blarg' },
'importing hash does not copy');
+
+my $into = {};
+My::Exporter->import({ into => $into }, qw( $Foo @Bar %Baz ));
+is_deeply($into, { '$Foo' => \21, '@Bar' => [1..4], '%Baz' => {qw/quux xyzzy
quuux blarg/} }, 'importing non-code symbols into hashrefs');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Exporter-Tiny-1.000000/t/13doesntexist.t
new/Exporter-Tiny-1.002001/t/13doesntexist.t
--- old/Exporter-Tiny-1.000000/t/13doesntexist.t 1970-01-01
01:00:00.000000000 +0100
+++ new/Exporter-Tiny-1.002001/t/13doesntexist.t 2018-07-17
13:00:36.000000000 +0200
@@ -0,0 +1,71 @@
+=pod
+
+=encoding utf-8
+
+=head1 PURPOSE
+
+Test what happens when trying to import symbols and tags that don't exist
+or aren't marked as suitable for exporting.
+
+=head1 AUTHOR
+
+Toby Inkster E<lt>[email protected]<gt>.
+
+=head1 COPYRIGHT AND LICENCE
+
+This software is copyright (c) 2018 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 tests => 4;
+
+sub exception ($) {
+ local $@;
+ eval shift;
+ return $@;
+}
+
+BEGIN {
+ package My::Exporter;
+ use Exporter::Shiny qw( $Foo Bar Bam wibble );
+ our $Foo = 42;
+ sub Bar { 666 }
+ sub Baz { 999 }
+ our $Bat = 69;
+ sub _generate_wibble {
+ my $class = shift;
+ my ($name, $arg, $globals) = @_;
+ return sub { $globals };
+ }
+};
+
+like(
+ exception q{ use My::Exporter qw(Baz) },
+ qr/Could not find sub/,
+ 'sub that is not marked for export'
+);
+
+like(
+ exception q{ use My::Exporter qw(Bam) },
+ qr/Could not find sub/,
+ 'sub that cannot be found'
+);
+
+like(
+ exception q{ use My::Exporter qw($Bat) },
+ qr/Could not find sub/, # this error should probably be changed
+ 'non-code symbol that is not marked for export'
+);
+
+use My::Exporter -wobble => { butt => 88 }, qw(wibble);
+
+is_deeply(
+ wibble->{wobble},
+ { butt => 88 },
+ 'unknown tags get added to globals'
+);
\ No newline at end of file