Hello community,

here is the log from the commit of package perl-boolean for openSUSE:Factory
checked in at Mon Sep 19 21:39:03 CEST 2011.



--------
--- perl-boolean/perl-boolean.changes   2011-04-03 17:30:39.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-boolean/perl-boolean.changes      
2011-09-19 11:15:44.000000000 +0200
@@ -1,0 +2,9 @@
+Mon Sep 19 09:11:27 UTC 2011 - [email protected]
+
+- updated to 0.28
+ - Added -truth option.
+ - This idea was inspired by https://rt.cpan.org/Ticket/Display.html?id=65536
+ - Awesome idea!
+ - Released from Liz++&Wendy++ downstairs bathroom
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  boolean-0.26.tar.gz

New:
----
  boolean-0.28.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-boolean.spec ++++++
--- /var/tmp/diff_new_pack.NGfUbo/_old  2011-09-19 21:38:59.000000000 +0200
+++ /var/tmp/diff_new_pack.NGfUbo/_new  2011-09-19 21:38:59.000000000 +0200
@@ -18,21 +18,19 @@
 
 
 Name:           perl-boolean
-Version:        0.26
+Version:        0.28
 Release:        1
 License:        GPL+ or Artistic
 %define cpan_name boolean
 Summary:        Boolean support for Perl
 Url:            http://search.cpan.org/dist/boolean/
 Group:          Development/Libraries/Perl
-#Source:         
http://www.cpan.org/authors/id/I/IN/INGY/boolean-%{version}.tar.gz
-Source:         %{cpan_name}-%{version}.tar.gz
+Source:         
http://www.cpan.org/authors/id/I/IN/INGY/%{cpan_name}-%{version}.tar.gz
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
 BuildRequires:  perl-macros
-BuildRequires:  perl(Readonly)
-Requires:       perl(Readonly)
+Recommends:     perl(Readonly)
 %{perl_requires}
 
 %description
@@ -72,7 +70,7 @@
 %{__rm} -rf %{buildroot}
 
 %files -f %{name}.files
-%defattr(644,root,root,755)
-%doc Changes README
+%defattr(-,root,root,755)
+%doc Changes LICENSE README
 
 %changelog

++++++ boolean-0.26.tar.gz -> boolean-0.28.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/Changes new/boolean-0.28/Changes
--- old/boolean-0.26/Changes    2011-01-20 14:06:17.000000000 +0100
+++ new/boolean-0.28/Changes    2011-09-12 13:51:52.000000000 +0200
@@ -1,4 +1,17 @@
 ---
+version: 0.28
+date:    Mon Sep 12 13:51:47 CEST 2011
+changes:
+- Added -truth option.
+- This idea was inspired by https://rt.cpan.org/Ticket/Display.html?id=65536
+- Awesome idea!
+- Released from Liz++&Wendy++ downstairs bathroom
+---
+version: 0.27
+date:    Tue Jun 28 10:47:01 EDT 2011
+changes:
+- Switch to Module::Package at YAPC 2011 ++
+---
 version: 0.26
 date:    Fri Jan 21 00:05:44 EST 2011
 changes:
@@ -12,14 +25,14 @@
 - Removed the new methods and autobox methods.
   They didn't add much except confusion.
 - Documented that you can use isTrue and isFalse as methods.
-- &boolean(1,2,3) now dies like boolean(1,2,3)
-- &boolean() now dies like boolean()
+- '&boolean(1,2,3) now dies like boolean(1,2,3)'
+- '&boolean() now dies like boolean()'
 ---
 version: 0.24
 date:    Thu Jan 13 15:27:09 EST 2011
 changes:
-- @Schwern++ found out how to make true and false immutable.
-  Kudos to #strategicdata++.
+- '@Schwern++ found out how to make true and false immutable.
+  Kudos to #strategicdata++.'
 - Document the boolean() function.
 - Added is_true and is_false methods.
 - Added boolean, is_true, and is_false autobox methods
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/LICENSE new/boolean-0.28/LICENSE
--- old/boolean-0.26/LICENSE    1970-01-01 01:00:00.000000000 +0100
+++ new/boolean-0.28/LICENSE    2011-09-12 13:51:53.000000000 +0200
@@ -0,0 +1,377 @@
+This software is copyright (c) 2011 by Ingy döt Net <[email protected]>.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+Terms of the Perl programming language system itself
+
+a) the GNU General Public License as published by the Free
+   Software Foundation; either version 1, or (at your option) any
+   later version, or
+b) the "Artistic License"
+
+--- The GNU General Public License, Version 1, February 1989 ---
+
+This software is Copyright (c) 2011 by Ingy döt Net <[email protected]>.
+
+This is free software, licensed under:
+
+  The GNU General Public License, Version 1, February 1989
+
+                   GNU GENERAL PUBLIC LICENSE
+                    Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+                59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The license agreements of most software companies try to keep users
+at the mercy of those companies.  By contrast, our General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  The
+General Public License applies to the Free Software Foundation's
+software and to any other program whose authors commit to using it.
+You can use it for your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Specifically, the General Public License is designed to make
+sure that you have the freedom to give away or sell copies of free
+software, that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free
+programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of a such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must tell them their rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any program or other work which
+contains a notice placed by the copyright holder saying it may be
+distributed under the terms of this General Public License.  The
+"Program", below, refers to any such program or work, and a "work based
+on the Program" means either the Program or any work containing the
+Program or a portion of it, either verbatim or with modifications.  Each
+licensee is addressed as "you".
+
+  1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+General Public License and to the absence of any warranty; and give any
+other recipients of the Program a copy of this General Public License
+along with the Program.  You may charge a fee for the physical act of
+transferring a copy.
+
+  2. You may modify your copy or copies of the Program or any portion of
+it, and copy and distribute such modifications under the terms of Paragraph
+1 above, provided that you also do the following:
+
+    a) cause the modified files to carry prominent notices stating that
+    you changed the files and the date of any change; and
+
+    b) cause the whole of any work that you distribute or publish, that
+    in whole or in part contains the Program or any part thereof, either
+    with or without modifications, to be licensed at no charge to all
+    third parties under the terms of this General Public License (except
+    that you may choose to grant warranty protection to some or all
+    third parties, at your option).
+
+    c) If the modified program normally reads commands interactively when
+    run, you must cause it, when started running for such interactive use
+    in the simplest and most usual way, to print or display an
+    announcement including an appropriate copyright notice and a notice
+    that there is no warranty (or else, saying that you provide a
+    warranty) and that users may redistribute the program under these
+    conditions, and telling the user how to view a copy of this General
+    Public License.
+
+    d) You may charge a fee for the physical act of transferring a
+    copy, and you may at your option offer warranty protection in
+    exchange for a fee.
+
+Mere aggregation of another independent work with the Program (or its
+derivative) on a volume of a storage or distribution medium does not bring
+the other work under the scope of these terms.
+
+  3. You may copy and distribute the Program (or a portion or derivative of
+it, under Paragraph 2) in object code or executable form under the terms of
+Paragraphs 1 and 2 above provided that you also do one of the following:
+
+    a) accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of
+    Paragraphs 1 and 2 above; or,
+
+    b) accompany it with a written offer, valid for at least three
+    years, to give any third party free (except for a nominal charge
+    for the cost of distribution) a complete machine-readable copy of the
+    corresponding source code, to be distributed under the terms of
+    Paragraphs 1 and 2 above; or,
+
+    c) accompany it with the information you received as to where the
+    corresponding source code may be obtained.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form alone.)
+
+Source code for a work means the preferred form of the work for making
+modifications to it.  For an executable file, complete source code means
+all the source code for all modules it contains; but, as a special
+exception, it need not include source code for modules which are standard
+libraries that accompany the operating system on which the executable
+file runs, or for standard header files or definitions files that
+accompany that operating system.
+
+  4. You may not copy, modify, sublicense, distribute or transfer the
+Program except as expressly provided under this General Public License.
+Any attempt otherwise to copy, modify, sublicense, distribute or transfer
+the Program is void, and will automatically terminate your rights to use
+the Program under this License.  However, parties who have received
+copies, or rights to use copies, from you under this General Public
+License will not have their licenses terminated so long as such parties
+remain in full compliance.
+
+  5. By copying, distributing or modifying the Program (or any work based
+on the Program) you indicate your acceptance of this license to do so,
+and all its terms and conditions.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these
+terms and conditions.  You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein.
+
+  7. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of the license which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+the license, you may choose any version ever published by the Free Software
+Foundation.
+
+  8. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+       Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+  To do so, attach the following notices to the program.  It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 1, or (at your option)
+    any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software Foundation,
+    Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19xx name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  program `Gnomovision' (a program to direct compilers to make passes
+  at assemblers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+--- The Artistic License 1.0 ---
+
+This software is Copyright (c) 2011 by Ingy döt Net <[email protected]>.
+
+This is free software, licensed under:
+
+  The Artistic License 1.0
+
+The Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a Package
+may be copied, such that the Copyright Holder maintains some semblance of
+artistic control over the development of the package, while giving the users of
+the package the right to use and distribute the Package in a more-or-less
+customary fashion, plus the right to make reasonable modifications.
+
+Definitions:
+
+  - "Package" refers to the collection of files distributed by the Copyright
+    Holder, and derivatives of that collection of files created through
+    textual modification. 
+  - "Standard Version" refers to such a Package if it has not been modified,
+    or has been modified in accordance with the wishes of the Copyright
+    Holder. 
+  - "Copyright Holder" is whoever is named in the copyright or copyrights for
+    the package. 
+  - "You" is you, if you're thinking about copying or distributing this 
Package.
+  - "Reasonable copying fee" is whatever you can justify on the basis of media
+    cost, duplication charges, time of people involved, and so on. (You will
+    not be required to justify it to the Copyright Holder, but only to the
+    computing community at large as a market that must bear the fee.) 
+  - "Freely Available" means that no fee is charged for the item itself, though
+    there may be fees involved in handling the item. It also means that
+    recipients of the item may redistribute it under the same conditions they
+    received it. 
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications derived
+from the Public Domain or from the Copyright Holder. A Package modified in such
+a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided that
+you insert a prominent notice in each changed file stating how and when you
+changed that file, and provided that you do at least ONE of the following:
+
+  a) place your modifications in the Public Domain or otherwise make them
+     Freely Available, such as by posting said modifications to Usenet or an
+     equivalent medium, or placing the modifications on a major archive site
+     such as ftp.uu.net, or by allowing the Copyright Holder to include your
+     modifications in the Standard Version of the Package.
+
+  b) use the modified Package only within your corporation or organization.
+
+  c) rename any non-standard executables so the names do not conflict with
+     standard executables, which must also be provided, and provide a separate
+     manual page for each non-standard executable that clearly documents how it
+     differs from the Standard Version.
+
+  d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or executable
+form, provided that you do at least ONE of the following:
+
+  a) distribute a Standard Version of the executables and library files,
+     together with instructions (in the manual page or equivalent) on where to
+     get the Standard Version.
+
+  b) accompany the distribution with the machine-readable source of the Package
+     with your modifications.
+
+  c) accompany any non-standard executables with their corresponding Standard
+     Version executables, giving the non-standard executables non-standard
+     names, and clearly documenting the differences in manual pages (or
+     equivalent), together with instructions on where to get the Standard
+     Version.
+
+  d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this
+Package.  You may charge any fee you choose for support of this Package. You
+may not charge a fee for this Package itself. However, you may distribute this
+Package in aggregate with other (possibly commercial) programs as part of a
+larger (possibly commercial) software distribution provided that you do not
+advertise this Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as output
+from the programs of this Package do not automatically fall under the copyright
+of this Package, but belong to whomever generated them, and may be sold
+commercially, and may be aggregated with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package shall not
+be considered part of this Package.
+
+8. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+9. 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.
+
+The End
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/MANIFEST new/boolean-0.28/MANIFEST
--- old/boolean-0.26/MANIFEST   2011-01-20 14:09:07.000000000 +0100
+++ new/boolean-0.28/MANIFEST   2011-09-12 13:51:53.000000000 +0200
@@ -1,20 +1,21 @@
 Changes
 inc/Module/Install.pm
-inc/Module/Install/AckXXX.pm
 inc/Module/Install/Base.pm
 inc/Module/Install/Can.pm
 inc/Module/Install/Fetch.pm
+inc/Module/Install/GithubMeta.pm
 inc/Module/Install/Makefile.pm
-inc/Module/Install/ManifestSkip.pm
 inc/Module/Install/Metadata.pm
-inc/Module/Install/ReadmeFromPod.pm
-inc/Module/Install/VersionCheck.pm
+inc/Module/Install/Package.pm
 inc/Module/Install/Win32.pm
 inc/Module/Install/WriteAll.pm
+inc/Module/Package.pm
 lib/boolean.pm
+LICENSE
 Makefile.PL
 MANIFEST                       This list of files
 META.yml
 README
 t/boolean.t
 t/export.t
+t/truth.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/META.yml new/boolean-0.28/META.yml
--- old/boolean-0.26/META.yml   2011-01-20 14:08:45.000000000 +0100
+++ new/boolean-0.28/META.yml   2011-09-12 13:51:53.000000000 +0200
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: 6.42
 distribution_type: module
-generated_by: 'Module::Install version 1.00'
+generated_by: 'Module::Install version 1.01'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -23,5 +23,7 @@
 requires:
   perl: 5.005003
 resources:
+  homepage: http://github.com/ingydotnet/boolean-pm/tree
   license: http://dev.perl.org/licenses/
-version: 0.26
+  repository: git://github.com/ingydotnet/boolean-pm.git
+version: 0.28
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/Makefile.PL new/boolean-0.28/Makefile.PL
--- old/boolean-0.26/Makefile.PL        2011-01-16 00:45:03.000000000 +0100
+++ new/boolean-0.28/Makefile.PL        2011-09-12 13:34:22.000000000 +0200
@@ -1,12 +1,3 @@
-use inc::Module::Install;
-
-all_from        'lib/boolean.pm';
-
-readme_from;
-manifest_skip;
-version_check;
-ack_xxx;
+use inc::Module::Package 'Ingy:modern 0.15';
 
 recommends      'Readonly';
-
-WriteAll;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/README new/boolean-0.28/README
--- old/boolean-0.26/README     2011-01-20 14:08:45.000000000 +0100
+++ new/boolean-0.28/README     2011-09-12 13:51:53.000000000 +0200
@@ -18,6 +18,13 @@
         do &something if isTrue($guess);
         do &something_else if isFalse($guess);
 
+    and:
+
+        use boolean -truth;
+
+        die unless ref(42 == 42) eq 'boolean';
+        die unless ("foo" =~ /bar/) eq '0';
+
 DESCRIPTION
     Most programming languages have a native "Boolean" data type. Perl does
     not.
@@ -88,7 +95,7 @@
     $boolean->isFalse
         Same as isFalse($boolean).
 
-EXPORTABLES
+USE OPTIONS
     By default this module exports the "true", "false" and "boolean"
     functions.
 
@@ -97,6 +104,19 @@
     :all
         Exports "true", "false", "boolean", "isTrue", "isFalse", "isBoolean"
 
+  -truth
+    You can specify the "-truth" option to override truth operators to
+    return "boolean" values.
+
+        use boolean -truth;
+        print ref("hello" eq "world"), "\n";
+
+    Prints:
+
+        boolean
+
+    "-truth" can be used with the other import options.
+
 AUTHOR
     Ingy döt Net <[email protected]>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/AckXXX.pm 
new/boolean-0.28/inc/Module/Install/AckXXX.pm
--- old/boolean-0.26/inc/Module/Install/AckXXX.pm       2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/AckXXX.pm       1970-01-01 
01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-#line 1
-package Module::Install::AckXXX;
-use strict;
-use warnings;
-use 5.008003;
-
-use Module::Install::Base;
-
-use vars qw($VERSION @ISA);
-BEGIN {
-    $VERSION = '0.11';
-    @ISA     = 'Module::Install::Base';
-}
-
-sub ack_xxx {
-    my $self = shift;
-    return unless $self->is_admin;
-
-    require Capture::Tiny;
-    sub ack { system "ack '^\\s*use XXX\\b'"; }
-    my $output = Capture::Tiny::capture_merged(\&ack);
-    $self->_report($output) if $output;
-}
-
-sub _report {
-    my $self = shift;
-    my $output = shift;
-    chomp ($output);
-    print <<"...";
-
-*** AUTHOR WARNING ***
-*** Found usage of XXX.pm in this code:
-$output
-
-...
-}
-
-1;
-
-=encoding utf8
-
-#line 82
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/Base.pm 
new/boolean-0.28/inc/Module/Install/Base.pm
--- old/boolean-0.26/inc/Module/Install/Base.pm 2011-01-20 14:08:45.000000000 
+0100
+++ new/boolean-0.28/inc/Module/Install/Base.pm 2011-09-12 13:51:52.000000000 
+0200
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.01';
 }
 
 # Suspend handler for "redefined" warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/Can.pm 
new/boolean-0.28/inc/Module/Install/Can.pm
--- old/boolean-0.26/inc/Module/Install/Can.pm  2011-01-20 14:08:45.000000000 
+0100
+++ new/boolean-0.28/inc/Module/Install/Can.pm  2011-09-12 13:51:53.000000000 
+0200
@@ -9,7 +9,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.01';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/Fetch.pm 
new/boolean-0.28/inc/Module/Install/Fetch.pm
--- old/boolean-0.26/inc/Module/Install/Fetch.pm        2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/Fetch.pm        2011-09-12 
13:51:53.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.01';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/GithubMeta.pm 
new/boolean-0.28/inc/Module/Install/GithubMeta.pm
--- old/boolean-0.26/inc/Module/Install/GithubMeta.pm   1970-01-01 
01:00:00.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/GithubMeta.pm   2011-09-12 
13:51:53.000000000 +0200
@@ -0,0 +1,50 @@
+#line 1
+package Module::Install::GithubMeta;
+
+use strict;
+use warnings;
+use Cwd;
+use base qw(Module::Install::Base);
+use vars qw($VERSION);
+
+$VERSION = '0.10';
+
+sub githubmeta {
+  my $self = shift;
+  return unless $Module::Install::AUTHOR;
+  return unless _under_git();
+  return unless $self->can_run('git');
+  return unless my ($git_url) = `git remote show -n origin` =~ /URL: (.*)$/m;
+  return unless $git_url =~ /github\.com/; # Not a Github repository
+  my $http_url = $git_url;
+  $git_url =~ s![\w\-]+\@([^:]+):!git://$1/!;
+  $http_url =~ s![\w\-]+\@([^:]+):!http://$1/!;
+  $http_url =~ s!\.git$!/tree!;
+  $self->repository( $git_url );
+  $self->homepage( $http_url ) unless $self->homepage();
+  return 1;
+}
+
+sub _under_git {
+  return 1 if -e '.git';
+  my $cwd = getcwd;
+  my $last = $cwd;
+  my $found = 0;
+  while (1) {
+    chdir '..' or last;
+    my $current = getcwd;
+    last if $last eq $current;
+    $last = $current;
+    if ( -e '.git' ) {
+       $found = 1;
+       last;
+    }
+  }
+  chdir $cwd;
+  return $found;
+}
+
+'Github';
+__END__
+
+#line 108
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/Makefile.pm 
new/boolean-0.28/inc/Module/Install/Makefile.pm
--- old/boolean-0.26/inc/Module/Install/Makefile.pm     2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/Makefile.pm     2011-09-12 
13:51:53.000000000 +0200
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.01';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/ManifestSkip.pm 
new/boolean-0.28/inc/Module/Install/ManifestSkip.pm
--- old/boolean-0.26/inc/Module/Install/ManifestSkip.pm 2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/ManifestSkip.pm 1970-01-01 
01:00:00.000000000 +0100
@@ -1,84 +0,0 @@
-#line 1
-package Module::Install::ManifestSkip;
-use strict;
-use warnings;
-use 5.008003;
-
-use Module::Install::Base;
-
-use vars qw($VERSION @ISA);
-BEGIN {
-    $VERSION = '0.14';
-    @ISA     = 'Module::Install::Base';
-}
-
-my $skip_file = "MANIFEST.SKIP";
-
-sub manifest_skip {
-    my $self = shift;
-    return unless $self->is_admin;
-
-    print "manifest_skip\n";
-
-    my $keepers;
-    if (-e $skip_file) {
-        open IN, $skip_file
-            or die "Can't open $skip_file for input: $!";
-        my $input = do {local $/; <IN>};
-        close IN;
-        if ($input =~ s/(.*?\n)\s*\n.*/$1/s and $input =~ /\S/) {
-            $keepers = $input;
-        }
-    }
-    open OUT, '>', $skip_file
-        or die "Can't open $skip_file for output: $!";;
-
-    if ($keepers) {
-        print OUT "$keepers\n";
-    }
-
-    print OUT _skip_files();
-
-    close OUT;
-
-    $self->clean_files('MANIFEST');
-}
-
-sub _skip_files {
-    return <<'...';
-^Makefile$
-^Makefile\.old$
-^pm_to_blib$
-^blib/
-^pod2htm.*
-^MANIFEST\.SKIP$
-^MANIFEST\.bak$
-^\.git/
-^\.gitignore
-^\.gitmodules
-/\.git/
-\.svn/
-^\.vimrc$
-\.sw[op]$
-^core$
-^out$
-^tmon.out$
-^\w$
-^foo.*
-^notes
-^todo
-^ToDo$
-## avoid OS X finder files
-\.DS_Store$
-## skip komodo project files
-\.kpf$
-## ignore emacs and vim backup files
-~$
-...
-}
-
-1;
-
-=encoding utf8
-
-#line 135
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/Metadata.pm 
new/boolean-0.28/inc/Module/Install/Metadata.pm
--- old/boolean-0.26/inc/Module/Install/Metadata.pm     2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/Metadata.pm     2011-09-12 
13:51:53.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.01';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -170,7 +170,7 @@
        # Normalize the version
        $version = $self->_perl_version($version);
 
-       # We don't support the reall old versions
+       # We don't support the really old versions
        unless ( $version >= 5.005 ) {
                die "Module::Install only supports 5.005 or newer (use 
ExtUtils::MakeMaker)\n";
        }
@@ -515,6 +515,7 @@
                'GNU Free Documentation license'     => 'unrestricted', 1,
                'GNU Affero General Public License'  => 'open_source',  1,
                '(?:Free)?BSD license'               => 'bsd',          1,
+               'Artistic license 2\.0'              => 'artistic_2',   1,
                'Artistic license'                   => 'artistic',     1,
                'Apache (?:Software )?license'       => 'apache',       1,
                'GPL'                                => 'gpl',          1,
@@ -550,9 +551,9 @@
 
 sub _extract_bugtracker {
        my @links   = $_[0] =~ m#L<(
-        \Qhttp://rt.cpan.org/\E[^>]+|
-        \Qhttp://github.com/\E[\w_]+/[\w_]+/issues|
-        \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list
+        https?\Q://rt.cpan.org/\E[^>]+|
+        https?\Q://github.com/\E[\w_]+/[\w_]+/issues|
+        https?\Q://code.google.com/p/\E[\w_\-]+/issues/list
         )>#gx;
        my %links;
        @links{@links}=();
@@ -581,7 +582,7 @@
 sub requires_from {
        my $self     = shift;
        my $content  = Module::Install::_readperl($_[0]);
-       my @requires = $content =~ 
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+       my @requires = $content =~ 
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg;
        while ( @requires ) {
                my $module  = shift @requires;
                my $version = shift @requires;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/Package.pm 
new/boolean-0.28/inc/Module/Install/Package.pm
--- old/boolean-0.26/inc/Module/Install/Package.pm      1970-01-01 
01:00:00.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/Package.pm      2011-09-12 
13:51:52.000000000 +0200
@@ -0,0 +1,275 @@
+#line 1
+##
+# name:      Module::Install::Package
+# abstract:  Module::Install support for Module::Package
+# author:    Ingy döt Net <[email protected]>
+# license:   perl
+# copyright: 2011
+# see:
+# - Module::Package
+
+# This module contains the Module::Package logic that must be available to
+# both the Author and the End User. Author-only logic goes in a
+# Module::Package::Plugin subclass.
+package Module::Install::Package;
+use strict;
+use Module::Install::Base;
+use vars qw'@ISA $VERSION';
+@ISA = 'Module::Install::Base';
+$VERSION = '0.28';
+
+#-----------------------------------------------------------------------------#
+# XXX BOOTBUGHACK
+# This is here to try to get us out of Module-Package-0.11 cpantesters hell...
+# Remove this when the situation has blown over.
+sub pkg {
+    *inc::Module::Package::VERSION = sub { $VERSION };
+    my $self = shift;
+    $self->module_package_internals_init($@);
+}
+
+#-----------------------------------------------------------------------------#
+# We allow the author to specify key/value options after the plugin. These
+# options need to be available both at author time and install time.
+#-----------------------------------------------------------------------------#
+# OO accessor for command line options:
+sub package_options {
+    @_>1?($_[0]->{package_options}=$_[1]):$_[0]->{package_options}}
+
+my $default_options = {
+    deps_list => 1,
+    install_bin => 1,
+    install_share => 1,
+    manifest_skip => 1,
+    requires_from => 1,
+};
+
+#-----------------------------------------------------------------------------#
+# Module::Install plugin directives. Use long, ugly names to not pollute the
+# Module::Install plugin namespace. These are only intended to be called from
+# Module::Package.
+#-----------------------------------------------------------------------------#
+
+# Module::Package starts off life as a normal call to this Module::Install
+# plugin directive:
+my $module_install_plugin;
+my $module_package_plugin;
+# XXX ARGVHACK This @argv thing is a temporary fix for an ugly bug somewhere 
in the
+# Wikitext module usage.
+my @argv;
+sub module_package_internals_init {
+    my $self = $module_install_plugin = shift;
+    my ($plugin_spec, %options) = @_;
+    $self->package_options({%$default_options, %options});
+
+    if ($module_install_plugin->is_admin) {
+        $module_package_plugin = $self->_load_plugin($plugin_spec);
+        $module_package_plugin->mi($module_install_plugin);
+        $module_package_plugin->version_check($VERSION);
+    }
+    # NOTE - This is the point in time where the body of Makefile.PL runs...
+    return;
+
+    sub INIT {
+        return unless $module_install_plugin;
+        return if $Module::Package::ERROR;
+        eval {
+            if ($module_install_plugin->is_admin) {
+                $module_package_plugin->initial();
+                $module_package_plugin->main();
+            }
+            else {
+                $module_install_plugin->_initial();
+                $module_install_plugin->_main();
+            }
+        };
+        if ($@) {
+            $Module::Package::ERROR = $@;
+            die $@;
+        }
+        @argv = @ARGV; # XXX ARGVHACK
+    }
+
+    # If this Module::Install plugin was used (by Module::Package) then wrap
+    # up any loose ends. This will get called after Makefile.PL has completed.
+    sub END {
+        @ARGV = @argv; # XXX ARGVHACK
+        return unless $module_install_plugin;
+        return if $Module::Package::ERROR;
+        $module_package_plugin
+            ? do {
+                $module_package_plugin->final;
+                $module_package_plugin->replicate_module_package;
+            }
+            : $module_install_plugin->_final;
+    }
+}
+
+# Module::Package, Module::Install::Package and Module::Package::Plugin
+# must all have the same version. Seems wise.
+sub module_package_internals_version_check {
+    my ($self, $version) = @_;
+    return if $version < 0.1800001;   # XXX BOOTBUGHACK!!
+    die <<"..." unless $version == $VERSION;
+
+Error! Something has gone awry:
+    Module::Package version=$version is using 
+    Module::Install::Package version=$VERSION
+If you are the author of this module, try upgrading Module::Package.
+Otherwise, please notify the author of this error.
+
+...
+}
+
+# Find and load the author side plugin:
+sub _load_plugin {
+    my ($self, $spec) = @_;
+    $spec ||= '';
+    my $version = '';
+    $Module::Package::plugin_version = 0;
+    if ($spec =~ s/\s+(\S+)\s*//) {
+        $version = $1;
+        $Module::Package::plugin_version = $version;
+    }
+    my ($module, $plugin) =
+        not($spec) ? ('Plugin', "Plugin::basic") :
+        ($spec =~ /^\w(\w|::)*$/) ? ($spec, $spec) :
+        ($spec =~ /^:(\w+)$/) ? ('Plugin', "Plugin::$1") :
+        ($spec =~ /^(\S*\w):(\w+)$/) ? ($1, "$1::$2") :
+        die "$spec is invalid";
+    $module = "Module::Package::$module";
+    $plugin = "Module::Package::$plugin";
+    eval "use $module $version (); 1" or die $@;
+    return $plugin->new();
+}
+
+#-----------------------------------------------------------------------------#
+# These are the user side analogs to the author side plugin API calls.
+# Prefix with '_' to not pollute Module::Install plugin space.
+#-----------------------------------------------------------------------------#
+sub _initial {
+    my ($self) = @_;
+}
+
+sub _main {
+    my ($self) = @_;
+}
+
+# NOTE These must match Module::Package::Plugin::final.
+sub _final {
+    my ($self) = @_;
+    $self->_all_from;
+    $self->_requires_from;
+    $self->_install_bin;
+    $self->_install_share;
+    $self->_WriteAll;
+}
+
+#-----------------------------------------------------------------------------#
+# This section is where all the useful code bits go. These bits are needed by
+# both Author and User side runs.
+#-----------------------------------------------------------------------------#
+
+my $all_from = 0;
+sub _all_from {
+    my $self = shift;
+    return if $all_from++;
+    return if $self->name;
+    my $file = shift || "$main::PM" or die "all_from has no file";
+    $self->all_from($file);
+}
+
+my $requires_from = 0;
+sub _requires_from {
+    my $self = shift;
+    return if $requires_from++;
+    return unless $self->package_options->{requires_from};
+    my $file = shift || "$main::PM" or die "requires_from has no file";
+    $self->requires_from($main::PM)
+}
+
+my $install_bin = 0;
+sub _install_bin {
+    my $self = shift;
+    return if $install_bin++;
+    return unless $self->package_options->{install_bin};
+    return unless -d 'bin';
+    my @bin;
+    File::Find::find(sub {
+        return unless -f $_;
+        push @bin, $File::Find::name;
+    }, 'bin');
+    $self->install_script($_) for @bin;
+}
+
+my $install_share = 0;
+sub _install_share {
+    my $self = shift;
+    return if $install_share++;
+    return unless $self->package_options->{install_share};
+    return unless -d 'share';
+    $self->install_share;
+}
+
+my $WriteAll = 0;
+sub _WriteAll {
+    my $self = shift;
+    return if $WriteAll++;
+    $self->WriteAll(@_);
+}
+
+#-----------------------------------------------------------------------------#
+# Take a guess at the primary .pm and .pod files for 'all_from', and friends.
+# Put them in global magical vars in the main:: namespace.
+#-----------------------------------------------------------------------------#
+package Module::Package::PM;
+use overload '""' => sub {
+    $_[0]->guess_pm unless @{$_[0]};
+    return $_[0]->[0];
+};
+sub set { $_[0]->[0] = $_[1] }
+sub guess_pm {
+    my $pm = '';
+    my $self = shift;
+    if (-e 'META.yml') {
+        open META, 'META.yml' or die "Can't open 'META.yml' for input:\n$!";
+        my $meta = do { local $/; <META> };
+        close META;
+        $meta =~ /^module_name: (\S+)$/m
+            or die "Can't get module_name from META.yml";
+        $pm = $1;
+        $pm =~ s!::!/!g;
+        $pm = "lib/$pm.pm";
+    }
+    else {
+        require File::Find;
+        my @array = ();
+        File::Find::find(sub {
+            return unless /\.pm$/;
+            my $name = $File::Find::name;
+            my $num = ($name =~ s!/+!/!g);
+            my $ary = $array[$num] ||= [];
+            push @$ary, $name;
+        }, 'lib');
+        shift @array while @array and not defined $array[0];
+        die "Can't guess main module" unless @array;
+        (($pm) = sort @{$array[0]}) or
+            die "Can't guess main module";
+    }
+    my $pmc = $pm . 'c';
+    $pm = $pmc if -e $pmc;
+    $self->set($pm);
+}
+$main::PM = bless [$main::PM ? ($main::PM) : ()], __PACKAGE__;
+
+package Module::Package::POD;
+use overload '""' => sub {
+    return $_[0]->[0] if @{$_[0]};
+    (my $pod = "$main::PM") =~ s/\.pm/.pod/ or die;
+    return -e $pod ? $pod : '';
+};
+sub set { $_[0][0] = $_[1] }
+$main::POD = bless [$main::POD ? ($main::POD) : ()], __PACKAGE__;
+
+1;
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/ReadmeFromPod.pm 
new/boolean-0.28/inc/Module/Install/ReadmeFromPod.pm
--- old/boolean-0.26/inc/Module/Install/ReadmeFromPod.pm        2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/ReadmeFromPod.pm        1970-01-01 
01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
-#line 1
-package Module::Install::ReadmeFromPod;
-
-use 5.006;
-use strict;
-use warnings;
-use base qw(Module::Install::Base);
-use vars qw($VERSION);
-
-$VERSION = '0.12';
-
-sub readme_from {
-  my $self = shift;
-  return unless $self->is_admin;
-
-  my $file = shift || $self->_all_from
-    or die "Can't determine file to make readme_from";
-  my $clean = shift;
-
-  print "Writing README from $file\n";
-
-  require Pod::Text;
-  my $parser = Pod::Text->new();
-  open README, '> README' or die "$!\n";
-  $parser->output_fh( *README );
-  $parser->parse_file( $file );
-  if ($clean) {
-    $self->clean_files('README');
-  }
-  return 1;
-}
-
-sub _all_from {
-  my $self = shift;
-  return unless $self->admin->{extensions};
-  my ($metadata) = grep {
-    ref($_) eq 'Module::Install::Metadata';
-  } @{$self->admin->{extensions}};
-  return unless $metadata;
-  return $metadata->{values}{all_from} || '';
-}
-
-'Readme!';
-
-__END__
-
-#line 112
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/VersionCheck.pm 
new/boolean-0.28/inc/Module/Install/VersionCheck.pm
--- old/boolean-0.26/inc/Module/Install/VersionCheck.pm 2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/VersionCheck.pm 1970-01-01 
01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
-#line 1
-package Module::Install::VersionCheck;
-use strict;
-use warnings;
-use 5.008003;
-
-use Module::Install::Base;
-
-my $DEFAULT = '0.00';
-
-use vars qw($VERSION @ISA);
-BEGIN {
-    $VERSION = '0.11';
-    @ISA     = 'Module::Install::Base';
-}
-
-sub version_check {
-    my $self = shift;
-    return unless $self->is_admin;
-
-    my $module_version = $self->_get_module_version();
-    my $changes_version = $self->_get_changes_version();
-    my $git_tag_version = $self->_get_git_tag_version();
-
-    $self->_report(
-        $module_version,
-        $changes_version,
-        $git_tag_version,
-    );
-}
-
-sub _get_module_version {
-    my $self = shift;
-    return $DEFAULT unless $self->admin->{extensions};
-    my ($metadata) = grep {
-        ref($_) eq 'Module::Install::Metadata';
-    } @{$self->admin->{extensions}};
-    return $DEFAULT unless $metadata;
-    return $metadata->{values}{version} || $DEFAULT;
-}
-
-sub _get_changes_version {
-    my $self = shift;
-    return $DEFAULT unless -e 'Changes';
-    open IN, 'Changes' or die "Can't open 'Changes' for input: $!";
-    my $text = do {local $/; <IN>};
-    $text =~ /\b(\d\.\d\d)\b/ or return $DEFAULT;
-    return $1;
-}
-
-sub _get_git_tag_version {
-    my $self = shift;
-    return $DEFAULT unless -e '.git';
-    require Capture::Tiny;
-    my $text = Capture::Tiny::capture_merged(sub { system('git tag') });
-    my $version = $DEFAULT;
-    for (split "\n", $text) {
-        if (/\b(\d\.\d\d)\b/ and $1 > $version) {
-            $version = $1;
-        }
-    }
-    return $version;
-}
-
-sub _report {
-    my $self = shift;
-    print "version_check @_\n";
-}
-
-1;
-
-=encoding utf8
-
-#line 107
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/Win32.pm 
new/boolean-0.28/inc/Module/Install/Win32.pm
--- old/boolean-0.26/inc/Module/Install/Win32.pm        2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/Win32.pm        2011-09-12 
13:51:53.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.01';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install/WriteAll.pm 
new/boolean-0.28/inc/Module/Install/WriteAll.pm
--- old/boolean-0.26/inc/Module/Install/WriteAll.pm     2011-01-20 
14:08:45.000000000 +0100
+++ new/boolean-0.28/inc/Module/Install/WriteAll.pm     2011-09-12 
13:51:53.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.01';
        @ISA     = qw{Module::Install::Base};
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Install.pm 
new/boolean-0.28/inc/Module/Install.pm
--- old/boolean-0.26/inc/Module/Install.pm      2011-01-20 14:08:44.000000000 
+0100
+++ new/boolean-0.28/inc/Module/Install.pm      2011-09-12 13:51:52.000000000 
+0200
@@ -31,7 +31,7 @@
        # This is not enforced yet, but will be some time in the next few
        # releases once we can make sure it won't clash with custom
        # Module::Install extensions.
-       $VERSION = '1.00';
+       $VERSION = '1.01';
 
        # Storage for the pseudo-singleton
        $MAIN    = undef;
@@ -467,4 +467,4 @@
 
 1;
 
-# Copyright 2008 - 2010 Adam Kennedy.
+# Copyright 2008 - 2011 Adam Kennedy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/inc/Module/Package.pm 
new/boolean-0.28/inc/Module/Package.pm
--- old/boolean-0.26/inc/Module/Package.pm      1970-01-01 01:00:00.000000000 
+0100
+++ new/boolean-0.28/inc/Module/Package.pm      2011-09-12 13:51:53.000000000 
+0200
@@ -0,0 +1,71 @@
+#line 1
+##
+# name:      Module::Package
+# abstract:  Postmodern Perl Module Packaging
+# author:    Ingy döt Net <[email protected]>
+# license:   perl
+# copyright: 2011
+# see:
+# - Module::Package::Plugin
+# - Module::Install::Package
+# - Module::Package::Tutorial
+
+package Module::Package;
+use 5.005;
+use strict;
+
+BEGIN {
+    $Module::Package::VERSION = '0.28';
+    $inc::Module::Package::VERSION ||= $Module::Package::VERSION;
+    @inc::Module::Package::ISA = __PACKAGE__;
+}
+
+sub import {
+    my $class = shift;
+    $INC{'inc/Module/Install.pm'} = __FILE__;
+    unshift @INC, 'inc' unless $INC[0] eq 'inc';
+    eval "use Module::Install 1.01 (); 1" or $class->error($@);
+
+    package main;
+    Module::Install->import();
+    eval {
+        module_package_internals_version_check($Module::Package::VERSION);
+        module_package_internals_init(@_);
+    };
+    if ($@) {
+        $Module::Package::ERROR = $@;
+        die $@;
+    }
+}
+
+# XXX Remove this when things are stable.
+sub error {
+    my ($class, $error) = @_;
+    if (-e 'inc' and not -e 'inc/.author') {
+        require Data::Dumper;
+        $Data::Dumper::Sortkeys = 1;
+        my $dump1 = Data::Dumper::Dumper(\%INC);
+        my $dump2 = Data::Dumper::Dumper(\@INC);
+        die <<"...";
+This should not have happened. Hopefully this dump will explain the problem:
+
+inc::Module::Package: $inc::Module::Package::VERSION
+Module::Package: $Module::Package::VERSION
+inc::Module::Install: $inc::Module::Install::VERSION
+Module::Install: $Module::Install::VERSION
+
+Error: $error
+
+%INC:
+$dump1
+\@INC:
+$dump2
+...
+    }
+    else {
+        die $error;
+    }
+}
+
+1;
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/lib/boolean.pm 
new/boolean-0.28/lib/boolean.pm
--- old/boolean-0.26/lib/boolean.pm     2011-01-20 14:06:47.000000000 +0100
+++ new/boolean-0.28/lib/boolean.pm     2011-09-12 13:49:24.000000000 +0200
@@ -1,8 +1,8 @@
-package boolean;
 use 5.005003;
+package boolean;
 use strict;
-# use warnings;
-$boolean::VERSION = '0.26';
+
+$boolean::VERSION = '0.28';
 
 my ($true, $false);
 
@@ -19,6 +19,13 @@
     test   => [qw(isTrue isFalse isBoolean)],
 );
 
+sub import {
+    my @options = grep $_ ne '-truth', @_;
+    $_[0]->truth if @options != @_;
+    @_ = @options;
+    goto &Exporter::import;
+}
+
 my ($true_val, $false_val, $bool_vals);
 
 BEGIN {
@@ -60,6 +67,18 @@
     (exists $bool_vals->{overload::StrVal($_[0])}) ? true : false;
 }
 
+sub truth {
+    # enable modifying true and false
+    &Internals::SvREADONLY( \ !!0, 0);
+    &Internals::SvREADONLY( \ !!1, 0);
+    # turn perl internal booleans into blessed booleans:
+    ${ \ !!0 } = $false;
+    ${ \ !!1 } = $true;
+    # make true and false read-only again
+    &Internals::SvREADONLY( \ !!0, 1);
+    &Internals::SvREADONLY( \ !!1, 1);
+}
+
 1;
 
 =encoding utf8
@@ -86,6 +105,13 @@
     do &something if isTrue($guess);
     do &something_else if isFalse($guess);
 
+and:
+
+    use boolean -truth;
+
+    die unless ref(42 == 42) eq 'boolean';
+    die unless ("foo" =~ /bar/) eq '0';
+
 =head1 DESCRIPTION
 
 Most programming languages have a native C<Boolean> data type.
@@ -174,7 +200,7 @@
 
 =back
 
-=head1 EXPORTABLES
+=head1 USE OPTIONS
 
 By default this module exports the C<true>, C<false> and C<boolean> functions.
 
@@ -188,6 +214,20 @@
 
 =back
 
+=head2 -truth
+
+You can specify the C<-truth> option to override truth operators to return
+C<boolean> values.
+
+    use boolean -truth;
+    print ref("hello" eq "world"), "\n";
+
+Prints:
+
+    boolean
+
+C<-truth> can be used with the other import options.
+
 =head1 AUTHOR
 
 Ingy döt Net <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/t/export.t new/boolean-0.28/t/export.t
--- old/boolean-0.26/t/export.t 2010-11-17 20:26:05.000000000 +0100
+++ new/boolean-0.28/t/export.t 2011-09-12 13:42:02.000000000 +0200
@@ -13,7 +13,7 @@
 use boolean ':all';
 
 package Test;
-use boolean ':test';
+use boolean -truth, ':test';
 
 package main;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boolean-0.26/t/truth.t new/boolean-0.28/t/truth.t
--- old/boolean-0.26/t/truth.t  1970-01-01 01:00:00.000000000 +0100
+++ new/boolean-0.28/t/truth.t  2011-09-12 13:39:02.000000000 +0200
@@ -0,0 +1,27 @@
+use Test::More tests => 8;
+
+use boolean -truth;
+
+is ref(1 == 0), 'boolean',
+    'Turn false == value into boolean';
+
+is ref(1 == 1), 'boolean',
+    'Turn true == value into boolean';
+
+is ref("foo" eq "bar"), 'boolean',
+    'Turn false "eq" value into boolean';
+
+is ref("foo" ne "bar"), 'boolean',
+    'Turn true "ne" value into boolean';
+
+is ref("foo" =~ /o/), 'boolean',
+    'Turn true regex into boolean';
+
+is ref("foo" =~ /bar/), 'boolean',
+    'Turn false regex into boolean';
+
+is 1 == 0, '0',
+    'False is 0';
+
+is 1 == 1, '1',
+    'True is 1';


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to