diff -Nru libhtml-formfu-perl-0.09010/Changes libhtml-formfu-perl-1.00000/Changes --- libhtml-formfu-perl-0.09010/Changes 2012-10-05 15:02:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/Changes 2013-12-16 10:48:11.000000000 +0000 @@ -1,3 +1,84 @@ +1.00 2013-12-16 + + - TT template files changed - update them if you use a local copy. + Template file 'label_tag' renamed to 'label_element' - old file can + be deleted. 'field' file changed. New 'errors' file. + + - TT no longer listed as a prerequisite. If you use the TT files, + you must add 'Template' to your own app's prereqs. + + - Element::reCAPTCHA and Constraint::reCAPTCHA moved out to separate + distribution. + + - HTML::FormFu::MultiForm moved out to separate distribution. + + - auto_container_class(), auto_label_class(), auto_comment_class(), + auto_container_error_class(), auto_container_per_error_class(), + auto_error_class() no longer have default values. + See "RESTORING LEGACY HTML CLASSES" in HTML::FormFu docs to restore + previous behaviour. + + - auto_label_class() no longer adds class to container. + auto_label_class() now adds class to label tag. + new auto_container_label_class() adds class to container. + See "RESTORING LEGACY HTML CLASSES" in HTML::FormFu docs to restore + previous behaviour. + + - auto_comment_class() no longer adds class to both container and comment. + auto_comment_class() now only adds class to comment tag. + new auto_container_comment_class() adds class to container. + See "RESTORING LEGACY HTML CLASSES" in HTML::FormFu docs to restore + previous behaviour. + + - Bug fix: param_value() form method now matches documented behaviour - + returns undef when field has errors. (Reported by Hailin Hu). + + - New Element::Email and Element::URL HTML5 input fields. + + - Role::Element::Input has new datalist_options(), datalist_values(), + datalist_id() and auto_datalist_id() methods to support HTML5 datalists. + auto_datalist_id() is an inherited accessor which can be set on the + Form, MultiForm, or Block. + + - Form and Elements has new title() attribute short-cut. + + - Constraint::Regex has new anchored() accessor. + + - New Input attribute accessors: placeholder(), pattern(), autocomplete(). + + - New Input boolean attribute accessors: autofocus(), multiple(), required(). + + - New Field inherited accessors: auto_container_per_error_class(), + auto_error_container_class(), auto_error_container_per_error_class(), + error_tag(), error_container_tag + + - Constraints have new experimental method fetch_error_message(). + + - All field elements have new method error_filename(). + + - default_args() now supports 'Block', 'Field', 'Input' pseudo-elements, + '|' alternatives, and '+' and '-' ancestor modifiers. + + - New Czech (cs) I18N translation by Jan Grmela. + + - mk_inherited_accessors() now also creates a *_no_inherit() method. + + - Experimental new roles() form method. + + - form methods start(), end() now respect render_method - no longer + force use of tt templates. + + - Bug fix: del_attribute() on empty attribute no longer sets the attribute. + + - All attribute accessors generated with mk_attrs() now have *_loc variants. + + - form methods start(), end() now respect render_method - no longer + force use of tt templates. + + - Tests now always require Test::Aggregate::Nested. + Re-enable aggregate tests on Win32. + Don't run all tests twice under both aggregate and t/ (doh!) + 0.09010 2012-10-05 - Internal changes - all Repeatable/nested_name munging is moved out of @@ -6,8 +87,6 @@ 0.09009 2012-09-29 - Make sure object can('checked') before calling checked() (colinnewell) - Updated Repeatable control to update id_field on DBIC::Unique if present - - Added support for arbitrary elements within Multi blocks so that they - don't need to support methods like _striing_field and label etc. - ComboBox new get_select_field_nested_name(), get_text_field_nested_name() accessors. - Fieldset new legend_attributes() method. diff -Nru libhtml-formfu-perl-0.09010/LICENSE libhtml-formfu-perl-1.00000/LICENSE --- libhtml-formfu-perl-0.09010/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/LICENSE 2013-12-16 10:48:11.000000000 +0000 @@ -0,0 +1,379 @@ +This software is copyright (c) 2013 by Carl Franks. + +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) 2013 by Carl Franks. + +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. + 51 Franklin St, Suite 500, Boston, MA 02110-1335 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. + + + Copyright (C) 19yy + + 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., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 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. + + , 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) 2013 by Carl Franks. + +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 -Nru libhtml-formfu-perl-0.09010/MANIFEST libhtml-formfu-perl-1.00000/MANIFEST --- libhtml-formfu-perl-0.09010/MANIFEST 2012-10-05 15:05:34.000000000 +0000 +++ libhtml-formfu-perl-1.00000/MANIFEST 2013-12-16 10:48:11.000000000 +0000 @@ -1,7 +1,16 @@ +Changes +LICENSE +MANIFEST +MANIFEST.SKIP +META.yml +Makefile.PL +README bin/html_formfu_deploy.pl bin/html_formfu_dumpconf.pl -Changes +dist.ini examples/unicode/Changes +examples/unicode/Makefile.PL +examples/unicode/README examples/unicode/database.sql examples/unicode/lib/unicode.pm examples/unicode/lib/unicode/Controller/Root.pm @@ -10,8 +19,6 @@ examples/unicode/lib/unicode/Schema/Unicode.pm examples/unicode/lib/unicode/View/TT.pm examples/unicode/lib/unicode/View/TT/Alloy.pm -examples/unicode/Makefile.PL -examples/unicode/README examples/unicode/root/favicon.ico examples/unicode/root/formfu/block examples/unicode/root/formfu/checkboxgroup @@ -67,26 +74,12 @@ examples/vertically-aligned-css/vertically-aligned.pl examples/vertically-aligned-css/vertically-aligned.tt examples/vertically-aligned-css/vertically-aligned.yml -inc/IO/Interactive.pm -inc/Module/Install.pm -inc/Module/Install/Base.pm -inc/Module/Install/Can.pm -inc/Module/Install/Fetch.pm -inc/Module/Install/Include.pm -inc/Module/Install/Makefile.pm -inc/Module/Install/Metadata.pm -inc/Module/Install/Scripts.pm -inc/Module/Install/Share.pm -inc/Module/Install/Win32.pm -inc/Module/Install/With.pm -inc/Module/Install/WriteAll.pm -inc/version.pm lib/HTML/FormFu.pm lib/HTML/FormFu/Attribute.pm lib/HTML/FormFu/Constants.pm lib/HTML/FormFu/Constraint.pm -lib/HTML/FormFu/Constraint/AllOrNone.pm lib/HTML/FormFu/Constraint/ASCII.pm +lib/HTML/FormFu/Constraint/AllOrNone.pm lib/HTML/FormFu/Constraint/AutoSet.pm lib/HTML/FormFu/Constraint/Bool.pm lib/HTML/FormFu/Constraint/Callback.pm @@ -96,8 +89,8 @@ lib/HTML/FormFu/Constraint/Email.pm lib/HTML/FormFu/Constraint/Equal.pm lib/HTML/FormFu/Constraint/File.pm -lib/HTML/FormFu/Constraint/File/MaxSize.pm lib/HTML/FormFu/Constraint/File/MIME.pm +lib/HTML/FormFu/Constraint/File/MaxSize.pm lib/HTML/FormFu/Constraint/File/MinSize.pm lib/HTML/FormFu/Constraint/File/Size.pm lib/HTML/FormFu/Constraint/Integer.pm @@ -110,7 +103,6 @@ lib/HTML/FormFu/Constraint/Number.pm lib/HTML/FormFu/Constraint/Printable.pm lib/HTML/FormFu/Constraint/Range.pm -lib/HTML/FormFu/Constraint/reCAPTCHA.pm lib/HTML/FormFu/Constraint/Regex.pm lib/HTML/FormFu/Constraint/Repeatable/Any.pm lib/HTML/FormFu/Constraint/Required.pm @@ -135,6 +127,7 @@ lib/HTML/FormFu/Element/ContentButton.pm lib/HTML/FormFu/Element/Date.pm lib/HTML/FormFu/Element/DateTime.pm +lib/HTML/FormFu/Element/Email.pm lib/HTML/FormFu/Element/Fieldset.pm lib/HTML/FormFu/Element/File.pm lib/HTML/FormFu/Element/Hidden.pm @@ -146,7 +139,6 @@ lib/HTML/FormFu/Element/Password.pm lib/HTML/FormFu/Element/Radio.pm lib/HTML/FormFu/Element/Radiogroup.pm -lib/HTML/FormFu/Element/reCAPTCHA.pm lib/HTML/FormFu/Element/Repeatable.pm lib/HTML/FormFu/Element/Reset.pm lib/HTML/FormFu/Element/Select.pm @@ -155,6 +147,7 @@ lib/HTML/FormFu/Element/Submit.pm lib/HTML/FormFu/Element/Text.pm lib/HTML/FormFu/Element/Textarea.pm +lib/HTML/FormFu/Element/URL.pm lib/HTML/FormFu/Exception.pm lib/HTML/FormFu/Exception/Constraint.pm lib/HTML/FormFu/Exception/Inflator.pm @@ -180,6 +173,7 @@ lib/HTML/FormFu/Filter/Whitespace.pm lib/HTML/FormFu/I18N.pm lib/HTML/FormFu/I18N/bg.pm +lib/HTML/FormFu/I18N/cs.pm lib/HTML/FormFu/I18N/da.pm lib/HTML/FormFu/I18N/de.pm lib/HTML/FormFu/I18N/en.pm @@ -205,7 +199,6 @@ lib/HTML/FormFu/Manual/Unicode.pod lib/HTML/FormFu/Model.pm lib/HTML/FormFu/Model/HashRef.pm -lib/HTML/FormFu/MultiForm.pm lib/HTML/FormFu/ObjectUtil.pm lib/HTML/FormFu/OutputProcessor.pm lib/HTML/FormFu/OutputProcessor/Indent.pm @@ -214,13 +207,14 @@ lib/HTML/FormFu/Plugin/StashValid.pm lib/HTML/FormFu/Preload.pm lib/HTML/FormFu/Processor.pm -lib/HTML/FormFu/QueryType/Catalyst.pm lib/HTML/FormFu/QueryType/CGI.pm lib/HTML/FormFu/QueryType/CGI/Simple.pm +lib/HTML/FormFu/QueryType/Catalyst.pm lib/HTML/FormFu/Role/Constraint/Others.pm lib/HTML/FormFu/Role/ContainsElements.pm lib/HTML/FormFu/Role/ContainsElementsSharedWithField.pm lib/HTML/FormFu/Role/CreateChildren.pm +lib/HTML/FormFu/Role/CustomRoles.pm lib/HTML/FormFu/Role/Element/Coercible.pm lib/HTML/FormFu/Role/Element/Field.pm lib/HTML/FormFu/Role/Element/FieldMethods.pm @@ -233,6 +227,7 @@ lib/HTML/FormFu/Role/Filter/Compound.pm lib/HTML/FormFu/Role/FormAndBlockMethods.pm lib/HTML/FormFu/Role/FormAndElementMethods.pm +lib/HTML/FormFu/Role/FormBlockAndFieldMethods.pm lib/HTML/FormFu/Role/GetProcessors.pm lib/HTML/FormFu/Role/HasParent.pm lib/HTML/FormFu/Role/NestedHashUtils.pm @@ -245,24 +240,19 @@ lib/HTML/FormFu/Util.pm lib/HTML/FormFu/Validator.pm lib/HTML/FormFu/Validator/Callback.pm -Makefile.PL -MANIFEST This list of files -META.yml -MYMETA.json -MYMETA.yml -README share/templates/tt/xhtml/block share/templates/tt/xhtml/checkboxgroup share/templates/tt/xhtml/checkboxgroup_tag share/templates/tt/xhtml/content_button share/templates/tt/xhtml/end_block share/templates/tt/xhtml/end_form +share/templates/tt/xhtml/errors share/templates/tt/xhtml/field share/templates/tt/xhtml/form share/templates/tt/xhtml/input share/templates/tt/xhtml/input_tag share/templates/tt/xhtml/label -share/templates/tt/xhtml/label_tag +share/templates/tt/xhtml/label_element share/templates/tt/xhtml/multi share/templates/tt/xhtml/non_block share/templates/tt/xhtml/recaptcha @@ -271,409 +261,555 @@ share/templates/tt/xhtml/start_block share/templates/tt/xhtml/start_form share/templates/tt/xhtml/textarea_tag -t/01use.t -t/04basic.t -t/04basic.yml -t/05_repeated_render.t +t-aggregate/01use.t +t-aggregate/04basic.t +t-aggregate/04basic.yml +t-aggregate/05_repeated_render.t +t-aggregate/block_insert_after.t +t-aggregate/block_insert_before.t +t-aggregate/bugs/constructor_arg_overwrites_default.t +t-aggregate/bugs/date_element_deflator.t +t-aggregate/bugs/date_element_empty_input.t +t-aggregate/bugs/datetime_hour_lt_10.t +t-aggregate/bugs/disabled_select_default_value.yml +t-aggregate/bugs/element_class.t +t-aggregate/bugs/element_parent.t +t-aggregate/bugs/empty_block_with_nested_name.t +t-aggregate/bugs/empty_block_with_nested_name.yml +t-aggregate/bugs/error_msg.t +t-aggregate/bugs/error_multiple_fields_same_name.t +t-aggregate/bugs/error_multiple_fields_same_name.yml +t-aggregate/bugs/field_no_name.t +t-aggregate/bugs/filter_run_once.t +t-aggregate/bugs/multiple_checkbox_same_name.t +t-aggregate/bugs/multiple_checkbox_same_name.yml +t-aggregate/bugs/name_regex_chars.t +t-aggregate/bugs/not_nested.t +t-aggregate/bugs/populate_element_coderef.t +t-aggregate/bugs/pre_1_00_compat.t +t-aggregate/bugs/pre_1_00_compat.yml +t-aggregate/bugs/render_processed_value_retain_default.t +t-aggregate/bugs/render_processed_value_retain_default.yml +t-aggregate/bugs/result_params_multiple.t +t-aggregate/bugs/select_empty_options.t +t-aggregate/bugs/submit_no_value.t +t-aggregate/bugs/submit_retain_default.t +t-aggregate/bugs/value_empty_string.t +t-aggregate/bugs/value_no_default.t +t-aggregate/bugs/yaml_utf8.t +t-aggregate/bugs/yaml_utf8.txt +t-aggregate/bugs/yaml_utf8.yml +t-aggregate/constraints/allornone.t +t-aggregate/constraints/allornone_attach_errors_to_base.t +t-aggregate/constraints/allornone_attach_errors_to_base.yml +t-aggregate/constraints/allornone_attach_errors_to_others.t +t-aggregate/constraints/allornone_attach_errors_to_others.yml +t-aggregate/constraints/ascii.t +t-aggregate/constraints/autoset.t +t-aggregate/constraints/autoset_group.t +t-aggregate/constraints/bool.t +t-aggregate/constraints/callback.t +t-aggregate/constraints/callbackonce.t +t-aggregate/constraints/constraint.t +t-aggregate/constraints/constraint_other_siblings.t +t-aggregate/constraints/constraint_other_siblings.yml +t-aggregate/constraints/constraint_other_siblings_not.t +t-aggregate/constraints/constraint_other_siblings_not.yml +t-aggregate/constraints/constraint_when.t +t-aggregate/constraints/constraint_when.yml +t-aggregate/constraints/constraint_when_any_field.t +t-aggregate/constraints/constraint_when_any_field.yml +t-aggregate/constraints/constraint_when_any_true_value.t +t-aggregate/constraints/constraint_when_any_true_value.yml +t-aggregate/constraints/constraint_when_default_empty_value.t +t-aggregate/constraints/constraint_when_default_empty_value.yml +t-aggregate/constraints/constraint_when_fields.t +t-aggregate/constraints/constraint_when_fields.yml +t-aggregate/constraints/datetime_parser.t +t-aggregate/constraints/dependon.t +t-aggregate/constraints/dependon_attach_errors_to_base.t +t-aggregate/constraints/dependon_attach_errors_to_base.yml +t-aggregate/constraints/dependon_attach_errors_to_others.t +t-aggregate/constraints/dependon_attach_errors_to_others.yml +t-aggregate/constraints/email.t +t-aggregate/constraints/equal.t +t-aggregate/constraints/equal_internals.t +t-aggregate/constraints/equal_not.t +t-aggregate/constraints/file.t +t-aggregate/constraints/file.yml +t-aggregate/constraints/file_maxsize.t +t-aggregate/constraints/file_maxsize.yml +t-aggregate/constraints/file_mime.t +t-aggregate/constraints/file_mime.yml +t-aggregate/constraints/file_minsize.t +t-aggregate/constraints/file_minsize.yml +t-aggregate/constraints/file_size.t +t-aggregate/constraints/file_size.yml +t-aggregate/constraints/integer.t +t-aggregate/constraints/length.t +t-aggregate/constraints/localize.t +t-aggregate/constraints/maxlength.t +t-aggregate/constraints/maxrange.t +t-aggregate/constraints/minlength.t +t-aggregate/constraints/minmaxfields.t +t-aggregate/constraints/minmaxfields_with_filter_split.t +t-aggregate/constraints/minmaxfields_with_filter_split.yml +t-aggregate/constraints/minrange.t +t-aggregate/constraints/not_equal.t +t-aggregate/constraints/not_word.t +t-aggregate/constraints/number.t +t-aggregate/constraints/printable.t +t-aggregate/constraints/range.t +t-aggregate/constraints/regex.t +t-aggregate/constraints/regex_anchored.t +t-aggregate/constraints/regex_common.t +t-aggregate/constraints/repeatable_any.t +t-aggregate/constraints/repeatable_any.yml +t-aggregate/constraints/repeatable_any_not_increment_field_names.t +t-aggregate/constraints/repeatable_any_not_increment_field_names.yml +t-aggregate/constraints/required.t +t-aggregate/constraints/required_file.t +t-aggregate/constraints/required_file.yml +t-aggregate/constraints/required_only_on_reps.t +t-aggregate/constraints/required_only_on_reps.yml +t-aggregate/constraints/set.t +t-aggregate/constraints/singlevalue.t +t-aggregate/constraints/word.t +t-aggregate/constraints/xml.t +t-aggregate/deflators/callback.t +t-aggregate/deflators/compounddatetime.t +t-aggregate/deflators/compounddatetime.yml +t-aggregate/deflators/compounddatetime_field_order.t +t-aggregate/deflators/compounddatetime_field_order.yml +t-aggregate/deflators/compoundsplit.t +t-aggregate/deflators/compoundsplit.yml +t-aggregate/deflators/compoundsplit_after_submit.t +t-aggregate/deflators/compoundsplit_after_submit.yml +t-aggregate/deflators/compoundsplit_field_order.t +t-aggregate/deflators/compoundsplit_field_order.yml +t-aggregate/deflators/compoundsplit_split.t +t-aggregate/deflators/compoundsplit_split.yml +t-aggregate/deflators/formatnumber.t +t-aggregate/deflators/formatnumber.yml +t-aggregate/deflators/pathclassfile.t +t-aggregate/elements/blank.t +t-aggregate/elements/block.t +t-aggregate/elements/block_auto_block_id.t +t-aggregate/elements/block_auto_block_id.yml +t-aggregate/elements/block_repeatable.t +t-aggregate/elements/block_repeatable.yml +t-aggregate/elements/block_repeatable_attrs.t +t-aggregate/elements/block_repeatable_attrs.yml +t-aggregate/elements/block_repeatable_auto_block_id.t +t-aggregate/elements/block_repeatable_auto_block_id.yml +t-aggregate/elements/block_repeatable_auto_id.t +t-aggregate/elements/block_repeatable_auto_id.yml +t-aggregate/elements/block_repeatable_date.t +t-aggregate/elements/block_repeatable_date.yml +t-aggregate/elements/block_repeatable_inc.t +t-aggregate/elements/block_repeatable_inc.yml +t-aggregate/elements/block_repeatable_multi.t +t-aggregate/elements/block_repeatable_tag.t +t-aggregate/elements/block_repeatable_tag.yml +t-aggregate/elements/button.t +t-aggregate/elements/button_no_name.t +t-aggregate/elements/checkbox.t +t-aggregate/elements/checkbox_force_default.t +t-aggregate/elements/checkbox_retain_default.t +t-aggregate/elements/checkbox_reverse.t +t-aggregate/elements/checkbox_reverse.yml +t-aggregate/elements/checkboxgroup.t +t-aggregate/elements/checkboxgroup_attributes_escaped.t +t-aggregate/elements/checkboxgroup_attributes_escaped.yml +t-aggregate/elements/combobox.t +t-aggregate/elements/combobox.yml +t-aggregate/elements/combobox_repeatable.t +t-aggregate/elements/combobox_repeatable.yml +t-aggregate/elements/combobox_required.t +t-aggregate/elements/combobox_required.yml +t-aggregate/elements/content_button.t +t-aggregate/elements/date.t +t-aggregate/elements/date_default.t +t-aggregate/elements/date_default_datetime_args.t +t-aggregate/elements/date_default_datetime_args.yml +t-aggregate/elements/date_default_empty.t +t-aggregate/elements/date_month_year.t +t-aggregate/elements/date_natural.t +t-aggregate/elements/date_order.t +t-aggregate/elements/date_order_error.t +t-aggregate/elements/date_rename.t +t-aggregate/elements/date_undef.t +t-aggregate/elements/date_year_reverse.t +t-aggregate/elements/date_year_reverse.yml +t-aggregate/elements/datetime.t +t-aggregate/elements/datetime.yml +t-aggregate/elements/datetime_interval.t +t-aggregate/elements/datetime_interval.yml +t-aggregate/elements/datetime_seconds.t +t-aggregate/elements/datetime_seconds.yml +t-aggregate/elements/element_setup.t +t-aggregate/elements/email.t +t-aggregate/elements/errors_filename.t +t-aggregate/elements/errors_filename.yml +t-aggregate/elements/escaping.t +t-aggregate/elements/field_default_empty_value.t +t-aggregate/elements/field_non_param.t +t-aggregate/elements/fieldset.t +t-aggregate/elements/fieldset_legend_attrs.t +t-aggregate/elements/fieldset_legend_attrs.yml +t-aggregate/elements/file.t +t-aggregate/elements/file_post.txt +t-aggregate/elements/file_post_cgi_simple.t +t-aggregate/elements/hidden.t +t-aggregate/elements/hr.t +t-aggregate/elements/image.t +t-aggregate/elements/label.t +t-aggregate/elements/label.yml +t-aggregate/elements/label_value_submission.t +t-aggregate/elements/label_value_submission.yml +t-aggregate/elements/multi.t +t-aggregate/elements/multi_errors.t +t-aggregate/elements/multiple_submit_buttons.t +t-aggregate/elements/no_block_tag.t +t-aggregate/elements/no_block_tag.yml +t-aggregate/elements/no_container_tag.t +t-aggregate/elements/no_container_tag.yml +t-aggregate/elements/number.t +t-aggregate/elements/number.yml +t-aggregate/elements/object.t +t-aggregate/elements/object/input +t-aggregate/elements/password.t +t-aggregate/elements/password_render_value.t +t-aggregate/elements/password_retain_default.t +t-aggregate/elements/radio.t +t-aggregate/elements/radio_force_default.t +t-aggregate/elements/radio_retain_default.t +t-aggregate/elements/radiogroup.t +t-aggregate/elements/radiogroup_attributes_escaped.t +t-aggregate/elements/radiogroup_attributes_escaped.yml +t-aggregate/elements/radiogroup_attrs_xml.t +t-aggregate/elements/radiogroup_dup_opt.t +t-aggregate/elements/radiogroup_errors.t +t-aggregate/elements/radiogroup_force_default.t +t-aggregate/elements/radiogroup_id.t +t-aggregate/elements/radiogroup_id_value.t +t-aggregate/elements/radiogroup_retain_default.t +t-aggregate/elements/radiogroup_subgroup.t +t-aggregate/elements/radiogroup_unknown_opt.t +t-aggregate/elements/radiogroup_xml.t +t-aggregate/elements/render_method.t +t-aggregate/elements/repeatable_counter_name.t +t-aggregate/elements/repeatable_counter_name.yml +t-aggregate/elements/repeatable_repeatable.t +t-aggregate/elements/repeatable_repeatable.yml +t-aggregate/elements/reset.t +t-aggregate/elements/reverse.t +t-aggregate/elements/select.t +t-aggregate/elements/select_attributes_escaped.t +t-aggregate/elements/select_attributes_escaped.yml +t-aggregate/elements/select_deflator_default.t +t-aggregate/elements/select_empty_first.t +t-aggregate/elements/select_empty_first.yml +t-aggregate/elements/select_empty_first_label.t +t-aggregate/elements/select_force_default.t +t-aggregate/elements/select_label_loc.t +t-aggregate/elements/select_multi_default_values.t +t-aggregate/elements/select_multi_value.t +t-aggregate/elements/select_optgroup.t +t-aggregate/elements/select_options.t +t-aggregate/elements/select_retain_default.t +t-aggregate/elements/select_same_name.t +t-aggregate/elements/select_same_name.yml +t-aggregate/elements/select_value_range.t +t-aggregate/elements/simple_table.t +t-aggregate/elements/simple_table.yml +t-aggregate/elements/simple_table_class.t +t-aggregate/elements/simple_table_class.yml +t-aggregate/elements/simple_table_multiple.t +t-aggregate/elements/simple_table_multiple.yml +t-aggregate/elements/src.t +t-aggregate/elements/submit.t +t-aggregate/elements/text.t +t-aggregate/elements/text_attributes.t +t-aggregate/elements/text_auto_comment_class.t +t-aggregate/elements/text_auto_comment_class.yml +t-aggregate/elements/text_auto_container_class.t +t-aggregate/elements/text_auto_container_class.yml +t-aggregate/elements/text_auto_container_comment_class.t +t-aggregate/elements/text_auto_container_comment_class.yml +t-aggregate/elements/text_auto_container_error_class.t +t-aggregate/elements/text_auto_container_error_class.yml +t-aggregate/elements/text_auto_container_label_class.t +t-aggregate/elements/text_auto_container_label_class.yml +t-aggregate/elements/text_auto_label_class.t +t-aggregate/elements/text_auto_label_class.yml +t-aggregate/elements/text_datalist_options.t +t-aggregate/elements/text_datalist_options.yml +t-aggregate/elements/text_datalist_values.t +t-aggregate/elements/text_datalist_values.yml +t-aggregate/elements/text_errors.t +t-aggregate/elements/text_force_default.t +t-aggregate/elements/text_retain_default.t +t-aggregate/elements/text_title.t +t-aggregate/elements/textarea.t +t-aggregate/elements/url.t +t-aggregate/elements/url.yml +t-aggregate/examples/custom_label.t +t-aggregate/examples/custom_label2.t +t-aggregate/examples/field_as.t +t-aggregate/examples/fields_as_list_items.t +t-aggregate/field_accessor_loc.t +t-aggregate/field_accessor_loc_arrayref.t +t-aggregate/field_accessor_loc_arrayref.yml +t-aggregate/field_change_name.t +t-aggregate/field_id.t +t-aggregate/filters/all_by_default.t +t-aggregate/filters/callback.t +t-aggregate/filters/compoundjoin.t +t-aggregate/filters/compoundjoin.yml +t-aggregate/filters/compoundjoin_field_order.t +t-aggregate/filters/compoundjoin_field_order.yml +t-aggregate/filters/compoundjoin_join.t +t-aggregate/filters/compoundjoin_join.yml +t-aggregate/filters/compoundsprintf.t +t-aggregate/filters/compoundsprintf.yml +t-aggregate/filters/compoundsprintf_field_order.t +t-aggregate/filters/compoundsprintf_field_order.yml +t-aggregate/filters/copyvalue.t +t-aggregate/filters/encode.t +t-aggregate/filters/filter.t +t-aggregate/filters/formatnumber.t +t-aggregate/filters/formatnumber.yml +t-aggregate/filters/htmlescape.t +t-aggregate/filters/htmlscrubber.t +t-aggregate/filters/lowercase.t +t-aggregate/filters/nonnumeric.t +t-aggregate/filters/regex.t +t-aggregate/filters/regex.yml +t-aggregate/filters/regex_eval.t +t-aggregate/filters/regex_eval.yml +t-aggregate/filters/split.t +t-aggregate/filters/split.yml +t-aggregate/filters/trimedges.t +t-aggregate/filters/uppercase.t +t-aggregate/filters/whitespace.t +t-aggregate/force_errors/allornone.t +t-aggregate/force_errors/callbackonce.t +t-aggregate/force_errors/dependon.t +t-aggregate/force_errors/equal.t +t-aggregate/force_errors/force_errors.t +t-aggregate/force_errors/integer.t +t-aggregate/force_errors/minmaxfields.t +t-aggregate/form/add_render_class_args.t +t-aggregate/form/add_valid.t +t-aggregate/form/add_valid_unknown.t +t-aggregate/form/attributes.t +t-aggregate/form/auto_constraint_class.t +t-aggregate/form/auto_error_class.t +t-aggregate/form/auto_error_message.t +t-aggregate/form/auto_fieldset.t +t-aggregate/form/auto_label.t +t-aggregate/form/clone.t +t-aggregate/form/config_callback.t +t-aggregate/form/config_callback.yml +t-aggregate/form/constraints_from_dbic.t +t-aggregate/form/constraints_from_dbic_rs.t +t-aggregate/form/default_args.t +t-aggregate/form/default_args_alt.t +t-aggregate/form/default_args_alt.yml +t-aggregate/form/default_args_isa.t +t-aggregate/form/default_args_isa.yml +t-aggregate/form/default_args_not_inheriting.t +t-aggregate/form/default_values.t +t-aggregate/form/end.t +t-aggregate/form/error_message.t +t-aggregate/form/force_error_message.t +t-aggregate/form/form_error_message_class.t +t-aggregate/form/get_all_elements.t +t-aggregate/form/get_constraint.t +t-aggregate/form/get_constraints.t +t-aggregate/form/get_deflator.t +t-aggregate/form/get_deflators.t +t-aggregate/form/get_element.t +t-aggregate/form/get_elements.t +t-aggregate/form/get_errors.t +t-aggregate/form/get_field.t +t-aggregate/form/get_fields.t +t-aggregate/form/get_filter.t +t-aggregate/form/get_filters.t +t-aggregate/form/get_inflator.t +t-aggregate/form/get_inflators.t +t-aggregate/form/get_parent.t +t-aggregate/form/get_parent.yml +t-aggregate/form/has_errors.t +t-aggregate/form/hidden_fields.t +t-aggregate/form/init_arg.t +t-aggregate/form/insert_after.t +t-aggregate/form/insert_before.t +t-aggregate/form/javascript.t +t-aggregate/form/javascript_src.t +t-aggregate/form/languages.t +t-aggregate/form/languages.yml +t-aggregate/form/model.t +t-aggregate/form/multiple_same_named_fields.t +t-aggregate/form/object.t +t-aggregate/form/object/form +t-aggregate/form/param.t +t-aggregate/form/param_array.t +t-aggregate/form/param_list.t +t-aggregate/form/param_value.t +t-aggregate/form/params.t +t-aggregate/form/params_ignore_underscore.t +t-aggregate/form/query.t +t-aggregate/form/render_processed_value.t +t-aggregate/form/render_processed_value.yml +t-aggregate/form/start.t +t-aggregate/form/stash.t +t-aggregate/form/submitted.t +t-aggregate/form/submitted_and_valid.t +t-aggregate/form/title_xml.t +t-aggregate/form/valid.t +t-aggregate/i18n/add_localize_object.t +t-aggregate/i18n/add_localize_object_from_class.t +t-aggregate/i18n/add_localize_object_from_class.yml +t-aggregate/inflators/array.t +t-aggregate/inflators/callback.t +t-aggregate/inflators/compounddatetime.t +t-aggregate/inflators/compounddatetime.yml +t-aggregate/inflators/compounddatetime_field_order.t +t-aggregate/inflators/compounddatetime_field_order.yml +t-aggregate/inflators/datetime_optional.t +t-aggregate/inflators/datetime_parser.t +t-aggregate/inflators/datetime_regex.t +t-aggregate/inflators/datetime_regex_string.t +t-aggregate/inflators/datetime_strptime.t +t-aggregate/inflators/datetime_timezone.t +t-aggregate/inflators/datetime_with_constraint.t +t-aggregate/inflators/datetime_with_constraint.yml +t-aggregate/internals/default_args-types.t +t-aggregate/internals/default_args-types.yml +t-aggregate/load_config/config_file_path.t +t-aggregate/load_config/config_file_path/form.yml +t-aggregate/load_config/config_file_path2/form.yml +t-aggregate/load_config/load_config_file.t +t-aggregate/load_config/load_config_file_constraint_regex.t +t-aggregate/load_config/load_config_file_constraint_regex.yml +t-aggregate/load_config/load_config_file_fieldset.yml +t-aggregate/load_config/load_config_file_form.yml +t-aggregate/load_config/load_config_file_multi_stream.t +t-aggregate/load_config/load_config_file_multi_stream.yml +t-aggregate/load_config/load_config_file_multiple.t +t-aggregate/load_config/load_config_file_multiple.yml +t-aggregate/load_config/load_config_file_multiple1.yml +t-aggregate/load_config/load_config_file_multiple2.yml +t-aggregate/load_config/load_config_filestem.t +t-aggregate/model/hashref_create.t +t-aggregate/model/hashref_create_repeatable_without_nestedname.t +t-aggregate/model/hashref_create_repeatable_without_nestedname.yml +t-aggregate/model/hashref_default_values.t +t-aggregate/model/hashref_escaping.t +t-aggregate/model/hashref_multi_within_rep.t +t-aggregate/model/hashref_multi_within_rep.yml +t-aggregate/model/hashref_process.t +t-aggregate/multiple_select_fields.t +t-aggregate/multiple_text_fields.t +t-aggregate/nested/constraints/allornone.t +t-aggregate/nested/constraints/callbackonce.t +t-aggregate/nested/constraints/constraint_when.t +t-aggregate/nested/constraints/constraint_when.yml +t-aggregate/nested/constraints/dependon.t +t-aggregate/nested/constraints/equal.t +t-aggregate/nested/constraints/minmaxfields.t +t-aggregate/nested/constraints/required.t +t-aggregate/nested/element_name.t +t-aggregate/nested/element_name.yml +t-aggregate/nested/elements/block_repeatable_multi_named.t +t-aggregate/nested/elements/block_repeatable_multi_named.yml +t-aggregate/nested/elements/block_repeatable_multi_named_filter.t +t-aggregate/nested/elements/block_repeatable_multi_named_filter.yml +t-aggregate/nested/elements/block_without_name.t +t-aggregate/nested/elements/block_without_name.yml +t-aggregate/nested/elements/checkbox_force_default.t +t-aggregate/nested/elements/checkbox_retain_default.t +t-aggregate/nested/elements/combobox.t +t-aggregate/nested/elements/date.t +t-aggregate/nested/elements/multi.t +t-aggregate/nested/elements/multi_named.t +t-aggregate/nested/elements/radio.t +t-aggregate/nested/elements/radio_force_default.t +t-aggregate/nested/elements/radio_retain_default.t +t-aggregate/nested/elements/radiogroup.t +t-aggregate/nested/elements/radiogroup_force_default.t +t-aggregate/nested/elements/radiogroup_retain_default.t +t-aggregate/nested/elements/repeatable_repeatable.t +t-aggregate/nested/elements/repeatable_repeatable.yml +t-aggregate/nested/elements/select.t +t-aggregate/nested/elements/select_force_default.t +t-aggregate/nested/elements/select_retain_default.t +t-aggregate/nested/elements/select_same_name.t +t-aggregate/nested/elements/select_same_name.yml +t-aggregate/nested/elements/text.t +t-aggregate/nested/filters/regex.t +t-aggregate/nested/form/render_processed_value.t +t-aggregate/nested/form/render_processed_value.yml +t-aggregate/nested/form_input.t +t-aggregate/nested/illegal_name.t +t-aggregate/nested/inflators/datetime_strptime.t +t-aggregate/nested/internals/form_processed_params.t +t-aggregate/nested/internals/hash_keys.t +t-aggregate/nested/param.t +t-aggregate/nested/params.t +t-aggregate/nested/pre_expanded.t +t-aggregate/nested/transformers/callback.t +t-aggregate/nested/valid.t +t-aggregate/nested/validators/callback.t +t-aggregate/output_processors/indent.t +t-aggregate/output_processors/indent_internals.t +t-aggregate/output_processors/strip_whitespace.t +t-aggregate/output_processors/strip_whitespace.yml +t-aggregate/plugins/stashvalid.t +t-aggregate/plugins/stashvalid.yml +t-aggregate/plugins/stashvalid_on_field.t +t-aggregate/plugins/stashvalid_on_field.yml +t-aggregate/repeatable/clone.t +t-aggregate/repeatable/clone.yml +t-aggregate/repeatable/constraints/attach_errors_to.t +t-aggregate/repeatable/constraints/attach_errors_to.yml +t-aggregate/repeatable/constraints/equal.t +t-aggregate/repeatable/constraints/equal.yml +t-aggregate/repeatable/constraints/required.t +t-aggregate/repeatable/constraints/required.yml +t-aggregate/repeatable/constraints/required_not_increment_field_names.t +t-aggregate/repeatable/constraints/required_not_increment_field_names.yml +t-aggregate/repeatable/constraints/required_not_nested.t +t-aggregate/repeatable/constraints/required_not_nested.yml +t-aggregate/repeatable/constraints/when.t +t-aggregate/repeatable/constraints/when.yml +t-aggregate/repeatable/repeatable/constraints/repeatable_any.t +t-aggregate/repeatable/repeatable/constraints/repeatable_any.yml +t-aggregate/roles/block.t +t-aggregate/roles/block.yml +t-aggregate/roles/field.t +t-aggregate/roles/field.yml +t-aggregate/roles/form.t +t-aggregate/roles/form.yml +t-aggregate/transformers/callback.t +t-aggregate/utils/append_xml_attribute.t +t-aggregate/utils/has_xml_attribute.t +t-aggregate/utils/remove_xml_attribute.t +t-aggregate/validators/callback.t +t-aggregate/validators/validator.t t/aggregate.t -t/block_insert_after.t -t/block_insert_before.t -t/bugs/constructor_arg_overwrites_default.t -t/bugs/date_element_deflator.t -t/bugs/date_element_empty_input.t -t/bugs/datetime_hour_lt_10.t -t/bugs/element_class.t -t/bugs/element_parent.t -t/bugs/empty_block_with_nested_name.t -t/bugs/empty_block_with_nested_name.yml -t/bugs/error_msg.t -t/bugs/field_no_name.t -t/bugs/filter_run_once.t -t/bugs/name_regex_chars.t -t/bugs/not_nested.t -t/bugs/populate_element_coderef.t -t/bugs/render_processed_value_retain_default.t -t/bugs/render_processed_value_retain_default.yml -t/bugs/result_params_multiple.t -t/bugs/select_empty_options.t -t/bugs/submit_no_value.t -t/bugs/submit_retain_default.t -t/bugs/value_empty_string.t -t/bugs/value_no_default.t -t/bugs/yaml_utf8.t -t/bugs/yaml_utf8.txt -t/bugs/yaml_utf8.yml -t/constraints/allornone.t -t/constraints/allornone_attach_errors_to_base.t -t/constraints/allornone_attach_errors_to_base.yml -t/constraints/allornone_attach_errors_to_others.t -t/constraints/allornone_attach_errors_to_others.yml -t/constraints/ascii.t -t/constraints/autoset.t -t/constraints/autoset_group.t -t/constraints/bool.t -t/constraints/callback.t -t/constraints/callbackonce.t -t/constraints/constraint.t -t/constraints/constraint_other_siblings.t -t/constraints/constraint_other_siblings.yml -t/constraints/constraint_other_siblings_not.t -t/constraints/constraint_other_siblings_not.yml -t/constraints/constraint_when.t -t/constraints/constraint_when.yml -t/constraints/constraint_when_any_field.t -t/constraints/constraint_when_any_field.yml -t/constraints/constraint_when_any_true_value.t -t/constraints/constraint_when_any_true_value.yml -t/constraints/constraint_when_default_empty_value.t -t/constraints/constraint_when_default_empty_value.yml -t/constraints/constraint_when_fields.t -t/constraints/constraint_when_fields.yml -t/constraints/datetime_parser.t -t/constraints/dependon.t -t/constraints/dependon_attach_errors_to_base.t -t/constraints/dependon_attach_errors_to_base.yml -t/constraints/dependon_attach_errors_to_others.t -t/constraints/dependon_attach_errors_to_others.yml -t/constraints/email.t -t/constraints/equal.t -t/constraints/equal_internals.t -t/constraints/equal_not.t -t/constraints/file.t -t/constraints/file.yml -t/constraints/file_maxsize.t -t/constraints/file_maxsize.yml -t/constraints/file_mime.t -t/constraints/file_mime.yml -t/constraints/file_minsize.t -t/constraints/file_minsize.yml -t/constraints/file_size.t -t/constraints/file_size.yml -t/constraints/integer.t -t/constraints/length.t -t/constraints/localize.t -t/constraints/maxlength.t -t/constraints/maxrange.t -t/constraints/minlength.t -t/constraints/minmaxfields.t -t/constraints/minmaxfields_with_filter_split.t -t/constraints/minmaxfields_with_filter_split.yml -t/constraints/minrange.t -t/constraints/not_equal.t -t/constraints/not_word.t -t/constraints/number.t -t/constraints/printable.t -t/constraints/range.t -t/constraints/regex.t -t/constraints/regex_common.t -t/constraints/repeatable_any.t -t/constraints/repeatable_any.yml -t/constraints/repeatable_any_not_increment_field_names.t -t/constraints/repeatable_any_not_increment_field_names.yml -t/constraints/required.t -t/constraints/required_file.t -t/constraints/required_file.yml -t/constraints/required_only_on_reps.t -t/constraints/required_only_on_reps.yml -t/constraints/set.t -t/constraints/singlevalue.t -t/constraints/word.t -t/constraints/xml.t -t/deflators/callback.t -t/deflators/compounddatetime.t -t/deflators/compounddatetime.yml -t/deflators/compounddatetime_field_order.t -t/deflators/compounddatetime_field_order.yml -t/deflators/compoundsplit.t -t/deflators/compoundsplit.yml -t/deflators/compoundsplit_after_submit.t -t/deflators/compoundsplit_after_submit.yml -t/deflators/compoundsplit_field_order.t -t/deflators/compoundsplit_field_order.yml -t/deflators/compoundsplit_split.t -t/deflators/compoundsplit_split.yml -t/deflators/formatnumber.t -t/deflators/formatnumber.yml -t/deflators/pathclassfile.t -t/elements/blank.t -t/elements/block.t -t/elements/block_auto_block_id.t -t/elements/block_auto_block_id.yml -t/elements/block_repeatable.t -t/elements/block_repeatable.yml -t/elements/block_repeatable_attrs.t -t/elements/block_repeatable_attrs.yml -t/elements/block_repeatable_auto_block_id.t -t/elements/block_repeatable_auto_block_id.yml -t/elements/block_repeatable_auto_id.t -t/elements/block_repeatable_auto_id.yml -t/elements/block_repeatable_date.t -t/elements/block_repeatable_date.yml -t/elements/block_repeatable_inc.t -t/elements/block_repeatable_inc.yml -t/elements/block_repeatable_multi.t -t/elements/block_repeatable_tag.t -t/elements/block_repeatable_tag.yml -t/elements/button.t -t/elements/button_no_name.t -t/elements/checkbox.t -t/elements/checkbox_force_default.t -t/elements/checkbox_retain_default.t -t/elements/checkbox_reverse.t -t/elements/checkbox_reverse.yml -t/elements/checkboxgroup.t -t/elements/checkboxgroup_attributes_escaped.t -t/elements/checkboxgroup_attributes_escaped.yml -t/elements/combobox.t -t/elements/combobox.yml -t/elements/combobox_repeatable.t -t/elements/combobox_repeatable.yml -t/elements/combobox_required.t -t/elements/combobox_required.yml -t/elements/content_button.t -t/elements/date.t -t/elements/date_default.t -t/elements/date_default_datetime_args.t -t/elements/date_default_datetime_args.yml -t/elements/date_default_empty.t -t/elements/date_month_year.t -t/elements/date_natural.t -t/elements/date_order.t -t/elements/date_order_error.t -t/elements/date_rename.t -t/elements/date_undef.t -t/elements/date_year_reverse.t -t/elements/date_year_reverse.yml -t/elements/datetime.t -t/elements/datetime.yml -t/elements/datetime_interval.t -t/elements/datetime_interval.yml -t/elements/datetime_seconds.t -t/elements/datetime_seconds.yml -t/elements/element_setup.t -t/elements/escaping.t -t/elements/field_default_empty_value.t -t/elements/field_non_param.t -t/elements/fieldset.t -t/elements/fieldset_legend_attrs.t -t/elements/fieldset_legend_attrs.yml -t/elements/file.t -t/elements/file_post.t -t/elements/file_post.txt -t/elements/file_post_cgi_simple.t -t/elements/hidden.t -t/elements/hr.t -t/elements/image.t -t/elements/label.t -t/elements/label.yml -t/elements/label_value_submission.t -t/elements/label_value_submission.yml -t/elements/multi.t -t/elements/multi_errors.t -t/elements/multiple_submit_buttons.t -t/elements/no_block_tag.t -t/elements/no_block_tag.yml -t/elements/no_container_tag.t -t/elements/no_container_tag.yml -t/elements/number.t -t/elements/number.yml -t/elements/object.t -t/elements/object/input -t/elements/password.t -t/elements/password_render_value.t -t/elements/password_retain_default.t -t/elements/radio.t -t/elements/radio_force_default.t -t/elements/radio_retain_default.t -t/elements/radiogroup.t -t/elements/radiogroup_attributes_escaped.t -t/elements/radiogroup_attributes_escaped.yml -t/elements/radiogroup_attrs_xml.t -t/elements/radiogroup_dup_opt.t -t/elements/radiogroup_errors.t -t/elements/radiogroup_force_default.t -t/elements/radiogroup_id.t -t/elements/radiogroup_retain_default.t -t/elements/radiogroup_subgroup.t -t/elements/radiogroup_unknown_opt.t -t/elements/radiogroup_xml.t -t/elements/recaptcha.t -t/elements/recaptcha.yml -t/elements/recaptcha_constraint_args.t -t/elements/recaptcha_constraint_args.yml -t/elements/render_method.t -t/elements/repeatable_counter_name.t -t/elements/repeatable_counter_name.yml -t/elements/repeatable_repeatable.t -t/elements/repeatable_repeatable.yml -t/elements/reset.t -t/elements/reverse.t -t/elements/select.t -t/elements/select_attributes_escaped.t -t/elements/select_attributes_escaped.yml -t/elements/select_deflator_default.t -t/elements/select_empty_first.t -t/elements/select_empty_first.yml -t/elements/select_empty_first_label.t -t/elements/select_force_default.t -t/elements/select_label_loc.t -t/elements/select_multi_default_values.t -t/elements/select_multi_value.t -t/elements/select_optgroup.t -t/elements/select_options.t -t/elements/select_retain_default.t -t/elements/select_same_name.t -t/elements/select_same_name.yml -t/elements/select_value_range.t -t/elements/simple_table.t -t/elements/simple_table.yml -t/elements/simple_table_class.t -t/elements/simple_table_class.yml -t/elements/simple_table_multiple.t -t/elements/simple_table_multiple.yml -t/elements/src.t -t/elements/submit.t -t/elements/text.t -t/elements/text_attributes.t -t/elements/text_errors.t -t/elements/text_force_default.t -t/elements/text_retain_default.t -t/elements/textarea.t -t/examples/custom_label.t -t/examples/custom_label2.t -t/examples/field_as.t -t/examples/fields_as_list_items.t -t/field_accessor_loc.t -t/field_accessor_loc_arrayref.t -t/field_accessor_loc_arrayref.yml -t/field_change_name.t -t/field_id.t -t/filters/all_by_default.t -t/filters/callback.t -t/filters/compoundjoin.t -t/filters/compoundjoin.yml -t/filters/compoundjoin_field_order.t -t/filters/compoundjoin_field_order.yml -t/filters/compoundjoin_join.t -t/filters/compoundjoin_join.yml -t/filters/compoundsprintf.t -t/filters/compoundsprintf.yml -t/filters/compoundsprintf_field_order.t -t/filters/compoundsprintf_field_order.yml -t/filters/copyvalue.t -t/filters/encode.t -t/filters/filter.t -t/filters/formatnumber.t -t/filters/formatnumber.yml -t/filters/htmlescape.t -t/filters/htmlscrubber.t -t/filters/lowercase.t -t/filters/nonnumeric.t -t/filters/regex.t -t/filters/regex.yml -t/filters/regex_eval.t -t/filters/regex_eval.yml -t/filters/split.t -t/filters/split.yml -t/filters/trimedges.t -t/filters/uppercase.t -t/filters/whitespace.t -t/force_errors/allornone.t -t/force_errors/callbackonce.t -t/force_errors/dependon.t -t/force_errors/equal.t -t/force_errors/force_errors.t -t/force_errors/integer.t -t/force_errors/minmaxfields.t -t/form/add_render_class_args.t -t/form/add_valid.t -t/form/add_valid_unknown.t -t/form/attributes.t -t/form/auto_constraint_class.t -t/form/auto_error_class.t -t/form/auto_error_message.t -t/form/auto_fieldset.t -t/form/auto_label.t -t/form/clone.t -t/form/config_callback.t -t/form/config_callback.yml -t/form/constraints_from_dbic.t -t/form/constraints_from_dbic_rs.t -t/form/default_args.t -t/form/default_args_isa.t -t/form/default_args_not_inheriting.t -t/form/default_values.t -t/form/end.t -t/form/error_message.t -t/form/force_error_message.t -t/form/form_error_message_class.t -t/form/get_all_elements.t -t/form/get_constraint.t -t/form/get_constraints.t -t/form/get_deflator.t -t/form/get_deflators.t -t/form/get_element.t -t/form/get_elements.t -t/form/get_errors.t -t/form/get_field.t -t/form/get_fields.t -t/form/get_filter.t -t/form/get_filters.t -t/form/get_inflator.t -t/form/get_inflators.t -t/form/get_parent.t -t/form/get_parent.yml -t/form/has_errors.t -t/form/hidden_fields.t -t/form/init_arg.t -t/form/insert_after.t -t/form/insert_before.t -t/form/javascript.t -t/form/javascript_src.t -t/form/languages.t -t/form/languages.yml -t/form/model.t -t/form/multiple_same_named_fields.t -t/form/object.t -t/form/object/form -t/form/param.t -t/form/param_array.t -t/form/param_list.t -t/form/param_value.t -t/form/params.t -t/form/params_ignore_underscore.t -t/form/query.t -t/form/render_processed_value.t -t/form/render_processed_value.yml -t/form/start.t -t/form/stash.t -t/form/submitted.t -t/form/submitted_and_valid.t -t/form/valid.t -t/i18n/add_localize_object.t -t/i18n/add_localize_object_from_class.t -t/i18n/add_localize_object_from_class.yml -t/inflators/array.t -t/inflators/callback.t -t/inflators/compounddatetime.t -t/inflators/compounddatetime.yml -t/inflators/compounddatetime_field_order.t -t/inflators/compounddatetime_field_order.yml -t/inflators/datetime_optional.t -t/inflators/datetime_parser.t -t/inflators/datetime_regex.t -t/inflators/datetime_regex_string.t -t/inflators/datetime_strptime.t -t/inflators/datetime_timezone.t -t/inflators/datetime_with_constraint.t -t/inflators/datetime_with_constraint.yml -t/internals/default_args-types.t -t/internals/default_args-types.yml +t/elements-file_post.t +t/elements-file_post.txt t/lib/HTMLFormFu/DBICUniqueFake.pm t/lib/HTMLFormFu/ElementSetup.pm t/lib/HTMLFormFu/I18N.pm t/lib/HTMLFormFu/I18N/en.pm +t/lib/HTMLFormFu/MyBlockRole.pm t/lib/HTMLFormFu/MyDeflator.pm +t/lib/HTMLFormFu/MyFieldRole.pm +t/lib/HTMLFormFu/MyFormRole.pm t/lib/HTMLFormFu/MyModel.pm t/lib/HTMLFormFu/MyObject.pm t/lib/HTMLFormFu/MyValidator.pm @@ -683,136 +819,6 @@ t/lib/MyApp/Schema.pm t/lib/MyApp/Schema/Dongle.pm t/lib/MyApp/Schema/Person.pm -t/load_config/config_file_path.t -t/load_config/config_file_path/form.yml -t/load_config/config_file_path2/form.yml -t/load_config/load_config_file.t -t/load_config/load_config_file_constraint_regex.t -t/load_config/load_config_file_constraint_regex.yml -t/load_config/load_config_file_fieldset.yml -t/load_config/load_config_file_form.yml -t/load_config/load_config_file_multi_stream.t -t/load_config/load_config_file_multi_stream.yml -t/load_config/load_config_file_multiple.t -t/load_config/load_config_file_multiple.yml -t/load_config/load_config_file_multiple1.yml -t/load_config/load_config_file_multiple2.yml -t/load_config/load_config_filestem.t -t/model/hashref_create.t -t/model/hashref_create_repeatable_without_nestedname.t -t/model/hashref_create_repeatable_without_nestedname.yml -t/model/hashref_default_values.t -t/model/hashref_escaping.t -t/model/hashref_multi_within_rep.t -t/model/hashref_multi_within_rep.yml -t/model/hashref_process.t -t/multiform-misc/accessors.t -t/multiform-misc/accessors.yml -t/multiform-nested-name/0_render_page_1.t -t/multiform-nested-name/1_submit_page_1.t -t/multiform-nested-name/2_render_page_2.t -t/multiform-nested-name/3_submit_page_2.t -t/multiform-nested-name/4_complete_page_3.t -t/multiform-nested-name/multiform.yml -t/multiform-no-combine/0_render_page_1.t -t/multiform-no-combine/1_submit_page_1.t -t/multiform-no-combine/2_render_page_2.t -t/multiform-no-combine/3_submit_page_2.t -t/multiform-no-combine/4_complete_page_3.t -t/multiform-no-combine/multiform.yml -t/multiform/0_render_page_1.t -t/multiform/1_submit_page_1.t -t/multiform/2_render_page_2.t -t/multiform/3_submit_page_2.t -t/multiform/4_complete_page_3.t -t/multiform/multiform.yml -t/multiform_hidden_name/0_render_page_1.t -t/multiform_hidden_name/1_submit_page_1.t -t/multiform_hidden_name/2_render_page_2.t -t/multiform_hidden_name/3_submit_page_2.t -t/multiform_hidden_name/4_complete_page_3.t -t/multiform_hidden_name/multiform.yml -t/multiple_select_fields.t -t/multiple_text_fields.t -t/nested/constraints/allornone.t -t/nested/constraints/callbackonce.t -t/nested/constraints/constraint_when.t -t/nested/constraints/constraint_when.yml -t/nested/constraints/dependon.t -t/nested/constraints/equal.t -t/nested/constraints/minmaxfields.t -t/nested/constraints/required.t -t/nested/element_name.t -t/nested/element_name.yml -t/nested/elements/block_repeatable_multi_named.t -t/nested/elements/block_repeatable_multi_named.yml -t/nested/elements/block_repeatable_multi_named_filter.t -t/nested/elements/block_repeatable_multi_named_filter.yml -t/nested/elements/block_without_name.t -t/nested/elements/block_without_name.yml -t/nested/elements/checkbox_force_default.t -t/nested/elements/checkbox_retain_default.t -t/nested/elements/combobox.t -t/nested/elements/date.t -t/nested/elements/file_post.t -t/nested/elements/multi.t -t/nested/elements/multi_named.t -t/nested/elements/radio.t -t/nested/elements/radio_force_default.t -t/nested/elements/radio_retain_default.t -t/nested/elements/radiogroup.t -t/nested/elements/radiogroup_force_default.t -t/nested/elements/radiogroup_retain_default.t -t/nested/elements/repeatable_repeatable.t -t/nested/elements/repeatable_repeatable.yml -t/nested/elements/select.t -t/nested/elements/select_force_default.t -t/nested/elements/select_retain_default.t -t/nested/elements/select_same_name.t -t/nested/elements/select_same_name.yml -t/nested/elements/text.t -t/nested/filters/regex.t -t/nested/form/render_processed_value.t -t/nested/form/render_processed_value.yml -t/nested/form_input.t -t/nested/illegal_name.t -t/nested/inflators/datetime_strptime.t -t/nested/internals/form_processed_params.t -t/nested/internals/hash_keys.t -t/nested/param.t -t/nested/params.t -t/nested/pre_expanded.t -t/nested/transformers/callback.t -t/nested/valid.t -t/nested/validators/callback.t -t/output_processors/indent.t -t/output_processors/indent_internals.t -t/output_processors/strip_whitespace.t -t/output_processors/strip_whitespace.yml -t/plugins/stashvalid.t -t/plugins/stashvalid.yml -t/plugins/stashvalid_on_field.t -t/plugins/stashvalid_on_field.yml -t/repeatable/clone.t -t/repeatable/clone.yml -t/repeatable/constraints/attach_errors_to.t -t/repeatable/constraints/attach_errors_to.yml -t/repeatable/constraints/equal.t -t/repeatable/constraints/equal.yml -t/repeatable/constraints/required.t -t/repeatable/constraints/required.yml -t/repeatable/constraints/required_not_increment_field_names.t -t/repeatable/constraints/required_not_increment_field_names.yml -t/repeatable/constraints/required_not_nested.t -t/repeatable/constraints/required_not_nested.yml -t/repeatable/constraints/when.t -t/repeatable/constraints/when.yml -t/repeatable/repeatable/constraints/repeatable_any.t -t/repeatable/repeatable/constraints/repeatable_any.yml +t/nested-elements-file_post.t +t/templates/errors_filename/errors t/templates/input -t/transformers/callback.t -t/utils/append_xml_attribute.t -t/utils/has_xml_attribute.t -t/utils/remove_xml_attribute.t -t/validators/callback.t -t/validators/validator.t diff -Nru libhtml-formfu-perl-0.09010/MANIFEST.SKIP libhtml-formfu-perl-1.00000/MANIFEST.SKIP --- libhtml-formfu-perl-0.09010/MANIFEST.SKIP 1970-01-01 00:00:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/MANIFEST.SKIP 2013-12-16 10:48:11.000000000 +0000 @@ -0,0 +1,11 @@ +# Don't know if it's getting kept +^lib\/HTML\/FormFu\/Filter\/Default\.pm$ + +# not ready yet +^t-aggregate\/multiform-misc\/file + +^benchmarks\b +^examples\/client-side-constraint\b +^xt\/ + +^\.perltidyrc$ diff -Nru libhtml-formfu-perl-0.09010/META.yml libhtml-formfu-perl-1.00000/META.yml --- libhtml-formfu-perl-0.09010/META.yml 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/META.yml 2013-12-16 10:48:11.000000000 +0000 @@ -1,18 +1,18 @@ --- abstract: 'HTML Form Creation, Rendering and Validation Framework' author: - - 'Carl Franks' + - 'Carl Franks ' build_requires: CGI: 3.37 - ExtUtils::MakeMaker: 6.59 POSIX: 0 + Test::Aggregate::Nested: 0.371 Test::Exception: 0 Test::More: 0.92 configure_requires: - ExtUtils::MakeMaker: 6.59 -distribution_type: module -dynamic_config: 1 -generated_by: 'Module::Install version 1.06' + ExtUtils::MakeMaker: 6.30 + File::ShareDir::Install: 0.03 +dynamic_config: 0 +generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.133380' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -21,19 +21,12 @@ no_index: directory: - examples - - inc - - share - - t - - xt requires: - Captcha::reCAPTCHA: 0.93 Carp: 0 Class::Accessor::Chained::Fast: 0 Class::MOP::Method: 0 Clone: 0.31 Config::Any: 0.18 - Crypt::CBC: 0 - Crypt::DES: 0 Cwd: 0 Data::Visitor: 0.26 Data::Visitor::Callback: 0 @@ -41,7 +34,7 @@ DateTime: 0.54 DateTime::Format::Builder: 0.7901 DateTime::Format::Natural: 0 - DateTime::Format::Strptime: 0 + DateTime::Format::Strptime: 1.2000 DateTime::Locale: 0.45 Email::Valid: 0 Encode: 0 @@ -65,7 +58,7 @@ Moose::Role: 0 Moose::Util: 0 MooseX::Aliases: 0 - MooseX::Attribute::Chained: 1.0.1 + MooseX::Attribute::Chained: v1.0.1 MooseX::SetOnce: 0 Number::Format: 0 Path::Class::File: 0 @@ -74,10 +67,8 @@ Scalar::Util: 0 Storable: 0 Task::Weaken: 0 - Template: 0 YAML::XS: 0.32 - perl: 5.8.1 + perl: 5.008001 resources: - license: http://dev.perl.org/licenses/ repository: git://github.com/fireartist/HTML-FormFu.git -version: 0.09010 +version: 1.00 diff -Nru libhtml-formfu-perl-0.09010/MYMETA.json libhtml-formfu-perl-1.00000/MYMETA.json --- libhtml-formfu-perl-0.09010/MYMETA.json 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/MYMETA.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -{ - "abstract" : "HTML Form Creation, Rendering and Validation Framework", - "author" : [ - "Carl Franks" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.120921", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "HTML-FormFu", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "CGI" : "3.37", - "ExtUtils::MakeMaker" : "6.59", - "POSIX" : "0", - "Test::Exception" : "0", - "Test::More" : "0.92" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Captcha::reCAPTCHA" : "0.93", - "Carp" : "0", - "Class::Accessor::Chained::Fast" : "0", - "Class::MOP::Method" : "0", - "Clone" : "0.31", - "Config::Any" : "0.18", - "Crypt::CBC" : "0", - "Crypt::DES" : "0", - "Cwd" : "0", - "Data::Visitor" : "0.26", - "Data::Visitor::Callback" : "0", - "Date::Calc" : "0", - "DateTime" : "0.54", - "DateTime::Format::Builder" : "0.7901", - "DateTime::Format::Natural" : "0", - "DateTime::Format::Strptime" : "0", - "DateTime::Locale" : "0.45", - "Email::Valid" : "0", - "Encode" : "0", - "Exporter" : "5.57", - "Fatal" : "0", - "File::Copy" : "0", - "File::Find" : "0", - "File::ShareDir" : "0", - "File::Spec" : "0", - "File::Temp" : "0", - "HTML::Scrubber" : "0", - "HTML::TokeParser::Simple" : "3.14", - "HTTP::Headers" : "1.64", - "Hash::Flatten" : "0", - "IO::File" : "0", - "List::MoreUtils" : "0", - "List::Util" : "0", - "Locale::Maketext" : "0", - "Module::Pluggable" : "0", - "Moose" : "1.00", - "Moose::Role" : "0", - "Moose::Util" : "0", - "MooseX::Aliases" : "0", - "MooseX::Attribute::Chained" : "v1.0.1", - "MooseX::SetOnce" : "0", - "Number::Format" : "0", - "Path::Class::File" : "0", - "Readonly" : "0", - "Regexp::Common" : "0", - "Scalar::Util" : "0", - "Storable" : "0", - "Task::Weaken" : "0", - "Template" : "0", - "YAML::XS" : "0.32", - "perl" : "5.008001" - } - } - }, - "release_status" : "stable", - "version" : "0.09010" -} diff -Nru libhtml-formfu-perl-0.09010/MYMETA.yml libhtml-formfu-perl-1.00000/MYMETA.yml --- libhtml-formfu-perl-0.09010/MYMETA.yml 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/MYMETA.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ ---- -abstract: 'HTML Form Creation, Rendering and Validation Framework' -author: - - 'Carl Franks' -build_requires: - CGI: 3.37 - ExtUtils::MakeMaker: 6.59 - POSIX: 0 - Test::Exception: 0 - Test::More: 0.92 -configure_requires: - ExtUtils::MakeMaker: 0 -dynamic_config: 0 -generated_by: 'ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.120921' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 -name: HTML-FormFu -no_index: - directory: - - t - - inc -requires: - Captcha::reCAPTCHA: 0.93 - Carp: 0 - Class::Accessor::Chained::Fast: 0 - Class::MOP::Method: 0 - Clone: 0.31 - Config::Any: 0.18 - Crypt::CBC: 0 - Crypt::DES: 0 - Cwd: 0 - Data::Visitor: 0.26 - Data::Visitor::Callback: 0 - Date::Calc: 0 - DateTime: 0.54 - DateTime::Format::Builder: 0.7901 - DateTime::Format::Natural: 0 - DateTime::Format::Strptime: 0 - DateTime::Locale: 0.45 - Email::Valid: 0 - Encode: 0 - Exporter: 5.57 - Fatal: 0 - File::Copy: 0 - File::Find: 0 - File::ShareDir: 0 - File::Spec: 0 - File::Temp: 0 - HTML::Scrubber: 0 - HTML::TokeParser::Simple: 3.14 - HTTP::Headers: 1.64 - Hash::Flatten: 0 - IO::File: 0 - List::MoreUtils: 0 - List::Util: 0 - Locale::Maketext: 0 - Module::Pluggable: 0 - Moose: 1.00 - Moose::Role: 0 - Moose::Util: 0 - MooseX::Aliases: 0 - MooseX::Attribute::Chained: v1.0.1 - MooseX::SetOnce: 0 - Number::Format: 0 - Path::Class::File: 0 - Readonly: 0 - Regexp::Common: 0 - Scalar::Util: 0 - Storable: 0 - Task::Weaken: 0 - Template: 0 - YAML::XS: 0.32 - perl: 5.008001 -version: 0.09010 diff -Nru libhtml-formfu-perl-0.09010/Makefile.PL libhtml-formfu-perl-1.00000/Makefile.PL --- libhtml-formfu-perl-0.09010/Makefile.PL 2012-09-18 20:37:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/Makefile.PL 2013-12-16 10:48:11.000000000 +0000 @@ -1,156 +1,162 @@ -use inc::Module::Install 1.00; -use File::Spec; -$|=1; -name 'HTML-FormFu'; -perl_version '5.008001'; +use strict; +use warnings; -# required for legacy check below -include_deps 'IO::Interactive' => '0.04'; +use 5.008001; -{ - # check for old non-Moose version - - eval { require HTML::FormFu::Element::_Field }; - - if ( !$@ ) { - my $path = $INC{'HTML/FormFu/Element/_Field.pm'}; - - my ( $volume, $dir, $file ) = File::Spec->splitpath( $path ); - - my @dirs = File::Spec->splitdir( $dir ); - # get rid of HTML/FormFu/Element - splice @dirs, -4; - - my $lib_dir = File::Spec->catdir( @dirs ); - my $lib_path = File::Spec->catpath( $volume, $lib_dir ); - - my $msg = < ); - - if ( $answer !~ /y/i ) { - die "Remove old HTML-FormFu files and retry\n"; - } - } - else { - die < README' ); +use File::ShareDir::Install; +install_share dist => "share"; + + +my %WriteMakefileArgs = ( + "ABSTRACT" => "HTML Form Creation, Rendering and Validation Framework", + "AUTHOR" => "Carl Franks ", + "BUILD_REQUIRES" => {}, + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.30", + "File::ShareDir::Install" => "0.03" + }, + "DISTNAME" => "HTML-FormFu", + "EXE_FILES" => [ + "bin/html_formfu_deploy.pl", + "bin/html_formfu_dumpconf.pl" + ], + "LICENSE" => "perl", + "NAME" => "HTML::FormFu", + "PREREQ_PM" => { + "Carp" => 0, + "Class::Accessor::Chained::Fast" => 0, + "Class::MOP::Method" => 0, + "Clone" => "0.31", + "Config::Any" => "0.18", + "Cwd" => 0, + "Data::Visitor" => "0.26", + "Data::Visitor::Callback" => 0, + "Date::Calc" => 0, + "DateTime" => "0.54", + "DateTime::Format::Builder" => "0.7901", + "DateTime::Format::Natural" => 0, + "DateTime::Format::Strptime" => "1.2000", + "DateTime::Locale" => "0.45", + "Email::Valid" => 0, + "Encode" => 0, + "Exporter" => "5.57", + "Fatal" => 0, + "File::Copy" => 0, + "File::Find" => 0, + "File::ShareDir" => 0, + "File::Spec" => 0, + "File::Temp" => 0, + "HTML::Scrubber" => 0, + "HTML::TokeParser::Simple" => "3.14", + "HTTP::Headers" => "1.64", + "Hash::Flatten" => 0, + "IO::File" => 0, + "List::MoreUtils" => 0, + "List::Util" => 0, + "Locale::Maketext" => 0, + "Module::Pluggable" => 0, + "Moose" => "1.00", + "Moose::Role" => 0, + "Moose::Util" => 0, + "MooseX::Aliases" => 0, + "MooseX::Attribute::Chained" => "v1.0.1", + "MooseX::SetOnce" => 0, + "Number::Format" => 0, + "Path::Class::File" => 0, + "Readonly" => 0, + "Regexp::Common" => 0, + "Scalar::Util" => 0, + "Storable" => 0, + "Task::Weaken" => 0, + "YAML::XS" => "0.32" + }, + "TEST_REQUIRES" => { + "CGI" => "3.37", + "POSIX" => 0, + "Test::Aggregate::Nested" => "0.371", + "Test::Exception" => 0, + "Test::More" => "0.92" + }, + "VERSION" => "1.00", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "CGI" => "3.37", + "Carp" => 0, + "Class::Accessor::Chained::Fast" => 0, + "Class::MOP::Method" => 0, + "Clone" => "0.31", + "Config::Any" => "0.18", + "Cwd" => 0, + "Data::Visitor" => "0.26", + "Data::Visitor::Callback" => 0, + "Date::Calc" => 0, + "DateTime" => "0.54", + "DateTime::Format::Builder" => "0.7901", + "DateTime::Format::Natural" => 0, + "DateTime::Format::Strptime" => "1.2000", + "DateTime::Locale" => "0.45", + "Email::Valid" => 0, + "Encode" => 0, + "Exporter" => "5.57", + "Fatal" => 0, + "File::Copy" => 0, + "File::Find" => 0, + "File::ShareDir" => 0, + "File::Spec" => 0, + "File::Temp" => 0, + "HTML::Scrubber" => 0, + "HTML::TokeParser::Simple" => "3.14", + "HTTP::Headers" => "1.64", + "Hash::Flatten" => 0, + "IO::File" => 0, + "List::MoreUtils" => 0, + "List::Util" => 0, + "Locale::Maketext" => 0, + "Module::Pluggable" => 0, + "Moose" => "1.00", + "Moose::Role" => 0, + "Moose::Util" => 0, + "MooseX::Aliases" => 0, + "MooseX::Attribute::Chained" => "v1.0.1", + "MooseX::SetOnce" => 0, + "Number::Format" => 0, + "POSIX" => 0, + "Path::Class::File" => 0, + "Readonly" => 0, + "Regexp::Common" => 0, + "Scalar::Util" => 0, + "Storable" => 0, + "Task::Weaken" => 0, + "Test::Aggregate::Nested" => "0.371", + "Test::Exception" => 0, + "Test::More" => "0.92", + "YAML::XS" => "0.32" +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } -all_from 'lib/HTML/FormFu.pm'; +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; -repository 'git://github.com/fireartist/HTML-FormFu.git'; +WriteMakefile(%WriteMakefileArgs); -# this is the lowest version of Exporter I can identify that exports import() -# it's bundled with perl 5.83 -# version 5.567 that ships with perl 5.82 is no good -requires 'Exporter' => '5.57'; - -requires 'Captcha::reCAPTCHA' => 0.93; -requires 'Carp'; -requires 'Class::Accessor::Chained::Fast'; -requires 'Class::MOP::Method'; -requires 'Clone' => '0.31'; -requires 'Config::Any' => '0.18'; # 0.10 - supports multi-doc config files - # 0.18 - prefers YAML::XS for YAML -requires 'Crypt::CBC'; -requires 'Crypt::DES'; -requires 'Cwd'; -requires 'Data::Visitor' => 0.26; # when it dumped Any::Moose for Moose -requires 'Data::Visitor::Callback'; -requires 'Date::Calc'; -requires 'DateTime' => '0.54'; # required for string overloading -requires 'DateTime::Format::Strptime' => '1.2000'; -requires 'DateTime::Format::Builder' => '0.7901'; # fixes memory leaks -requires 'DateTime::Format::Natural'; -requires 'DateTime::Format::Strptime'; -requires 'DateTime::Locale' => '0.45'; -requires 'Email::Valid'; -requires 'Encode'; -requires 'Fatal'; -requires 'File::Copy'; -requires 'File::Find'; -requires 'File::ShareDir'; -requires 'File::Spec'; -requires 'File::Temp'; -requires 'Hash::Flatten'; -requires 'HTML::Scrubber'; -requires 'HTML::TokeParser::Simple' => '3.14'; -requires 'HTTP::Headers' => '1.64'; -requires 'IO::File'; -requires 'List::MoreUtils'; -requires 'List::Util'; -requires 'Locale::Maketext'; -requires 'Module::Pluggable'; -requires 'Moose' => '1.00'; # Reasonable default until we get test results -requires 'Moose::Role'; -requires 'Moose::Util'; -requires 'MooseX::Aliases'; -requires 'MooseX::Attribute::Chained' => '1.0.1'; -requires 'MooseX::SetOnce'; -requires 'Number::Format'; -requires 'Readonly'; -requires 'Regexp::Common'; -requires 'Path::Class::File'; -requires 'Scalar::Util'; -requires 'Storable'; -requires 'Task::Weaken'; # to ensure Scalar::Util was built with weaken() -requires 'Template'; # form->start and ->end still require TT - # so does t/elements/render_method -requires 'YAML::XS' => '0.32'; - -test_requires 'CGI' => '3.37'; # for file POST tests -test_requires 'POSIX'; -test_requires 'Test::More' => '0.92'; -test_requires 'Test::Exception'; - -eval "require Test::Aggregate::Nested"; -$^O eq 'MSWin32' || $@ ? tests_recursive 't' : tests 't/*.t'; - -no_index directory => 'examples'; - -install_script('bin/html_formfu_deploy.pl'); -install_script('bin/html_formfu_dumpconf.pl'); -install_share(); - -# Developers on MS Windows must have Module::Install::PerlTar installed -# This fixes the problem of tar files having world-writable files, -# which causes PAUSE to choke -eval { - use_ptar() if author_context && $^O =~/(?:ms|cyg)win/i; -}; -if ($@) { - die "Module::Install::PerlTar must be installed when Makefile.PL is run by an author on MS Windows\n"; +{ +package +MY; +use File::ShareDir::Install qw(postamble); } -&WriteAll; + diff -Nru libhtml-formfu-perl-0.09010/README libhtml-formfu-perl-1.00000/README --- libhtml-formfu-perl-0.09010/README 2012-10-05 15:05:29.000000000 +0000 +++ libhtml-formfu-perl-1.00000/README 2013-12-16 10:48:11.000000000 +0000 @@ -1,1877 +1,13 @@ -NAME - HTML::FormFu - HTML Form Creation, Rendering and Validation Framework -SYNOPSIS - Note: These examples make use of HTML::FormFu::Model::DBIC. As of - "HTML::FormFu" v02.005, the HTML::FormFu::Model::DBIC module is not - bundled with "HTML::FormFu" and is available in a stand-alone - distribution. - use HTML::FormFu; +This archive contains the distribution HTML-FormFu, +version 1.00: - my $form = HTML::FormFu->new; + HTML Form Creation, Rendering and Validation Framework - $form->load_config_file('form.yml'); +This software is copyright (c) 2013 by Carl Franks. - $form->process( $cgi_query ); +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. - if ( $form->submitted_and_valid ) { - # do something with $form->params - } - else { - # display the form - $template->param( form => $form ); - } - - If you're using Catalyst, a more suitable example might be: - - package MyApp::Controller::User; - use strict; - use base 'Catalyst::Controller::HTML::FormFu'; - - sub user : Chained CaptureArgs(1) { - my ( $self, $c, $id ) = @_; - - my $rs = $c->model('Schema')->resultset('User'); - - $c->stash->{user} = $rs->find( $id ); - - return; - } - - sub edit : Chained('user') Args(0) FormConfig { - my ( $self, $c ) = @_; - - my $form = $c->stash->{form}; - my $user = $c->stash->{user}; - - if ( $form->submitted_and_valid ) { - - $form->model->update( $user ); - - $c->res->redirect( $c->uri_for( "/user/$id" ) ); - return; - } - - $form->model->default_values( $user ) - if ! $form->submitted; - - } - - Note: Because "process" is automatically called for you by the Catalyst - controller; if you make any modifications to the form within your action - method, such as adding or changing elements, adding constraints, etc; - you must call "process" again yourself before using - "submitted_and_valid", any of the methods listed under "SUBMITTED FORM - VALUES AND ERRORS" or "MODIFYING A SUBMITTED FORM", or rendering the - form. - - Here's an example of a config file to create a basic login form (all - examples here are YAML, but you can use any format supported by - Config::Any), you can also create forms directly in your perl code, - rather than using an external config file. - - --- - action: /login - indicator: submit - auto_fieldset: 1 - - elements: - - type: Text - name: user - constraints: - - Required - - - type: Password - name: pass - constraints: - - Required - - - type: Submit - name: submit - - constraints: - - SingleValue - -DESCRIPTION - HTML::FormFu is a HTML form framework which aims to be as easy as - possible to use for basic web forms, but with the power and flexibility - to do anything else you might want to do (as long as it involves forms). - - You can configure almost any part of formfu's behaviour and output. By - default formfu renders "XHTML 1.0 Strict" compliant markup, with as - little extra markup as possible, but with sufficient CSS class names to - allow for a wide-range of output styles to be generated by changing only - the CSS. - - All methods listed below (except "new") can either be called as a normal - method on your $form object, or as an option in your config file. - Examples will mainly be shown in YAML config syntax. - - This documentation follows the convention that method arguments - surrounded by square brackets "[]" are *optional*, and all other - arguments are required. - -BUILDING A FORM - new - Arguments: [\%options] - - Return Value: $form - - Create a new HTML::FormFu object. - - Any method which can be called on the HTML::FormFu object may instead be - passed as an argument to "new". - - my $form = HTML::FormFu->new({ - action => '/search', - method => 'GET', - auto_fieldset => 1, - }); - - load_config_file - Arguments: $filename - - Arguments: \@filenames - - Return Value: $form - - Accepts a filename or list of file names, whose filetypes should be of - any format recognized by Config::Any. - - The content of each config file is passed to "populate", and so are - added to the form. - - "load_config_file" may be called in a config file itself, so as to allow - common settings to be kept in a single config file which may be loaded - by any form. - - --- - load_config_file: - - file1 - - file2 - - YAML multiple documents within a single file. The document start marker - is a line containing 3 dashes. Multiple documents will be applied in - order, just as if multiple filenames had been given. - - In the following example, multiple documents are taken advantage of to - load another config file after the elements are added. (If this were a - single document, the "load_config_file" would be called before - "elements", regardless of its position in the file). - - --- - elements: - - name: one - - name: two - - --- - load_config_file: ext.yml - - Relative paths are resolved from the "config_file_path" directory if it - is set, otherwise from the current working directory. - - See "BEST PRACTICES" for advice on organising config files. - - config_callback - Arguments: \%options - - If defined, the arguments are used to create a Data::Visitor::Callback - object during "load_config_file" which may be used to pre-process the - config before it is sent to "populate". - - For example, the code below adds a callback to a form that will - dynamically alter any config value ending in ".yml" to end in ".yaml" - when you call "load_config_file": - - $form->config_callback({ - plain_value => sub { - my( $visitor, $data ) = @_; - s/\.yml/.yaml/; - } - }); - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - populate - Arguments: \%options - - Return Value: $form - - Each option key/value passed may be any HTML::FormFu method-name and - arguments. - - Provides a simple way to set multiple values, or add multiple elements - to a form with a single method-call. - - Attempts to call the method-names in a semi-intelligent order (see the - source of populate() in "HTML::FormFu::ObjectUtil" for details). - - default_values - Arguments: \%defaults - - Return Value: $form - - Set multiple field's default values from a single hash-ref. - - The hash-ref's keys correspond to a form field's name, and the value is - passed to the field's default method. - - This should be called after all fields have been added to the form, and - before "process" is called (otherwise, call "process" again before - rendering the form). - - config_file_path - Arguments: $directory_name - - "config_file_path" defines where configuration files will be searched - for, if an absolute path is not given to "load_config_file". - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - indicator - Arguments: $field_name - - Arguments: \&coderef - - If "indicator" is set to a fieldname, "submitted" will return true if a - value for that fieldname was submitted. - - If "indicator" is set to a code-ref, it will be called as a subroutine - with the two arguments $form and $query, and its return value will be - used as the return value for "submitted". - - If "indicator" is not set, "submitted" will return true if a value for - any known fieldname was submitted. - - auto_fieldset - Arguments: 1 - - Arguments: \%options - - Return Value: $fieldset - - This setting is suitable for most basic forms, and means you can - generally ignore adding fieldsets yourself. - - Calling "$form->auto_fieldset(1)" immediately adds a fieldset element to - the form. Thereafter, "$form->elements()" will add all elements (except - fieldsets) to that fieldset, rather than directly to the form. - - To be specific, the elements are added to the *last* fieldset on the - form, so if you add another fieldset, any further elements will be added - to that fieldset. - - Also, you may pass a hashref to auto_fieldset(), and this will be used - to set defaults for the first fieldset created. - - A few examples and their output, to demonstrate: - - 2 elements with no fieldset. - - --- - elements: - - type: Text - name: foo - - type: Text - name: bar - -
-
- -
-
- -
-
- - 2 elements with an "auto_fieldset". - - --- - auto_fieldset: 1 - elements: - - type: Text - name: foo - - type: Text - name: bar - -
-
-
- -
-
- -
-
-
- - The 3rd element is within a new fieldset - - --- - auto_fieldset: { id: fs } - elements: - - type: Text - name: foo - - type: Text - name: bar - - type: Fieldset - - type: Text - name: baz - -
-
-
- -
-
- -
-
-
-
- -
-
-
- - Because of this behaviour, if you want nested fieldsets you will have to - add each nested fieldset directly to its intended parent. - - my $parent = $form->get_element({ type => 'Fieldset' }); - - $parent->element('fieldset'); - - form_error_message - Arguments: $string - - Normally, input errors cause an error message to be displayed alongside - the appropriate form field. If you'd also like a general error message - to be displayed at the top of the form, you can set the message with - "form_error_message". - - To change the markup used to display the message, edit the - "form_error_message" template file. - - form_error_message_xml - Arguments: $string - - If you don't want your error message to be XML-escaped, use the - "form_error_message_xml" method instead. - - form_error_message_loc - Arguments: $localization_key - - For ease of use, if you'd like to use the provided localized error - message, set "form_error_message_loc" to the value "form_error_message". - - You can, of course, set "form_error_message_loc" to any key in your I18N - file. - - force_error_message - If true, forces the "form_error_message" to be displayed even if there - are no field errors. - - default_args - Arguments: \%defaults - - Set defaults which will be added to every element, constraint, etc. of - the listed type (or derived from the listed type) which is added to the - form. - - For example, to make every "Text" element automatically have a size of - 10, and make every "Strftime" deflator automatically get its strftime - set to "%d/%m/%Y": - - default_args: - elements: - Text: - size: 10 - deflators: - Strftime: - strftime: '%d/%m/%Y' - - To take it even further, you can even make all DateTime elements - automatically get an appropriate Strftime deflator and a DateTime - inflator: - - default_args: - elements: - DateTime: - deflators: - type: Strftime - strftime: '%d-%m-%Y' - inflators: - type: DateTime - parser: - strptime: '%d-%m-%Y' - - To have defaults only be applied to the specific named type, rather than - searching through derived types, append the type-name with "+". - - For example, to have the following attributes only be applied to a - "Block" element, rather than any element that inherits from "Block", - such as "Multi": - - default_args: - elements: - +Block: - attributes: - class: block - - Note: Unlike the proper methods which have aliases, for example - "elements" which is an alias for "element" - the keys given to - "default_args" must be of the plural form, e.g.: - - default_args: - elements: {} - deflators: {} - filters: {} - constraints: {} - inflators: {} - validators: {} - transformers: {} - output_processors: {} - - javascript - Arguments: [$javascript] - - If set, the contents will be rendered within a "script" tag, inside the - top of the form. - - stash - Arguments: [\%private_stash] - - Return Value: \%stash - - Provides a hash-ref in which you can store any data you might want to - associate with the form. - - --- - stash: - foo: value - bar: value - - elements - element - Arguments: $type - - Arguments: \%options - - Return Value: $element - - Arguments: \@arrayref_of_types_or_options - - Return Value: @elements - - Adds a new element to the form. See "CORE FORM FIELDS" in - HTML::FormFu::Element and "OTHER CORE ELEMENTS" in HTML::FormFu::Element - for a list of core elements. - - If you want to load an element from a namespace other than - "HTML::FormFu::Element::", you can use a fully qualified package-name by - prefixing it with "+". - - --- - elements: - - type: +MyApp::CustomElement - name: foo - - If a "type" is not provided in the "\%options", the default "Text" will - be used. - - "element" is an alias for "elements". - - deflators - deflator - Arguments: $type - - Arguments: \%options - - Return Value: $deflator - - Arguments: \@arrayref_of_types_or_options - - Return Value: @deflators - - A deflator may be associated with any form field, and allows you to - provide $field->default with a value which may be an object. - - If an object doesn't stringify to a suitable value for display, the - deflator can ensure that the form field receives a suitable string value - instead. - - See "CORE DEFLATORS" in HTML::FormFu::Deflator for a list of core - deflators. - - If a "name" attribute isn't provided, a new deflator is created for and - added to every field on the form. - - If you want to load a deflator in a namespace other than - "HTML::FormFu::Deflator::", you can use a fully qualified package-name - by prefixing it with "+". - - "deflator" is an alias for "deflators". - - insert_before - Arguments: $new_element, $existing_element - - Return Value: $new_element - - The 1st argument must be the element you want added, the 2nd argument - must be the existing element that the new element should be placed - before. - - my $new = $form->element(\%specs); - - my $position = $form->get_element({ type => $type, name => $name }); - - $form->insert_before( $new, $position ); - - In the first line of the above example, the $new element is initially - added to the end of the form. However, the "insert_before" method - reparents the $new element, so it will no longer be on the end of the - form. Because of this, if you try to copy an element from one form to - another, it will 'steal' the element, instead of copying it. In this - case, you must use "clone": - - my $new = $form1->get_element({ type => $type1, name => $name1 }) - ->clone; - - my $position = $form2->get_element({ type => $type2, name => $name2 }); - - $form2->insert_before( $new, $position ); - - insert_after - Arguments: $new_element, $existing_element - - Return Value: $new_element - - The 1st argument must be the element you want added, the 2nd argument - must be the existing element that the new element should be placed - after. - - my $new = $form->element(\%specs); - - my $position = $form->get_element({ type => $type, name => $name }); - - $form->insert_after( $new, $position ); - - In the first line of the above example, the $new element is initially - added to the end of the form. However, the "insert_after" method - reparents the $new element, so it will no longer be on the end of the - form. Because of this, if you try to copy an element from one form to - another, it will 'steal' the element, instead of copying it. In this - case, you must use "clone": - - my $new = $form1->get_element({ type => $type1, name => $name1 }) - ->clone; - - my $position = $form2->get_element({ type => $type2, name => $name2 }); - - $form2->insert_after( $new, $position ); - - remove_element - Arguments: $element - - Return Value: $element - - Removes the $element from the form or block's array of children. - - $form->remove_element( $element ); - - The orphaned element cannot be usefully used for anything until it is - re-attached to a form or block with "insert_before" or "insert_after". - -FORM LOGIC AND VALIDATION - HTML::FormFu provides several stages for what is traditionally described - as *validation*. These are: - - HTML::FormFu::Filter - HTML::FormFu::Constraint - HTML::FormFu::Inflator - HTML::FormFu::Validator - HTML::FormFu::Transformer - - The first stage, the filters, allow for cleanup of user-input, such as - encoding, or removing leading/trailing whitespace, or removing non-digit - characters from a creditcard number. - - All of the following stages allow for more complex processing, and each - of them have a mechanism to allow exceptions to be thrown, to represent - input errors. In each stage, all form fields must be processed without - error for the next stage to proceed. If there were any errors, the form - should be re-displayed to the user, to allow them to input correct - values. - - Constraints are intended for low-level validation of values, such as "is - this an integer?", "is this value within bounds?" or "is this a valid - email address?". - - Inflators are intended to allow a value to be turned into an appropriate - object. The resulting object will be passed to subsequent Validators and - Transformers, and will also be returned by "params" and "param". - - Validators are intended for higher-level validation, such as - business-logic and database constraints such as "is this username - unique?". Validators are only run if all Constraints and Inflators have - run without errors. It is expected that most Validators will be - application-specific, and so each will be implemented as a separate - class written by the HTML::FormFu user. - - filters - filter - Arguments: $type - - Arguments: \%options - - Return Value: $filter - - Arguments: \@arrayref_of_types_or_options - - Return Value: @filters - - If you provide a "name" or "names" value, the filter will be added to - just that named field. If you do not provide a "name" or "names" value, - the filter will be added to all fields already attached to the form. - - See "CORE FILTERS" in HTML::FormFu::Filter for a list of core filters. - - If you want to load a filter in a namespace other than - "HTML::FormFu::Filter::", you can use a fully qualified package-name by - prefixing it with "+". - - "filter" is an alias for "filters". - - constraints - constraint - Arguments: $type - - Arguments: \%options - - Return Value: $constraint - - Arguments: \@arrayref_of_types_or_options - - Return Value: @constraints - - See "CORE CONSTRAINTS" in HTML::FormFu::Constraint for a list of core - constraints. - - If a "name" attribute isn't provided, a new constraint is created for - and added to every field on the form. - - If you want to load a constraint in a namespace other than - "HTML::FormFu::Constraint::", you can use a fully qualified package-name - by prefixing it with "+". - - "constraint" is an alias for "constraints". - - inflators - inflator - Arguments: $type - - Arguments: \%options - - Return Value: $inflator - - Arguments: \@arrayref_of_types_or_options - - Return Value: @inflators - - See "CORE INFLATORS" in HTML::FormFu::Inflator for a list of core - inflators. - - If a "name" attribute isn't provided, a new inflator is created for and - added to every field on the form. - - If you want to load an inflator in a namespace other than - "HTML::FormFu::Inflator::", you can use a fully qualified package-name - by prefixing it with "+". - - "inflator" is an alias for "inflators". - - validators - validator - Arguments: $type - - Arguments: \%options - - Return Value: $validator - - Arguments: \@arrayref_of_types_or_options - - Return Value: @validators - - See "CORE VALIDATORS" in HTML::FormFu::Validator for a list of core - validators. - - If a "name" attribute isn't provided, a new validator is created for and - added to every field on the form. - - If you want to load a validator in a namespace other than - "HTML::FormFu::Validator::", you can use a fully qualified package-name - by prefixing it with "+". - - "validator" is an alias for "validators". - - transformers - transformer - Arguments: $type - - Arguments: \%options - - Return Value: $transformer - - Arguments: \@arrayref_of_types_or_options - - Return Value: @transformers - - See "CORE TRANSFORMERS" in HTML::FormFu::Transformer for a list of core - transformers. - - If a "name" attribute isn't provided, a new transformer is created for - and added to every field on the form. - - If you want to load a transformer in a namespace other than - "HTML::FormFu::Transformer::", you can use a fully qualified - package-name by prefixing it with "+". - - "transformer" is an alias for "transformers". - -CHANGING DEFAULT BEHAVIOUR - render_processed_value - The default behaviour when re-displaying a form after a submission, is - that the field contains the original unchanged user-submitted value. - - If "render_processed_value" is true, the field value will be the final - result after all Filters, Inflators and Transformers have been run. - Deflators will also be run on the value. - - If you set this on a field with an Inflator, but without an equivalent - Deflator, you should ensure that the Inflators stringify back to a - usable value, so as not to confuse / annoy the user. - - Default Value: false - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - force_errors - Force a constraint to fail, regardless of user input. - - If this is called at runtime, after the form has already been processed, - you must called "process" in HTML::FormFu again before redisplaying the - form to the user. - - Default Value: false - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element, an element or a single constraint. When - the value is read, if no value is defined it automatically traverses the - element's hierarchy of parents, through any block elements and up to the - form, searching for a defined value. - - params_ignore_underscore - If true, causes "params", "param" and "valid" to ignore any fields whose - name starts with an underscore "_". - - The field is still processed as normal, and errors will cause - "submitted_and_valid" to return false. - - Default Value: false - -FORM ATTRIBUTES - All attributes are added to the rendered form's start tag. - - attributes - attrs - Arguments: [%attributes] - - Arguments: [\%attributes] - - Return Value: $form - - Accepts either a list of key/value pairs, or a hash-ref. - - --- - attributes: - id: form - class: fancy_form - - As a special case, if no arguments are passed, the attributes hash-ref - is returned. This allows the following idioms. - - # set a value - $form->attributes->{id} = 'form'; - - # delete all attributes - %{ $form->attributes } = (); - - "attrs" is an alias for "attributes". - - attributes_xml - attrs_xml - Provides the same functionality as "attributes", but values won't be - XML-escaped. - - "attrs_xml" is an alias for "attributes_xml". - - add_attributes - add_attrs - Arguments: [%attributes] - - Arguments: [\%attributes] - - Return Value: $form - - Accepts either a list of key/value pairs, or a hash-ref. - - $form->add_attributes( $key => $value ); - $form->add_attributes( { $key => $value } ); - - All values are appended to existing values, with a preceding space - character. This is primarily to allow the easy addition of new names to - the class attribute. - - $form->attributes({ class => 'foo' }); - - $form->add_attributes({ class => 'bar' }); - - # class is now 'foo bar' - - "add_attrs" is an alias for "add_attributes". - - add_attributes_xml - add_attrs_xml - Provides the same functionality as "add_attributes", but values won't be - XML-escaped. - - "add_attrs_xml" is an alias for "add_attributes_xml". - - del_attributes - del_attrs - Arguments: [%attributes] - - Arguments: [\%attributes] - - Return Value: $form - - Accepts either a list of key/value pairs, or a hash-ref. - - $form->del_attributes( $key => $value ); - $form->del_attributes( { $key => $value } ); - - All values are removed from the attribute value. - - $form->attributes({ class => 'foo bar' }); - - $form->del_attributes({ class => 'bar' }); - - # class is now 'foo' - - "del_attrs" is an alias for "del_attributes". - - del_attributes_xml - del_attrs_xml - Provides the same functionality as "del_attributes", but values won't be - XML-escaped. - - "del_attrs_xml" is an alias for "del_attributes_xml". - - The following methods are shortcuts for accessing "attributes" keys. - - id - Arguments: [$id] - - Return Value: $id - - Get or set the form's DOM id. - - Default Value: none - - action - Arguments: [$uri] - - Return Value: $uri - - Get or set the action associated with the form. The default is no - action, which causes most browsers to submit to the current URI. - - Default Value: "" - - enctype - Arguments: [$enctype] - - Return Value: $enctype - - Get or set the encoding type of the form. Valid values are - "application/x-www-form-urlencoded" and "multipart/form-data". - - If the form contains a File element, the enctype is automatically set to - "multipart/form-data". - - method - Arguments: [$method] - - Return Value: $method - - Get or set the method used to submit the form. Can be set to either - "post" or "get". - - Default Value: "post" - -CSS CLASSES - auto_id - Arguments: [$string] - - If set, then each form field will be given an auto-generated id - attribute, if it doesn't have one already. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name, %r will be - replaced by $block->repeatable_count. - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - auto_label - Arguments: [$string] - - If set, then each form field will be given an auto-generated label, if - it doesn't have one already. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name. - - The generated string will be passed to "localize" to create the label. - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - auto_error_class - Arguments: [$string] - - If set, then each form error will be given an auto-generated class-name. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name, %t will be - replaced by lc( $field->type ), %s will be replaced by $error->stage. - - Default Value: 'error_%s_%t' - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - auto_error_message - Arguments: [$string] - - If set, then each form field will be given an auto-generated message, if - it doesn't have one already. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name, %t will be - replaced by lc( $field->type ), %s will be replaced by $error->stage. - - The generated string will be passed to "localize" to create the message. - - For example, a Required constraint will return the string - "form_constraint_required". Under the default localization behaviour, - the appropriate message for "form_constraint_required" will be used from - the default I18N package. - - Default Value: 'form_%s_%t' - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - auto_constraint_class - Arguments: [$string] - - If set, then each form field will be given an auto-generated class-name - for each associated constraint. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name, %t will be - replaced by lc( $field->type ). - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - auto_inflator_class - Arguments: [$string] - - If set, then each form field will be given an auto-generated class-name - for each associated inflator. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name, %t will be - replaced by lc( $field->type ). - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - auto_validator_class - Arguments: [$string] - - If set, then each form field will be given an auto-generated class-name - for each associated validator. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name, %t will be - replaced by lc( $field->type ). - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - auto_transformer_class - Arguments: [$string] - - If set, then each form field will be given an auto-generated class-name - for each associated validator. - - The following character substitution will be performed: %f will be - replaced by $form->id, %n will be replaced by $field->name, %t will be - replaced by lc( $field->type ). - - Default Value: not defined - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - form_error_message_class - Arguments: [$string] - - Default Value: 'form_error_message' - - Class attribute for the error message displayed at the top of the form. - - See "form_error_message" - -LOCALIZATION - languages - Arguments: [\@languages] - - A list of languages which will be passed to the localization object. - - Default Value: ['en'] - - localize_class - Arguments: [$class_name] - - Classname to be used for the default localization object. - - Default Value: 'HTML::FormFu::I18N' - - localize - loc - Arguments: [$key, @arguments] - - Compatible with the "maketext" method in Locale::Maketext. - - locale - Arguments: $locale - - Currently only used by HTML::FormFu::Deflator::FormatNumber and - HTML::FormFu::Filter::FormatNumber. - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - -PROCESSING A FORM - query - Arguments: [$query_object] - - Arguments: \%params - - Provide a CGI compatible query object or a hash-ref of submitted - names/values. Alternatively, the query object can be passed directly to - the "process" object. - - query_type - Arguments: [$query_type] - - Set which module is being used to provide the "query". - - The Catalyst::Controller::HTML::FormFu automatically sets this to - "Catalyst". - - Valid values are "CGI", "Catalyst" and "CGI::Simple". - - Default Value: 'CGI' - - process - Arguments: [$query_object] - - Arguments: [\%params] - - Process the provided query object or input values. "process" must be - called before calling any of the methods listed under "SUBMITTED FORM - VALUES AND ERRORS" and "MODIFYING A SUBMITTED FORM". - - "process" must also be called at least once before printing the form or - calling "render" or "render_data". - - Note to users of Catalyst::Controller::HTML::FormFu: Because "process" - is automatically called for you by the Catalyst controller; if you make - any modifications to the form within your action method, such as adding - or changing elements, adding constraints, etc; you must call "process" - again yourself before using "submitted_and_valid", any of the methods - listed under "SUBMITTED FORM VALUES AND ERRORS" or "MODIFYING A - SUBMITTED FORM", or rendering the form. - -SUBMITTED FORM VALUES AND ERRORS - submitted - Returns true if the form has been submitted. See "indicator" for details - on how this is computed. - - submitted_and_valid - Shorthand for "$form->submitted && !$form->has_errors" - - params - Return Value: \%params - - Returns a hash-ref of all valid input for which there were no errors. - - param_value - Arguments: $field_name - - A more reliable, recommended version of "param". Guaranteed to always - return a single value, regardless of whether it's called in list context - or not. If multiple values were submitted, this only returns the first - value. If the value is invalid or the form was not submitted, it returns - "undef". This makes it suitable for use in list context, where a single - value is required. - - $db->update({ - name => $form->param_value('name'), - address => $form->param_value('address), - }); - - param_array - Arguments: $field_name - - Guaranteed to always return an array-ref of values, regardless of - context and regardless of whether multiple values were submitted or not. - If the value is invalid or the form was not submitted, it returns an - empty array-ref. - - param_list - Arguments: $field_name - - Guaranteed to always return a list of values, regardless of context. If - the value is invalid or the form was not submitted, it returns an empty - list. - - param - Arguments: [$field_name] - - Return Value: $input_value - - Return Value: @valid_names - - No longer recommended for use, as its behaviour is hard to predict. Use - "param_value", "param_array" or "param_list" instead. - - A (readonly) method similar to that of CGI's. - - If a field name is given, in list-context returns any valid values - submitted for that field, and in scalar-context returns only the first - of any valid values submitted for that field. - - If no argument is given, returns a list of all valid input field names - without errors. - - Passing more than 1 argument is a fatal error. - - valid - Arguments: [$field_name] - - Return Value: @valid_names - - Return Value: $bool - - If a field name if given, returns "true" if that field had no errors and - "false" if there were errors. - - If no argument is given, returns a list of all valid input field names - without errors. - - has_errors - Arguments: [$field_name] - - Return Value: @names - - Return Value: $bool - - If a field name if given, returns "true" if that field had errors and - "false" if there were no errors. - - If no argument is given, returns a list of all input field names with - errors. - - get_errors - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@errors - - Returns an array-ref of exception objects from all fields in the form. - - Accepts both "name", "type" and "stage" arguments to narrow the returned - results. - - $form->get_errors({ - name => 'foo', - type => 'Regex', - stage => 'constraint' - }); - - get_error - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $error - - Accepts the same arguments as "get_errors", but only returns the first - error found. - -MODEL / DATABASE INTERACTION - See HTML::FormFu::Model for further details and available models. - - default_model - Arguments: $model_name - - Default Value: 'DBIC' - - model - Arguments: [$model_name] - - Return Value: $model - - model_config - Arguments: \%config - -MODIFYING A SUBMITTED FORM - add_valid - Arguments: $name, $value - - Return Value: $value - - The provided value replaces any current value for the named field. This - value will be returned in subsequent calls to "params" and "param" and - the named field will be included in calculations for "valid". - - clear_errors - Deletes all errors from a submitted form. - -RENDERING A FORM - render - Return Value: $string - - You must call "process" once after building the form, and before calling - "render". - - start - Return Value: $string - - Returns the form start tag, and any output of "form_error_message" and - "javascript". - - Implicitly uses the "tt" "render_method". - - end - Return Value: $string - - Returns the form end tag. - - Implicitly uses the "tt" "render_method". - - hidden_fields - Return Value: $string - - Returns all hidden form fields. - -PLUGIN SYSTEM - "HTML::FormFu" provides a plugin-system that allows plugins to be easily - added to a form or element, to change the default behaviour or output. - - See HTML::FormFu::Plugin for details. - -ADVANCED CUSTOMISATION - By default, formfu renders "XHTML 1.0 Strict" compliant markup, with as - little extra markup as possible, but with sufficient CSS class names to - allow for a wide-range of output styles to be generated by changing only - the CSS. - - If you wish to customise the markup, you'll need to tell HTML::FormFu to - use an external rendering engine, such as Template Toolkit or - Template::Alloy. See "render_method" and "tt_module" for details. - - Even if you set HTML::FormFu to use Template::Toolkit to render, the - forms, HTML::FormFu can still be used in conjunction with whichever - other templating system you prefer to use for your own page layouts, - whether it's HTML::Template: "", Petal: "
" or Template::Magic: "". - - render_method - Default Value: "string" - - Can be set to "tt" to generate the form with external template files. - - To customise the markup, you'll need a copy of the template files, local - to your application. See "Installing the TT templates" in - HTML::FormFu::Manual::Cookbook for further details. - - You can customise the markup for a single element by setting that - element's "render_method" to "tt", while the rest of the form uses the - default "string" render-method. Note though, that if you try setting the - form or a Block's "render_method" to "tt", and then set a child - element's "render_method" to "string", that setting will be ignored, and - the child elements will still use the "tt" render-method. - - --- - elements: - - name: foo - render_method: tt - filename: custom_field - - - name: bar - - # in this example, 'foo' will use a custom template, - # while bar will use the default 'string' rendering method - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - filename - Change the template filename used for the form. - - Default Value: "form" - - tt_args - Arguments: [\%constructor_arguments] - - Accepts a hash-ref of arguments passed to "render_method", which is - called internally by "render". - - Within tt_args, the keys "RELATIVE" and "RECURSION" are overridden to - always be true, as these are a basic requirement for the Template - engine. - - The system directory containing HTML::FormFu's template files is always - added to the end of "INCLUDE_PATH", so that the core template files will - be found. You only need to set this yourself if you have your own copy - of the template files for customisation purposes. - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - add_tt_args - Arguments: [\%constructor_arguments] - - Ensures that the hash-ref argument is merged with any existing hash-ref - value of "tt_args". - - tt_module - Default Value: Template - - The module used when "render_method" is set to "tt". Should provide an - interface compatible with Template. - - This method is a special 'inherited accessor', which means it can be set - on the form, a block element or a single element. When the value is - read, if no value is defined it automatically traverses the element's - hierarchy of parents, through any block elements and up to the form, - searching for a defined value. - - render_data - Usually called implicitly by "render". Returns the data structure that - would normally be passed onto the "string" or "tt" render-methods. - - As with "render", you must call "process" once after building the form, - and before calling "render_data". - - render_data_non_recursive - Like "render_data", but doesn't include the data for any child-elements. - -INTROSPECTION - get_fields - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@elements - - Returns all fields in the form (specifically, all elements which have a - true "is_field" in HTML::FormFu::Element value). - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_fields({ - name => 'foo', - type => 'Radio', - }); - - Accepts also an Regexp to search for results. - - $form->get_elements({ - name => qr/oo/, - }); - - get_field - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $element - - Accepts the same arguments as "get_fields", but only returns the first - field found. - - get_elements - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@elements - - Returns all top-level elements in the form (not recursive). See - "get_all_elements" for a recursive version. - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_elements({ - name => 'foo', - type => 'Radio', - }); - - Accepts also an Regexp to search for results. - - $form->get_elements({ - name => qr/oo/, - }); - - get_element - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $element - - Accepts the same arguments as "get_elements", but only returns the first - element found. - - See "get_all_element" for a recursive version. - - get_all_elements - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@elements - - Returns all elements in the form recursively. - - Optionally accepts both "name" and "type" arguments to narrow the - returned results. - - # return all Text elements - - $form->get_all_elements({ - type => 'Text', - }); - - Accepts also an Regexp to search for results. - - $form->get_elements({ - name => qr/oo/, - }); - - See "get_elements" for a non-recursive version. - - get_all_element - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $element - - Accepts the same arguments as "get_all_elements", but only returns the - first element found. - - # return the first Text field found, regardless of whether it's - # within a fieldset or not - - $form->get_all_element({ - type => 'Text', - }); - - Accepts also an Regexp to search for results. - - $form->get_elements({ - name => qr/oo/, - }); - - See "get_all_elements" for a non-recursive version. - - get_deflators - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@deflators - - Returns all top-level deflators from all fields. - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_deflators({ - name => 'foo', - type => 'Strftime', - }); - - get_deflator - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $element - - Accepts the same arguments as "get_deflators", but only returns the - first deflator found. - - get_filters - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@filters - - Returns all top-level filters from all fields. - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_filters({ - name => 'foo', - type => 'LowerCase', - }); - - get_filter - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $filter - - Accepts the same arguments as "get_filters", but only returns the first - filter found. - - get_constraints - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@constraints - - Returns all constraints from all fields. - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_constraints({ - name => 'foo', - type => 'Equal', - }); - - get_constraint - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $constraint - - Accepts the same arguments as "get_constraints", but only returns the - first constraint found. - - get_inflators - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@inflators - - Returns all inflators from all fields. - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_inflators({ - name => 'foo', - type => 'DateTime', - }); - - get_inflator - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $inflator - - Accepts the same arguments as "get_inflators", but only returns the - first inflator found. - - get_validators - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@validators - - Returns all validators from all fields. - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_validators({ - name => 'foo', - type => 'Callback', - }); - - get_validator - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $validator - - Accepts the same arguments as "get_validators", but only returns the - first validator found. - - get_transformers - Arguments: [%options] - - Arguments: [\%options] - - Return Value: \@transformers - - Returns all transformers from all fields. - - Accepts both "name" and "type" arguments to narrow the returned results. - - $form->get_transformers({ - name => 'foo', - type => 'Callback', - }); - - get_transformer - Arguments: [%options] - - Arguments: [\%options] - - Return Value: $transformer - - Accepts the same arguments as "get_transformers", but only returns the - first transformer found. - - clone - Returns a deep clone of the <$form> object. - - Because of scoping issues, code references (such as in Callback - constraints) are copied instead of cloned. - -DEPRECATION POLICY - We try our best to not make incompatible changes, but if they're - required we'll make every effort possible to provide backwards - compatibility for several release-cycles, issuing a warnings about the - changes, before removing the legacy features. - -REMOVED METHODS - See also "REMOVED METHODS" in HTML::FormFu::Element. - - element_defaults - Has been removed; see "default_args" instead. - - model_class - Has been removed; use "default_model" instead. - - defaults_from_model - Has been removed; use "default_values" in HTML::FormFu::Model instead. - - save_to_model - Has been removed; use "update" in HTML::FormFu::Model instead. - -BEST PRACTICES - It is advisable to keep application-wide (or global) settings in a - single config file, which should be loaded by each form. - - See "load_config_file". - -COOKBOOK - HTML::FormFu::Manual::Cookbook - - UNICODE - HTML::FormFu::Manual::Unicode - -EXAMPLES - vertically-aligned CSS - The distribution directory "examples/vertically-aligned" contains a form - with example CSS for a "vertically aligned" theme. - - This can be viewed by opening the file "vertically-aligned.html" in a - web-browser. - - If you wish to experiment with making changes, the form is defined in - file "vertically-aligned.yml", and the HTML file can be updated with any - changes by running the following command (while in the distribution root - directory). - - perl examples/vertically-aligned/vertically-aligned.pl - - This uses the Template Toolkit file "vertically-aligned.tt", and the CSS - is defined in files "vertically-aligned.css" and - "vertically-aligned-ie.css". - -SUPPORT - Website: - - - - Project Page: - - - - Mailing list: - - - - Mailing list archives: - - - - IRC: - - "irc.perl.org", channel "#formfu" - - The HTML::Widget archives - between January and - May 2007 also contain discussion regarding HTML::FormFu. - -BUGS - Please submit bugs / feature requests to - (preferred) or - . - -PATCHES - To help patches be applied quickly, please send them to the mailing - list; attached, rather than inline; against subversion, rather than a - cpan version (run "svn diff > patchfile"); mention which svn version - it's against. Mailing list messages are limited to 256KB, so gzip the - patch if necessary. - -GITHUB REPOSITORY - This module's sourcecode is maintained in a git repository at - - - The project page is - -SEE ALSO - HTML::FormFu::Imager - - Catalyst::Controller::HTML::FormFu - - HTML::FormFu::Model::DBIC - -AUTHORS - Carl Franks - -CONTRIBUTORS - Brian Cassidy - - Ozum Eldogan - - Ruben Fonseca - - Ronald Kimball - - Daisuke Maki - - Andreas Marienborg - - Mario Minati - - Steve Nolte - - Moritz Onken - - Doug Orleans - - Matthias Dietrich - - Based on the original source code of HTML::Widget, by Sebastian Riedel, - "sri@oook.de". - -LICENSE - This library is free software, you can redistribute it and/or modify it - under the same terms as Perl itself. - -PERL GAME - Play the MMO written in perl: ! diff -Nru libhtml-formfu-perl-0.09010/bin/html_formfu_dumpconf.pl libhtml-formfu-perl-1.00000/bin/html_formfu_dumpconf.pl --- libhtml-formfu-perl-0.09010/bin/html_formfu_dumpconf.pl 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/bin/html_formfu_dumpconf.pl 2013-12-16 10:48:11.000000000 +0000 @@ -75,3 +75,23 @@ Uses Config::Any and Data::Dumper to display how your config file is parsed. HELP } + +__END__ + +=head1 NAME + +html_formfu_dumpconf.pl - dump configuration files + +=head1 SYNOPSIS + + html_formfu_dumpconf.pl F + + html_formfu_dumpconf.pl F + +=head1 DESCRIPTION + +Uses Config::Any and Data::Dumper to display how your config file is parsed. + +=head1 SEE ALSO + +Config::Any, Data::Dumper diff -Nru libhtml-formfu-perl-0.09010/debian/changelog libhtml-formfu-perl-1.00000/debian/changelog --- libhtml-formfu-perl-0.09010/debian/changelog 2013-08-20 21:48:50.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/changelog 2013-12-24 12:45:11.000000000 +0000 @@ -1,3 +1,23 @@ +libhtml-formfu-perl (1.00000-1) unstable; urgency=medium + + [ Salvatore Bonaccorso ] + * Add option to mangle upstream version in debian/watch file + + [ Florian Schlichting ] + * Import Upstream version 1.00000 + * Delete copyright paragraphs for modules in inc/* (dropped upstream) + * Update upstream copyright statement and year + * Drop pod-for-html_formfu_dumpconf.diff, spelling.patch, + whatis-entries.diff (applied upstream); do-not-check-for-old-version.diff + (obsolete); refresh how-to-report-bugs.diff (offset) + * New pod2man-errors.patch + * Remove (almost) empty man page for + HTML::FormFu::Role::FormBlockAndFieldMethods + * Update (build-)dependencies + * Declare compliance with Debian Policy 3.9.5 + + -- Florian Schlichting Tue, 24 Dec 2013 01:35:05 +0100 + libhtml-formfu-perl (0.09010-1) unstable; urgency=low [ gregor herrmann ] diff -Nru libhtml-formfu-perl-0.09010/debian/control libhtml-formfu-perl-1.00000/debian/control --- libhtml-formfu-perl-0.09010/debian/control 2013-08-20 21:48:50.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/control 2013-12-24 12:43:47.000000000 +0000 @@ -8,15 +8,13 @@ Florian Schlichting Section: perl Priority: optional -Build-Depends: debhelper (>= 8) +Build-Depends: debhelper (>= 8), + libfile-sharedir-install-perl Build-Depends-Indep: perl, - libcaptcha-recaptcha-perl, libcgi-simple-perl, libclass-accessor-chained-perl, libclone-perl, libconfig-any-perl, - libcrypt-cbc-perl, - libcrypt-des-perl, libdata-visitor-perl, libdate-calc-perl, libdatetime-format-builder-perl, @@ -41,12 +39,11 @@ libreadonly-perl, libregexp-common-perl, libtask-weaken-perl, + libtest-aggregate-perl (>= 0.371), libtest-exception-perl, - libtest-aggregate-perl, - libtemplate-perl, libwww-perl, libyaml-libyaml-perl -Standards-Version: 3.9.4 +Standards-Version: 3.9.5 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libhtml-formfu-perl.git Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libhtml-formfu-perl.git Homepage: http://www.formfu.org/ @@ -56,12 +53,9 @@ Depends: ${perl:Depends}, ${misc:Depends}, perl, - libcaptcha-recaptcha-perl, libclass-accessor-chained-perl, libclone-perl, libconfig-any-perl, - libcrypt-cbc-perl, - libcrypt-des-perl, libdata-visitor-perl, libdate-calc-perl, libdatetime-format-builder-perl, @@ -85,7 +79,6 @@ libreadonly-perl, libregexp-common-perl, libtask-weaken-perl, - libtemplate-perl, libwww-perl, libyaml-libyaml-perl Suggests: libcgi-simple-perl, diff -Nru libhtml-formfu-perl-0.09010/debian/copyright libhtml-formfu-perl-1.00000/debian/copyright --- libhtml-formfu-perl-0.09010/debian/copyright 2013-08-20 21:41:59.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/copyright 2013-12-23 23:56:13.000000000 +0000 @@ -4,7 +4,7 @@ Source: https://metacpan.org/release/HTML-FormFu/ Files: * -Copyright: © 2007-2008, Carl Franks +Copyright: © 2013, Carl Franks License: Artistic or GPL-1+ Files: @@ -24,22 +24,6 @@ Copyright: © 2008 Moritz Onken License: Artistic or GPL-1+ -Files: inc/IO/Interactive.pm -Copyright: 2005, Damian Conway -License: Artistic or GPL-1+ -Comment: Copyright information taken from libio-interactive-perl - -Files: inc/Module/* -Copyright: © 2002-2012, Brian Ingerson - © 2002-2012, Audrey Tang - © 2002-2012, Adam Kennedy -License: Artistic or GPL-1+ - -Files: inc/version.pm -Copyright: 2004-2009, John Peacock -License: Artistic or GPL-1+ -Comment: Copyright information taken from libversion-perl - Files: debian/* Copyright: © 2008-2011, Ansgar Burchardt © 2010, Salvatore Bonaccorso @@ -62,4 +46,3 @@ . On Debian systems, the complete text of version 1 of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-1'. - diff -Nru libhtml-formfu-perl-0.09010/debian/patches/do-not-check-for-old-version.diff libhtml-formfu-perl-1.00000/debian/patches/do-not-check-for-old-version.diff --- libhtml-formfu-perl-0.09010/debian/patches/do-not-check-for-old-version.diff 2012-02-15 20:38:35.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/patches/do-not-check-for-old-version.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -From: Ansgar Burchardt -Date: Sat, 23 Apr 2011 13:54:55 +0200 -Origin: vendor -Forwarded: not-needed -Subject: do not check for old versions when building the package ---- a/Makefile.PL -+++ b/Makefile.PL -@@ -8,6 +8,7 @@ - # required for legacy check below - include_deps 'IO::Interactive' => '0.04'; - -+if (0) - { - # check for old non-Moose version - diff -Nru libhtml-formfu-perl-0.09010/debian/patches/how-to-report-bugs.diff libhtml-formfu-perl-1.00000/debian/patches/how-to-report-bugs.diff --- libhtml-formfu-perl-0.09010/debian/patches/how-to-report-bugs.diff 2013-08-20 21:25:19.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/patches/how-to-report-bugs.diff 2013-12-24 00:01:39.000000000 +0000 @@ -4,7 +4,7 @@ --- a/lib/HTML/FormFu.pm +++ b/lib/HTML/FormFu.pm -@@ -3157,9 +3157,13 @@ +@@ -3181,9 +3181,13 @@ =head1 BUGS diff -Nru libhtml-formfu-perl-0.09010/debian/patches/pod-for-html_formfu_dumpconf.diff libhtml-formfu-perl-1.00000/debian/patches/pod-for-html_formfu_dumpconf.diff --- libhtml-formfu-perl-0.09010/debian/patches/pod-for-html_formfu_dumpconf.diff 2013-08-20 21:40:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/patches/pod-for-html_formfu_dumpconf.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -Author: Ansgar Burchardt -Subject: Adds pod to the dumpconf helper script -Forwarded: https://github.com/fireartist/HTML-FormFu/pull/18/commits - ---- a/bin/html_formfu_dumpconf.pl -+++ b/bin/html_formfu_dumpconf.pl -@@ -75,3 +75,24 @@ - Uses Config::Any and Data::Dumper to display how your config file is parsed. - HELP - } -+ -+__END__ -+ -+=head1 NAME -+ -+html_formfu_dumpconf.pl - dump configuration files -+ -+=head1 SYNOPSIS -+ -+ html_formfu_dumpconf.pl F -+ -+ html_formfu_dumpconf.pl F -+ -+=head1 DESCRIPTION -+ -+Uses Config::Any and Data::Dumper to display how your config file is parsed. -+ -+=head1 SEE ALSO -+ -+Config::Any, Data::Dumper -+ diff -Nru libhtml-formfu-perl-0.09010/debian/patches/pod2man-errors.patch libhtml-formfu-perl-1.00000/debian/patches/pod2man-errors.patch --- libhtml-formfu-perl-0.09010/debian/patches/pod2man-errors.patch 1970-01-01 00:00:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/patches/pod2man-errors.patch 2013-12-24 12:45:11.000000000 +0000 @@ -0,0 +1,42 @@ +Description: fix POD errors "alternative text ... contains non-escaped | or /" +Author: Florian Schlichting +Forwarded: https://github.com/fireartist/HTML-FormFu/pull/19/files + +--- a/lib/HTML/FormFu/Element/ComboBox.pm ++++ b/lib/HTML/FormFu/Element/ComboBox.pm +@@ -373,11 +373,11 @@ + + Although this element inherits from L, its + behaviour for the methods +-L, +-L, +-L, +-L and +-L is more like that of ++Lfilters|HTML::FormFu/filters>, ++Lconstraints|HTML::FormFu/constraints>, ++Linflators|HTML::FormFu/inflators>, ++Lvalidators|HTML::FormFu/validators> and ++Ltransformers|HTML::FormFu/transformers> is more like that of + a L, meaning all processors are + added directly to the date element, not to its child elements. + +--- a/lib/HTML/FormFu/Element/Date.pm ++++ b/lib/HTML/FormFu/Element/Date.pm +@@ -770,11 +770,11 @@ + + Although this element inherits from L, its + behaviour for the methods +-L, +-L, +-L, +-L and +-L is more like that of ++Lfilters|HTML::FormFu/filters>, ++Lconstraints|HTML::FormFu/constraints>, ++Linflators|HTML::FormFu/inflators>, ++Lvalidators|HTML::FormFu/validators> and ++Ltransformers|HTML::FormFu/transformers> is more like that of + a L, meaning all processors are + added directly to the date element, not to its select-menu child elements. + diff -Nru libhtml-formfu-perl-0.09010/debian/patches/series libhtml-formfu-perl-1.00000/debian/patches/series --- libhtml-formfu-perl-0.09010/debian/patches/series 2011-12-13 21:57:22.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/patches/series 2013-12-24 12:45:11.000000000 +0000 @@ -1,5 +1,2 @@ -whatis-entries.diff how-to-report-bugs.diff -pod-for-html_formfu_dumpconf.diff -do-not-check-for-old-version.diff -spelling.patch +pod2man-errors.patch diff -Nru libhtml-formfu-perl-0.09010/debian/patches/spelling.patch libhtml-formfu-perl-1.00000/debian/patches/spelling.patch --- libhtml-formfu-perl-0.09010/debian/patches/spelling.patch 2013-08-20 21:40:40.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/patches/spelling.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -Description: spelling mistake according to lintian -Origin: vendor -Forwarded: https://github.com/fireartist/HTML-FormFu/pull/18/commits -Author: gregor herrmann -Last-Update: 2011-08-27 - ---- a/lib/HTML/FormFu/Manual/Cookbook.pod -+++ b/lib/HTML/FormFu/Manual/Cookbook.pod -@@ -457,7 +457,7 @@ - sub auto : Private { - my ($self, $c) = @_; - -- # We want to utilize alot of the magic that the controller -+ # We want to utilize a lot of the magic that the controller - # gives us, so therefore we call $self->form like this - - my $login_form = $self->form; diff -Nru libhtml-formfu-perl-0.09010/debian/patches/whatis-entries.diff libhtml-formfu-perl-1.00000/debian/patches/whatis-entries.diff --- libhtml-formfu-perl-0.09010/debian/patches/whatis-entries.diff 2013-08-20 21:40:20.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/patches/whatis-entries.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -Author: Ansgar Burchardt -Subject: Adds a description to those files missing one -Forwarded: https://github.com/fireartist/HTML-FormFu/pull/18/commits - ---- a/lib/HTML/FormFu/Attribute.pm -+++ b/lib/HTML/FormFu/Attribute.pm -@@ -431,7 +431,7 @@ - - =head1 NAME - --HTML::FormFu::Attribute -+HTML::FormFu::Attribute - accessor class - - =head1 SYNOPSIS - ---- a/lib/HTML/FormFu/QueryType/CGI.pm -+++ b/lib/HTML/FormFu/QueryType/CGI.pm -@@ -58,7 +58,7 @@ - - =head1 NAME - --HTML::FormFu::QueryType::CGI -+HTML::FormFu::QueryType::CGI - uploaded file - - =head1 METHODS - ---- a/lib/HTML/FormFu/QueryType/CGI/Simple.pm -+++ b/lib/HTML/FormFu/QueryType/CGI/Simple.pm -@@ -51,7 +51,7 @@ - - =head1 NAME - --HTML::FormFu::QueryType::CGI::Simple -+HTML::FormFu::QueryType::CGI::Simple - uploaded file - - =head1 METHODS - ---- a/lib/HTML/FormFu/QueryType/Catalyst.pm -+++ b/lib/HTML/FormFu/QueryType/Catalyst.pm -@@ -71,7 +71,7 @@ - - =head1 NAME - --HTML::FormFu::QueryType::Catalyst -+HTML::FormFu::QueryType::Catalyst - uploaded file - - =head1 DESCRIPTION - ---- a/lib/HTML/FormFu/UploadParam.pm -+++ b/lib/HTML/FormFu/UploadParam.pm -@@ -89,7 +89,7 @@ - - =head1 NAME - --HTML::FormFu::UploadParam -+HTML::FormFu::UploadParam - accessor class - - =head1 DESCRIPTION - ---- a/lib/HTML/FormFu/MultiForm.pm -+++ b/lib/HTML/FormFu/MultiForm.pm -@@ -589,7 +589,7 @@ - - =head1 NAME - --HTML::FormFu::MultiForm -+HTML::FormFu::MultiForm - Handle multi-page/stage forms - - =head1 AUTHOR - diff -Nru libhtml-formfu-perl-0.09010/debian/rules libhtml-formfu-perl-1.00000/debian/rules --- libhtml-formfu-perl-0.09010/debian/rules 2011-12-13 21:57:22.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/rules 2013-12-24 12:45:11.000000000 +0000 @@ -10,6 +10,4 @@ dh_auto_install # Remove almost empty man pages - rm -f $(MANDIR)/HTML::FormFu::Element::_MultiElement.3pm \ - $(MANDIR)/HTML::FormFu::Element::_MultiSelect.3pm \ - $(MANDIR)/HTML::FormFu::Element::_MultiText.3pm + rm -f $(MANDIR)/HTML::FormFu::Role::FormBlockAndFieldMethods.3pm diff -Nru libhtml-formfu-perl-0.09010/debian/watch libhtml-formfu-perl-1.00000/debian/watch --- libhtml-formfu-perl-0.09010/debian/watch 2013-01-27 17:50:44.000000000 +0000 +++ libhtml-formfu-perl-1.00000/debian/watch 2013-12-23 23:29:54.000000000 +0000 @@ -1,4 +1,3 @@ -# format version number, currently 3; this line is compulsory! version=3 -# URL to the package page followed by a regex to search +opts="uversionmangle=s/(\.\d\d)$/${1}000/; s/(\.\d\d\d)$/${1}00/; s/(\.\d\d\d\d)$/${1}0/;" \ https://metacpan.org/release/HTML-FormFu/ .*/HTML-FormFu-v?(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$ diff -Nru libhtml-formfu-perl-0.09010/dist.ini libhtml-formfu-perl-1.00000/dist.ini --- libhtml-formfu-perl-0.09010/dist.ini 1970-01-01 00:00:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/dist.ini 2013-12-16 10:48:11.000000000 +0000 @@ -0,0 +1,86 @@ +name = HTML-FormFu +author = Carl Franks +license = Perl_5 +copyright_holder = Carl Franks +copyright_year = 2013 + +version = 1.00 + +[Prereqs] +perl = 5.008001 + + ; this is the lowest version of Exporter I can identify that exports import() + ; it's bundled with perl 5.83 + ; version 5.567 that ships with perl 5.82 is no good +Exporter = 5.57 + +Carp = 0 +Class::Accessor::Chained::Fast = 0 +Class::MOP::Method = 0 +Clone = 0.31 +Config::Any = 0.18 ; 0.10 - supports multi-doc config files + ; 0.18 - prefers YAML::XS for YAML +Cwd = 0 +Data::Visitor = 0.26 ; when it dumped Any::Moose for Moose +Data::Visitor::Callback = 0 +Date::Calc = 0 +DateTime = 0.54 ; required for string overloading +DateTime::Format::Strptime = 1.2000 +DateTime::Format::Builder = 0.7901 ; fixes memory leaks +DateTime::Format::Natural = 0 +DateTime::Locale = 0.45 +Email::Valid = 0 +Encode = 0 +Fatal = 0 +File::Copy = 0 +File::Find = 0 +File::ShareDir = 0 +File::Spec = 0 +File::Temp = 0 +Hash::Flatten = 0 +HTML::Scrubber = 0 +HTML::TokeParser::Simple = 3.14 +HTTP::Headers = 1.64 +IO::File = 0 +List::MoreUtils = 0 +List::Util = 0 +Locale::Maketext = 0 +Module::Pluggable = 0 +Moose = 1.00 ; Reasonable default until we get test results +Moose::Role = 0 +Moose::Util = 0 +MooseX::Aliases = 0 +MooseX::Attribute::Chained = 1.0.1 +MooseX::SetOnce = 0 +Number::Format = 0 +Readonly = 0 +Regexp::Common = 0 +Path::Class::File = 0 +Scalar::Util = 0 +Storable = 0 +Task::Weaken = 0 ; to ensure Scalar::Util was built with weaken() +YAML::XS = 0.32 + +[Prereqs / TestRequires] + +CGI = 3.37 ; for file POST tests +POSIX = 0 +Test::More = 0.92 +Test::Aggregate::Nested = 0.371 +Test::Exception = 0 + +[MetaNoIndex] +directory = examples + +[Test::Perl::Critic] +[PodCoverageTests] +[PodSyntaxTests] + +[PkgVersion] + +[NextRelease] +format = %v %{yyyy-MM-dd}d + +[Repository] + +[@Basic] diff -Nru libhtml-formfu-perl-0.09010/examples/vertically-aligned-css/vertically-aligned.css libhtml-formfu-perl-1.00000/examples/vertically-aligned-css/vertically-aligned.css --- libhtml-formfu-perl-0.09010/examples/vertically-aligned-css/vertically-aligned.css 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/examples/vertically-aligned-css/vertically-aligned.css 2013-12-16 10:48:12.000000000 +0000 @@ -9,6 +9,7 @@ fieldset .file, fieldset .image, fieldset .multi, +fieldset .number, fieldset .password, fieldset .radio, fieldset .recaptcha, @@ -45,6 +46,7 @@ fieldset .file.label, fieldset .image.label, fieldset .multi.label, +fieldset .number.label, fieldset .password.label, fieldset .radio.label, fieldset .recaptcha.label, @@ -92,6 +94,7 @@ fieldset .file label, fieldset .image label, fieldset .multi label, +fieldset .number label, fieldset .password label, fieldset .radio label, fieldset .radiogroup label, diff -Nru libhtml-formfu-perl-0.09010/inc/IO/Interactive.pm libhtml-formfu-perl-1.00000/inc/IO/Interactive.pm --- libhtml-formfu-perl-0.09010/inc/IO/Interactive.pm 2012-10-05 15:05:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/IO/Interactive.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ -#line 1 -package IO::Interactive; - -use version; $VERSION = qv('0.0.6'); - -use warnings; -use strict; -use Carp; -use Scalar::Util qw( openhandle ); - -sub is_interactive { - my ($out_handle) = (@_, select); # Default to default output handle - - # Not interactive if output is not to terminal... - return 0 if not -t $out_handle; - - # If *ARGV is opened, we're interactive if... - if (openhandle *ARGV) { - # ...it's currently opened to the magic '-' file - return -t *STDIN if defined $ARGV && $ARGV eq '-'; - - # ...it's at end-of-file and the next file is the magic '-' file - return @ARGV>0 && $ARGV[0] eq '-' && -t *STDIN if eof *ARGV; - - # ...it's directly attached to the terminal - return -t *ARGV; - } - - # If *ARGV isn't opened, it will be interactive if *STDIN is attached - # to a terminal. - else { - return -t *STDIN; - } -} - -local (*DEV_NULL, *DEV_NULL2); -my $dev_null; -BEGIN { - pipe *DEV_NULL, *DEV_NULL2 - or die "Internal error: can't create null filehandle"; - $dev_null = \*DEV_NULL; -} - -sub interactive { - my ($out_handle) = (@_, \*STDOUT); # Default to STDOUT - return &is_interactive ? $out_handle : $dev_null; -} - -sub _input_pending_on { - my ($fh) = @_; - my $read_bits = ""; - my $bit = fileno($fh); - return if $bit < 0; - vec($read_bits, fileno($fh), 1) = 1; - select $read_bits, undef, undef, 0.1; - return $read_bits; -} - -sub busy (&) { - my ($block_ref) = @_; - - # Non-interactive busy-ness is easy...just do it - if (!is_interactive()) { - $block_ref->(); - open my $fh, '<', \""; - return $fh; - } - - # Otherwise fork off an interceptor process... - my ($read, $write); - pipe $read, $write; - my $child = fork; - - # Within that interceptor process... - if (!$child) { - # Prepare to send back any intercepted input... - use IO::Handle; - close $read; - $write->autoflush(1); - - # Intercept that input... - while (1) { - if (_input_pending_on(\*ARGV)) { - # Read it... - my $res = ; - - # Send it back to the parent... - print {$write} $res; - - # Admonish them for not waiting... - print {*STDERR} "That input was ignored. ", - "Please don't press any keys yet.\n"; - } - } - exit; - } - - # Meanwhile, back in the parent... - close $write; - - # Temporarily close the input... - local *ARGV; - open *ARGV, '<', \""; - - # Do the job... - $block_ref->(); - - # Take down the interceptor... - kill 9, $child; - wait; - - # Return whatever the interceptor caught... - return $read; -} - -use Carp; - -sub import { - my ($package) = shift; - my $caller = caller; - - # Export each sub if it's requested... - for my $request ( @_ ) { - no strict 'refs'; - my $impl = *{$package.'::'.$request}{CODE}; - croak "Unknown subroutine ($request()) requested" - if !$impl || $request =~ m/\A _/xms; - *{$caller.'::'.$request} = $impl; - } -} - - -1; # Magic true value required at end of module -__END__ - -#line 293 diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Base.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Base.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Base.pm 2012-10-05 15:05:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Base.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -#line 1 -package Module::Install::Base; - -use strict 'vars'; -use vars qw{$VERSION}; -BEGIN { - $VERSION = '1.06'; -} - -# Suspend handler for "redefined" warnings -BEGIN { - my $w = $SIG{__WARN__}; - $SIG{__WARN__} = sub { $w }; -} - -#line 42 - -sub new { - my $class = shift; - unless ( defined &{"${class}::call"} ) { - *{"${class}::call"} = sub { shift->_top->call(@_) }; - } - unless ( defined &{"${class}::load"} ) { - *{"${class}::load"} = sub { shift->_top->load(@_) }; - } - bless { @_ }, $class; -} - -#line 61 - -sub AUTOLOAD { - local $@; - my $func = eval { shift->_top->autoload } or return; - goto &$func; -} - -#line 75 - -sub _top { - $_[0]->{_top}; -} - -#line 90 - -sub admin { - $_[0]->_top->{admin} - or - Module::Install::Base::FakeAdmin->new; -} - -#line 106 - -sub is_admin { - ! $_[0]->admin->isa('Module::Install::Base::FakeAdmin'); -} - -sub DESTROY {} - -package Module::Install::Base::FakeAdmin; - -use vars qw{$VERSION}; -BEGIN { - $VERSION = $Module::Install::Base::VERSION; -} - -my $fake; - -sub new { - $fake ||= bless(\@_, $_[0]); -} - -sub AUTOLOAD {} - -sub DESTROY {} - -# Restore warning handler -BEGIN { - $SIG{__WARN__} = $SIG{__WARN__}->(); -} - -1; - -#line 159 diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Can.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Can.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Can.pm 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Can.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,154 +0,0 @@ -#line 1 -package Module::Install::Can; - -use strict; -use Config (); -use ExtUtils::MakeMaker (); -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -# check if we can load some module -### Upgrade this to not have to load the module if possible -sub can_use { - my ($self, $mod, $ver) = @_; - $mod =~ s{::|\\}{/}g; - $mod .= '.pm' unless $mod =~ /\.pm$/i; - - my $pkg = $mod; - $pkg =~ s{/}{::}g; - $pkg =~ s{\.pm$}{}i; - - local $@; - eval { require $mod; $pkg->VERSION($ver || 0); 1 }; -} - -# Check if we can run some command -sub can_run { - my ($self, $cmd) = @_; - - my $_cmd = $cmd; - return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd)); - - for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') { - next if $dir eq ''; - require File::Spec; - my $abs = File::Spec->catfile($dir, $cmd); - return $abs if (-x $abs or $abs = MM->maybe_command($abs)); - } - - return; -} - -# Can our C compiler environment build XS files -sub can_xs { - my $self = shift; - - # Ensure we have the CBuilder module - $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 ); - - # Do we have the configure_requires checker? - local $@; - eval "require ExtUtils::CBuilder;"; - if ( $@ ) { - # They don't obey configure_requires, so it is - # someone old and delicate. Try to avoid hurting - # them by falling back to an older simpler test. - return $self->can_cc(); - } - - # Do we have a working C compiler - my $builder = ExtUtils::CBuilder->new( - quiet => 1, - ); - unless ( $builder->have_compiler ) { - # No working C compiler - return 0; - } - - # Write a C file representative of what XS becomes - require File::Temp; - my ( $FH, $tmpfile ) = File::Temp::tempfile( - "compilexs-XXXXX", - SUFFIX => '.c', - ); - binmode $FH; - print $FH <<'END_C'; -#include "EXTERN.h" -#include "perl.h" -#include "XSUB.h" - -int main(int argc, char **argv) { - return 0; -} - -int boot_sanexs() { - return 1; -} - -END_C - close $FH; - - # Can the C compiler access the same headers XS does - my @libs = (); - my $object = undef; - eval { - local $^W = 0; - $object = $builder->compile( - source => $tmpfile, - ); - @libs = $builder->link( - objects => $object, - module_name => 'sanexs', - ); - }; - my $result = $@ ? 0 : 1; - - # Clean up all the build files - foreach ( $tmpfile, $object, @libs ) { - next unless defined $_; - 1 while unlink; - } - - return $result; -} - -# Can we locate a (the) C compiler -sub can_cc { - my $self = shift; - my @chunks = split(/ /, $Config::Config{cc}) or return; - - # $Config{cc} may contain args; try to find out the program part - while (@chunks) { - return $self->can_run("@chunks") || (pop(@chunks), next); - } - - return; -} - -# Fix Cygwin bug on maybe_command(); -if ( $^O eq 'cygwin' ) { - require ExtUtils::MM_Cygwin; - require ExtUtils::MM_Win32; - if ( ! defined(&ExtUtils::MM_Cygwin::maybe_command) ) { - *ExtUtils::MM_Cygwin::maybe_command = sub { - my ($self, $file) = @_; - if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) { - ExtUtils::MM_Win32->maybe_command($file); - } else { - ExtUtils::MM_Unix->maybe_command($file); - } - } - } -} - -1; - -__END__ - -#line 236 diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Fetch.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Fetch.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Fetch.pm 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Fetch.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -#line 1 -package Module::Install::Fetch; - -use strict; -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -sub get_file { - my ($self, %args) = @_; - my ($scheme, $host, $path, $file) = - $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; - - if ( $scheme eq 'http' and ! eval { require LWP::Simple; 1 } ) { - $args{url} = $args{ftp_url} - or (warn("LWP support unavailable!\n"), return); - ($scheme, $host, $path, $file) = - $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; - } - - $|++; - print "Fetching '$file' from $host... "; - - unless (eval { require Socket; Socket::inet_aton($host) }) { - warn "'$host' resolve failed!\n"; - return; - } - - return unless $scheme eq 'ftp' or $scheme eq 'http'; - - require Cwd; - my $dir = Cwd::getcwd(); - chdir $args{local_dir} or return if exists $args{local_dir}; - - if (eval { require LWP::Simple; 1 }) { - LWP::Simple::mirror($args{url}, $file); - } - elsif (eval { require Net::FTP; 1 }) { eval { - # use Net::FTP to get past firewall - my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600); - $ftp->login("anonymous", 'anonymous@example.com'); - $ftp->cwd($path); - $ftp->binary; - $ftp->get($file) or (warn("$!\n"), return); - $ftp->quit; - } } - elsif (my $ftp = $self->can_run('ftp')) { eval { - # no Net::FTP, fallback to ftp.exe - require FileHandle; - my $fh = FileHandle->new; - - local $SIG{CHLD} = 'IGNORE'; - unless ($fh->open("|$ftp -n")) { - warn "Couldn't open ftp: $!\n"; - chdir $dir; return; - } - - my @dialog = split(/\n/, <<"END_FTP"); -open $host -user anonymous anonymous\@example.com -cd $path -binary -get $file $file -quit -END_FTP - foreach (@dialog) { $fh->print("$_\n") } - $fh->close; - } } - else { - warn "No working 'ftp' program available!\n"; - chdir $dir; return; - } - - unless (-f $file) { - warn "Fetching failed: $@\n"; - chdir $dir; return; - } - - return if exists $args{size} and -s $file != $args{size}; - system($args{run}) if exists $args{run}; - unlink($file) if $args{remove}; - - print(((!exists $args{check_for} or -e $args{check_for}) - ? "done!" : "failed! ($!)"), "\n"); - chdir $dir; return !$?; -} - -1; diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Include.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Include.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Include.pm 2012-10-05 15:05:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Include.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -#line 1 -package Module::Install::Include; - -use strict; -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -sub include { - shift()->admin->include(@_); -} - -sub include_deps { - shift()->admin->include_deps(@_); -} - -sub auto_include { - shift()->admin->auto_include(@_); -} - -sub auto_include_deps { - shift()->admin->auto_include_deps(@_); -} - -sub auto_include_dependent_dists { - shift()->admin->auto_include_dependent_dists(@_); -} - -1; diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Makefile.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Makefile.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Makefile.pm 2012-10-05 15:05:29.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Makefile.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,418 +0,0 @@ -#line 1 -package Module::Install::Makefile; - -use strict 'vars'; -use ExtUtils::MakeMaker (); -use Module::Install::Base (); -use Fcntl qw/:flock :seek/; - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -sub Makefile { $_[0] } - -my %seen = (); - -sub prompt { - shift; - - # Infinite loop protection - my @c = caller(); - if ( ++$seen{"$c[1]|$c[2]|$_[0]"} > 3 ) { - die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])"; - } - - # In automated testing or non-interactive session, always use defaults - if ( ($ENV{AUTOMATED_TESTING} or -! -t STDIN) and ! $ENV{PERL_MM_USE_DEFAULT} ) { - local $ENV{PERL_MM_USE_DEFAULT} = 1; - goto &ExtUtils::MakeMaker::prompt; - } else { - goto &ExtUtils::MakeMaker::prompt; - } -} - -# Store a cleaned up version of the MakeMaker version, -# since we need to behave differently in a variety of -# ways based on the MM version. -my $makemaker = eval $ExtUtils::MakeMaker::VERSION; - -# If we are passed a param, do a "newer than" comparison. -# Otherwise, just return the MakeMaker version. -sub makemaker { - ( @_ < 2 or $makemaker >= eval($_[1]) ) ? $makemaker : 0 -} - -# Ripped from ExtUtils::MakeMaker 6.56, and slightly modified -# as we only need to know here whether the attribute is an array -# or a hash or something else (which may or may not be appendable). -my %makemaker_argtype = ( - C => 'ARRAY', - CONFIG => 'ARRAY', -# CONFIGURE => 'CODE', # ignore - DIR => 'ARRAY', - DL_FUNCS => 'HASH', - DL_VARS => 'ARRAY', - EXCLUDE_EXT => 'ARRAY', - EXE_FILES => 'ARRAY', - FUNCLIST => 'ARRAY', - H => 'ARRAY', - IMPORTS => 'HASH', - INCLUDE_EXT => 'ARRAY', - LIBS => 'ARRAY', # ignore '' - MAN1PODS => 'HASH', - MAN3PODS => 'HASH', - META_ADD => 'HASH', - META_MERGE => 'HASH', - PL_FILES => 'HASH', - PM => 'HASH', - PMLIBDIRS => 'ARRAY', - PMLIBPARENTDIRS => 'ARRAY', - PREREQ_PM => 'HASH', - CONFIGURE_REQUIRES => 'HASH', - SKIP => 'ARRAY', - TYPEMAPS => 'ARRAY', - XS => 'HASH', -# VERSION => ['version',''], # ignore -# _KEEP_AFTER_FLUSH => '', - - clean => 'HASH', - depend => 'HASH', - dist => 'HASH', - dynamic_lib=> 'HASH', - linkext => 'HASH', - macro => 'HASH', - postamble => 'HASH', - realclean => 'HASH', - test => 'HASH', - tool_autosplit => 'HASH', - - # special cases where you can use makemaker_append - CCFLAGS => 'APPENDABLE', - DEFINE => 'APPENDABLE', - INC => 'APPENDABLE', - LDDLFLAGS => 'APPENDABLE', - LDFROM => 'APPENDABLE', -); - -sub makemaker_args { - my ($self, %new_args) = @_; - my $args = ( $self->{makemaker_args} ||= {} ); - foreach my $key (keys %new_args) { - if ($makemaker_argtype{$key}) { - if ($makemaker_argtype{$key} eq 'ARRAY') { - $args->{$key} = [] unless defined $args->{$key}; - unless (ref $args->{$key} eq 'ARRAY') { - $args->{$key} = [$args->{$key}] - } - push @{$args->{$key}}, - ref $new_args{$key} eq 'ARRAY' - ? @{$new_args{$key}} - : $new_args{$key}; - } - elsif ($makemaker_argtype{$key} eq 'HASH') { - $args->{$key} = {} unless defined $args->{$key}; - foreach my $skey (keys %{ $new_args{$key} }) { - $args->{$key}{$skey} = $new_args{$key}{$skey}; - } - } - elsif ($makemaker_argtype{$key} eq 'APPENDABLE') { - $self->makemaker_append($key => $new_args{$key}); - } - } - else { - if (defined $args->{$key}) { - warn qq{MakeMaker attribute "$key" is overriden; use "makemaker_append" to append values\n}; - } - $args->{$key} = $new_args{$key}; - } - } - return $args; -} - -# For mm args that take multiple space-seperated args, -# append an argument to the current list. -sub makemaker_append { - my $self = shift; - my $name = shift; - my $args = $self->makemaker_args; - $args->{$name} = defined $args->{$name} - ? join( ' ', $args->{$name}, @_ ) - : join( ' ', @_ ); -} - -sub build_subdirs { - my $self = shift; - my $subdirs = $self->makemaker_args->{DIR} ||= []; - for my $subdir (@_) { - push @$subdirs, $subdir; - } -} - -sub clean_files { - my $self = shift; - my $clean = $self->makemaker_args->{clean} ||= {}; - %$clean = ( - %$clean, - FILES => join ' ', grep { length $_ } ($clean->{FILES} || (), @_), - ); -} - -sub realclean_files { - my $self = shift; - my $realclean = $self->makemaker_args->{realclean} ||= {}; - %$realclean = ( - %$realclean, - FILES => join ' ', grep { length $_ } ($realclean->{FILES} || (), @_), - ); -} - -sub libs { - my $self = shift; - my $libs = ref $_[0] ? shift : [ shift ]; - $self->makemaker_args( LIBS => $libs ); -} - -sub inc { - my $self = shift; - $self->makemaker_args( INC => shift ); -} - -sub _wanted_t { -} - -sub tests_recursive { - my $self = shift; - my $dir = shift || 't'; - unless ( -d $dir ) { - die "tests_recursive dir '$dir' does not exist"; - } - my %tests = map { $_ => 1 } split / /, ($self->tests || ''); - require File::Find; - File::Find::find( - sub { /\.t$/ and -f $_ and $tests{"$File::Find::dir/*.t"} = 1 }, - $dir - ); - $self->tests( join ' ', sort keys %tests ); -} - -sub write { - my $self = shift; - die "&Makefile->write() takes no arguments\n" if @_; - - # Check the current Perl version - my $perl_version = $self->perl_version; - if ( $perl_version ) { - eval "use $perl_version; 1" - or die "ERROR: perl: Version $] is installed, " - . "but we need version >= $perl_version"; - } - - # Make sure we have a new enough MakeMaker - require ExtUtils::MakeMaker; - - if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) { - # This previous attempted to inherit the version of - # ExtUtils::MakeMaker in use by the module author, but this - # was found to be untenable as some authors build releases - # using future dev versions of EU:MM that nobody else has. - # Instead, #toolchain suggests we use 6.59 which is the most - # stable version on CPAN at time of writing and is, to quote - # ribasushi, "not terminally fucked, > and tested enough". - # TODO: We will now need to maintain this over time to push - # the version up as new versions are released. - $self->build_requires( 'ExtUtils::MakeMaker' => 6.59 ); - $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 ); - } else { - # Allow legacy-compatibility with 5.005 by depending on the - # most recent EU:MM that supported 5.005. - $self->build_requires( 'ExtUtils::MakeMaker' => 6.36 ); - $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 ); - } - - # Generate the MakeMaker params - my $args = $self->makemaker_args; - $args->{DISTNAME} = $self->name; - $args->{NAME} = $self->module_name || $self->name; - $args->{NAME} =~ s/-/::/g; - $args->{VERSION} = $self->version or die <<'EOT'; -ERROR: Can't determine distribution version. Please specify it -explicitly via 'version' in Makefile.PL, or set a valid $VERSION -in a module, and provide its file path via 'version_from' (or -'all_from' if you prefer) in Makefile.PL. -EOT - - if ( $self->tests ) { - my @tests = split ' ', $self->tests; - my %seen; - $args->{test} = { - TESTS => (join ' ', grep {!$seen{$_}++} @tests), - }; - } elsif ( $Module::Install::ExtraTests::use_extratests ) { - # Module::Install::ExtraTests doesn't set $self->tests and does its own tests via harness. - # So, just ignore our xt tests here. - } elsif ( -d 'xt' and ($Module::Install::AUTHOR or $ENV{RELEASE_TESTING}) ) { - $args->{test} = { - TESTS => join( ' ', map { "$_/*.t" } grep { -d $_ } qw{ t xt } ), - }; - } - if ( $] >= 5.005 ) { - $args->{ABSTRACT} = $self->abstract; - $args->{AUTHOR} = join ', ', @{$self->author || []}; - } - if ( $self->makemaker(6.10) ) { - $args->{NO_META} = 1; - #$args->{NO_MYMETA} = 1; - } - if ( $self->makemaker(6.17) and $self->sign ) { - $args->{SIGN} = 1; - } - unless ( $self->is_admin ) { - delete $args->{SIGN}; - } - if ( $self->makemaker(6.31) and $self->license ) { - $args->{LICENSE} = $self->license; - } - - my $prereq = ($args->{PREREQ_PM} ||= {}); - %$prereq = ( %$prereq, - map { @$_ } # flatten [module => version] - map { @$_ } - grep $_, - ($self->requires) - ); - - # Remove any reference to perl, PREREQ_PM doesn't support it - delete $args->{PREREQ_PM}->{perl}; - - # Merge both kinds of requires into BUILD_REQUIRES - my $build_prereq = ($args->{BUILD_REQUIRES} ||= {}); - %$build_prereq = ( %$build_prereq, - map { @$_ } # flatten [module => version] - map { @$_ } - grep $_, - ($self->configure_requires, $self->build_requires) - ); - - # Remove any reference to perl, BUILD_REQUIRES doesn't support it - delete $args->{BUILD_REQUIRES}->{perl}; - - # Delete bundled dists from prereq_pm, add it to Makefile DIR - my $subdirs = ($args->{DIR} || []); - if ($self->bundles) { - my %processed; - foreach my $bundle (@{ $self->bundles }) { - my ($mod_name, $dist_dir) = @$bundle; - delete $prereq->{$mod_name}; - $dist_dir = File::Basename::basename($dist_dir); # dir for building this module - if (not exists $processed{$dist_dir}) { - if (-d $dist_dir) { - # List as sub-directory to be processed by make - push @$subdirs, $dist_dir; - } - # Else do nothing: the module is already present on the system - $processed{$dist_dir} = undef; - } - } - } - - unless ( $self->makemaker('6.55_03') ) { - %$prereq = (%$prereq,%$build_prereq); - delete $args->{BUILD_REQUIRES}; - } - - if ( my $perl_version = $self->perl_version ) { - eval "use $perl_version; 1" - or die "ERROR: perl: Version $] is installed, " - . "but we need version >= $perl_version"; - - if ( $self->makemaker(6.48) ) { - $args->{MIN_PERL_VERSION} = $perl_version; - } - } - - if ($self->installdirs) { - warn qq{old INSTALLDIRS (probably set by makemaker_args) is overriden by installdirs\n} if $args->{INSTALLDIRS}; - $args->{INSTALLDIRS} = $self->installdirs; - } - - my %args = map { - ( $_ => $args->{$_} ) } grep {defined($args->{$_} ) - } keys %$args; - - my $user_preop = delete $args{dist}->{PREOP}; - if ( my $preop = $self->admin->preop($user_preop) ) { - foreach my $key ( keys %$preop ) { - $args{dist}->{$key} = $preop->{$key}; - } - } - - my $mm = ExtUtils::MakeMaker::WriteMakefile(%args); - $self->fix_up_makefile($mm->{FIRST_MAKEFILE} || 'Makefile'); -} - -sub fix_up_makefile { - my $self = shift; - my $makefile_name = shift; - my $top_class = ref($self->_top) || ''; - my $top_version = $self->_top->VERSION || ''; - - my $preamble = $self->preamble - ? "# Preamble by $top_class $top_version\n" - . $self->preamble - : ''; - my $postamble = "# Postamble by $top_class $top_version\n" - . ($self->postamble || ''); - - local *MAKEFILE; - open MAKEFILE, "+< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!"; - eval { flock MAKEFILE, LOCK_EX }; - my $makefile = do { local $/; }; - - $makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /; - $makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g; - $makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g; - $makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m; - $makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m; - - # Module::Install will never be used to build the Core Perl - # Sometimes PERL_LIB and PERL_ARCHLIB get written anyway, which breaks - # PREFIX/PERL5LIB, and thus, install_share. Blank them if they exist - $makefile =~ s/^PERL_LIB = .+/PERL_LIB =/m; - #$makefile =~ s/^PERL_ARCHLIB = .+/PERL_ARCHLIB =/m; - - # Perl 5.005 mentions PERL_LIB explicitly, so we have to remove that as well. - $makefile =~ s/(\"?)-I\$\(PERL_LIB\)\1//g; - - # XXX - This is currently unused; not sure if it breaks other MM-users - # $makefile =~ s/^pm_to_blib\s+:\s+/pm_to_blib :: /mg; - - seek MAKEFILE, 0, SEEK_SET; - truncate MAKEFILE, 0; - print MAKEFILE "$preamble$makefile$postamble" or die $!; - close MAKEFILE or die $!; - - 1; -} - -sub preamble { - my ($self, $text) = @_; - $self->{preamble} = $text . $self->{preamble} if defined $text; - $self->{preamble}; -} - -sub postamble { - my ($self, $text) = @_; - $self->{postamble} ||= $self->admin->postamble; - $self->{postamble} .= $text if defined $text; - $self->{postamble} -} - -1; - -__END__ - -#line 544 diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Metadata.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Metadata.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Metadata.pm 2012-10-05 15:05:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Metadata.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,722 +0,0 @@ -#line 1 -package Module::Install::Metadata; - -use strict 'vars'; -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -my @boolean_keys = qw{ - sign -}; - -my @scalar_keys = qw{ - name - module_name - abstract - version - distribution_type - tests - installdirs -}; - -my @tuple_keys = qw{ - configure_requires - build_requires - requires - recommends - bundles - resources -}; - -my @resource_keys = qw{ - homepage - bugtracker - repository -}; - -my @array_keys = qw{ - keywords - author -}; - -*authors = \&author; - -sub Meta { shift } -sub Meta_BooleanKeys { @boolean_keys } -sub Meta_ScalarKeys { @scalar_keys } -sub Meta_TupleKeys { @tuple_keys } -sub Meta_ResourceKeys { @resource_keys } -sub Meta_ArrayKeys { @array_keys } - -foreach my $key ( @boolean_keys ) { - *$key = sub { - my $self = shift; - if ( defined wantarray and not @_ ) { - return $self->{values}->{$key}; - } - $self->{values}->{$key} = ( @_ ? $_[0] : 1 ); - return $self; - }; -} - -foreach my $key ( @scalar_keys ) { - *$key = sub { - my $self = shift; - return $self->{values}->{$key} if defined wantarray and !@_; - $self->{values}->{$key} = shift; - return $self; - }; -} - -foreach my $key ( @array_keys ) { - *$key = sub { - my $self = shift; - return $self->{values}->{$key} if defined wantarray and !@_; - $self->{values}->{$key} ||= []; - push @{$self->{values}->{$key}}, @_; - return $self; - }; -} - -foreach my $key ( @resource_keys ) { - *$key = sub { - my $self = shift; - unless ( @_ ) { - return () unless $self->{values}->{resources}; - return map { $_->[1] } - grep { $_->[0] eq $key } - @{ $self->{values}->{resources} }; - } - return $self->{values}->{resources}->{$key} unless @_; - my $uri = shift or die( - "Did not provide a value to $key()" - ); - $self->resources( $key => $uri ); - return 1; - }; -} - -foreach my $key ( grep { $_ ne "resources" } @tuple_keys) { - *$key = sub { - my $self = shift; - return $self->{values}->{$key} unless @_; - my @added; - while ( @_ ) { - my $module = shift or last; - my $version = shift || 0; - push @added, [ $module, $version ]; - } - push @{ $self->{values}->{$key} }, @added; - return map {@$_} @added; - }; -} - -# Resource handling -my %lc_resource = map { $_ => 1 } qw{ - homepage - license - bugtracker - repository -}; - -sub resources { - my $self = shift; - while ( @_ ) { - my $name = shift or last; - my $value = shift or next; - if ( $name eq lc $name and ! $lc_resource{$name} ) { - die("Unsupported reserved lowercase resource '$name'"); - } - $self->{values}->{resources} ||= []; - push @{ $self->{values}->{resources} }, [ $name, $value ]; - } - $self->{values}->{resources}; -} - -# Aliases for build_requires that will have alternative -# meanings in some future version of META.yml. -sub test_requires { shift->build_requires(@_) } -sub install_requires { shift->build_requires(@_) } - -# Aliases for installdirs options -sub install_as_core { $_[0]->installdirs('perl') } -sub install_as_cpan { $_[0]->installdirs('site') } -sub install_as_site { $_[0]->installdirs('site') } -sub install_as_vendor { $_[0]->installdirs('vendor') } - -sub dynamic_config { - my $self = shift; - my $value = @_ ? shift : 1; - if ( $self->{values}->{dynamic_config} ) { - # Once dynamic we never change to static, for safety - return 0; - } - $self->{values}->{dynamic_config} = $value ? 1 : 0; - return 1; -} - -# Convenience command -sub static_config { - shift->dynamic_config(0); -} - -sub perl_version { - my $self = shift; - return $self->{values}->{perl_version} unless @_; - my $version = shift or die( - "Did not provide a value to perl_version()" - ); - - # Normalize the version - $version = $self->_perl_version($version); - - # 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"; - } - - $self->{values}->{perl_version} = $version; -} - -sub all_from { - my ( $self, $file ) = @_; - - unless ( defined($file) ) { - my $name = $self->name or die( - "all_from called with no args without setting name() first" - ); - $file = join('/', 'lib', split(/-/, $name)) . '.pm'; - $file =~ s{.*/}{} unless -e $file; - unless ( -e $file ) { - die("all_from cannot find $file from $name"); - } - } - unless ( -f $file ) { - die("The path '$file' does not exist, or is not a file"); - } - - $self->{values}{all_from} = $file; - - # Some methods pull from POD instead of code. - # If there is a matching .pod, use that instead - my $pod = $file; - $pod =~ s/\.pm$/.pod/i; - $pod = $file unless -e $pod; - - # Pull the different values - $self->name_from($file) unless $self->name; - $self->version_from($file) unless $self->version; - $self->perl_version_from($file) unless $self->perl_version; - $self->author_from($pod) unless @{$self->author || []}; - $self->license_from($pod) unless $self->license; - $self->abstract_from($pod) unless $self->abstract; - - return 1; -} - -sub provides { - my $self = shift; - my $provides = ( $self->{values}->{provides} ||= {} ); - %$provides = (%$provides, @_) if @_; - return $provides; -} - -sub auto_provides { - my $self = shift; - return $self unless $self->is_admin; - unless (-e 'MANIFEST') { - warn "Cannot deduce auto_provides without a MANIFEST, skipping\n"; - return $self; - } - # Avoid spurious warnings as we are not checking manifest here. - local $SIG{__WARN__} = sub {1}; - require ExtUtils::Manifest; - local *ExtUtils::Manifest::manicheck = sub { return }; - - require Module::Build; - my $build = Module::Build->new( - dist_name => $self->name, - dist_version => $self->version, - license => $self->license, - ); - $self->provides( %{ $build->find_dist_packages || {} } ); -} - -sub feature { - my $self = shift; - my $name = shift; - my $features = ( $self->{values}->{features} ||= [] ); - my $mods; - - if ( @_ == 1 and ref( $_[0] ) ) { - # The user used ->feature like ->features by passing in the second - # argument as a reference. Accomodate for that. - $mods = $_[0]; - } else { - $mods = \@_; - } - - my $count = 0; - push @$features, ( - $name => [ - map { - ref($_) ? ( ref($_) eq 'HASH' ) ? %$_ : @$_ : $_ - } @$mods - ] - ); - - return @$features; -} - -sub features { - my $self = shift; - while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) { - $self->feature( $name, @$mods ); - } - return $self->{values}->{features} - ? @{ $self->{values}->{features} } - : (); -} - -sub no_index { - my $self = shift; - my $type = shift; - push @{ $self->{values}->{no_index}->{$type} }, @_ if $type; - return $self->{values}->{no_index}; -} - -sub read { - my $self = shift; - $self->include_deps( 'YAML::Tiny', 0 ); - - require YAML::Tiny; - my $data = YAML::Tiny::LoadFile('META.yml'); - - # Call methods explicitly in case user has already set some values. - while ( my ( $key, $value ) = each %$data ) { - next unless $self->can($key); - if ( ref $value eq 'HASH' ) { - while ( my ( $module, $version ) = each %$value ) { - $self->can($key)->($self, $module => $version ); - } - } else { - $self->can($key)->($self, $value); - } - } - return $self; -} - -sub write { - my $self = shift; - return $self unless $self->is_admin; - $self->admin->write_meta; - return $self; -} - -sub version_from { - require ExtUtils::MM_Unix; - my ( $self, $file ) = @_; - $self->version( ExtUtils::MM_Unix->parse_version($file) ); - - # for version integrity check - $self->makemaker_args( VERSION_FROM => $file ); -} - -sub abstract_from { - require ExtUtils::MM_Unix; - my ( $self, $file ) = @_; - $self->abstract( - bless( - { DISTNAME => $self->name }, - 'ExtUtils::MM_Unix' - )->parse_abstract($file) - ); -} - -# Add both distribution and module name -sub name_from { - my ($self, $file) = @_; - if ( - Module::Install::_read($file) =~ m/ - ^ \s* - package \s* - ([\w:]+) - \s* ; - /ixms - ) { - my ($name, $module_name) = ($1, $1); - $name =~ s{::}{-}g; - $self->name($name); - unless ( $self->module_name ) { - $self->module_name($module_name); - } - } else { - die("Cannot determine name from $file\n"); - } -} - -sub _extract_perl_version { - if ( - $_[0] =~ m/ - ^\s* - (?:use|require) \s* - v? - ([\d_\.]+) - \s* ; - /ixms - ) { - my $perl_version = $1; - $perl_version =~ s{_}{}g; - return $perl_version; - } else { - return; - } -} - -sub perl_version_from { - my $self = shift; - my $perl_version=_extract_perl_version(Module::Install::_read($_[0])); - if ($perl_version) { - $self->perl_version($perl_version); - } else { - warn "Cannot determine perl version info from $_[0]\n"; - return; - } -} - -sub author_from { - my $self = shift; - my $content = Module::Install::_read($_[0]); - if ($content =~ m/ - =head \d \s+ (?:authors?)\b \s* - ([^\n]*) - | - =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b \s* - .*? copyright .*? \d\d\d[\d.]+ \s* (?:\bby\b)? \s* - ([^\n]*) - /ixms) { - my $author = $1 || $2; - - # XXX: ugly but should work anyway... - if (eval "require Pod::Escapes; 1") { - # Pod::Escapes has a mapping table. - # It's in core of perl >= 5.9.3, and should be installed - # as one of the Pod::Simple's prereqs, which is a prereq - # of Pod::Text 3.x (see also below). - $author =~ s{ E<( (\d+) | ([A-Za-z]+) )> } - { - defined $2 - ? chr($2) - : defined $Pod::Escapes::Name2character_number{$1} - ? chr($Pod::Escapes::Name2character_number{$1}) - : do { - warn "Unknown escape: E<$1>"; - "E<$1>"; - }; - }gex; - } - elsif (eval "require Pod::Text; 1" && $Pod::Text::VERSION < 3) { - # Pod::Text < 3.0 has yet another mapping table, - # though the table name of 2.x and 1.x are different. - # (1.x is in core of Perl < 5.6, 2.x is in core of - # Perl < 5.9.3) - my $mapping = ($Pod::Text::VERSION < 2) - ? \%Pod::Text::HTML_Escapes - : \%Pod::Text::ESCAPES; - $author =~ s{ E<( (\d+) | ([A-Za-z]+) )> } - { - defined $2 - ? chr($2) - : defined $mapping->{$1} - ? $mapping->{$1} - : do { - warn "Unknown escape: E<$1>"; - "E<$1>"; - }; - }gex; - } - else { - $author =~ s{E}{<}g; - $author =~ s{E}{>}g; - } - $self->author($author); - } else { - warn "Cannot determine author info from $_[0]\n"; - } -} - -#Stolen from M::B -my %license_urls = ( - perl => 'http://dev.perl.org/licenses/', - apache => 'http://apache.org/licenses/LICENSE-2.0', - apache_1_1 => 'http://apache.org/licenses/LICENSE-1.1', - artistic => 'http://opensource.org/licenses/artistic-license.php', - artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php', - lgpl => 'http://opensource.org/licenses/lgpl-license.php', - lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php', - lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html', - bsd => 'http://opensource.org/licenses/bsd-license.php', - gpl => 'http://opensource.org/licenses/gpl-license.php', - gpl2 => 'http://opensource.org/licenses/gpl-2.0.php', - gpl3 => 'http://opensource.org/licenses/gpl-3.0.html', - mit => 'http://opensource.org/licenses/mit-license.php', - mozilla => 'http://opensource.org/licenses/mozilla1.1.php', - open_source => undef, - unrestricted => undef, - restrictive => undef, - unknown => undef, -); - -sub license { - my $self = shift; - return $self->{values}->{license} unless @_; - my $license = shift or die( - 'Did not provide a value to license()' - ); - $license = __extract_license($license) || lc $license; - $self->{values}->{license} = $license; - - # Automatically fill in license URLs - if ( $license_urls{$license} ) { - $self->resources( license => $license_urls{$license} ); - } - - return 1; -} - -sub _extract_license { - my $pod = shift; - my $matched; - return __extract_license( - ($matched) = $pod =~ m/ - (=head \d \s+ L(?i:ICEN[CS]E|ICENSING)\b.*?) - (=head \d.*|=cut.*|)\z - /xms - ) || __extract_license( - ($matched) = $pod =~ m/ - (=head \d \s+ (?:C(?i:OPYRIGHTS?)|L(?i:EGAL))\b.*?) - (=head \d.*|=cut.*|)\z - /xms - ); -} - -sub __extract_license { - my $license_text = shift or return; - my @phrases = ( - '(?:under )?the same (?:terms|license) as (?:perl|the perl (?:\d )?programming language)' => 'perl', 1, - '(?:under )?the terms of (?:perl|the perl programming language) itself' => 'perl', 1, - 'Artistic and GPL' => 'perl', 1, - 'GNU general public license' => 'gpl', 1, - 'GNU public license' => 'gpl', 1, - 'GNU lesser general public license' => 'lgpl', 1, - 'GNU lesser public license' => 'lgpl', 1, - 'GNU library general public license' => 'lgpl', 1, - 'GNU library public license' => 'lgpl', 1, - '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, - 'LGPL' => 'lgpl', 1, - 'BSD' => 'bsd', 1, - 'Artistic' => 'artistic', 1, - 'MIT' => 'mit', 1, - 'Mozilla Public License' => 'mozilla', 1, - 'Q Public License' => 'open_source', 1, - 'OpenSSL License' => 'unrestricted', 1, - 'SSLeay License' => 'unrestricted', 1, - 'zlib License' => 'open_source', 1, - 'proprietary' => 'proprietary', 0, - ); - while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) { - $pattern =~ s#\s+#\\s+#gs; - if ( $license_text =~ /\b$pattern\b/i ) { - return $license; - } - } - return ''; -} - -sub license_from { - my $self = shift; - if (my $license=_extract_license(Module::Install::_read($_[0]))) { - $self->license($license); - } else { - warn "Cannot determine license info from $_[0]\n"; - return 'unknown'; - } -} - -sub _extract_bugtracker { - my @links = $_[0] =~ m#L<( - 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}=(); - @links=keys %links; - return @links; -} - -sub bugtracker_from { - my $self = shift; - my $content = Module::Install::_read($_[0]); - my @links = _extract_bugtracker($content); - unless ( @links ) { - warn "Cannot determine bugtracker info from $_[0]\n"; - return 0; - } - if ( @links > 1 ) { - warn "Found more than one bugtracker link in $_[0]\n"; - return 0; - } - - # Set the bugtracker - bugtracker( $links[0] ); - return 1; -} - -sub requires_from { - my $self = shift; - my $content = Module::Install::_readperl($_[0]); - my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg; - while ( @requires ) { - my $module = shift @requires; - my $version = shift @requires; - $self->requires( $module => $version ); - } -} - -sub test_requires_from { - my $self = shift; - my $content = Module::Install::_readperl($_[0]); - my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg; - while ( @requires ) { - my $module = shift @requires; - my $version = shift @requires; - $self->test_requires( $module => $version ); - } -} - -# Convert triple-part versions (eg, 5.6.1 or 5.8.9) to -# numbers (eg, 5.006001 or 5.008009). -# Also, convert double-part versions (eg, 5.8) -sub _perl_version { - my $v = $_[-1]; - $v =~ s/^([1-9])\.([1-9]\d?\d?)$/sprintf("%d.%03d",$1,$2)/e; - $v =~ s/^([1-9])\.([1-9]\d?\d?)\.(0|[1-9]\d?\d?)$/sprintf("%d.%03d%03d",$1,$2,$3 || 0)/e; - $v =~ s/(\.\d\d\d)000$/$1/; - $v =~ s/_.+$//; - if ( ref($v) ) { - # Numify - $v = $v + 0; - } - return $v; -} - -sub add_metadata { - my $self = shift; - my %hash = @_; - for my $key (keys %hash) { - warn "add_metadata: $key is not prefixed with 'x_'.\n" . - "Use appopriate function to add non-private metadata.\n" unless $key =~ /^x_/; - $self->{values}->{$key} = $hash{$key}; - } -} - - -###################################################################### -# MYMETA Support - -sub WriteMyMeta { - die "WriteMyMeta has been deprecated"; -} - -sub write_mymeta_yaml { - my $self = shift; - - # We need YAML::Tiny to write the MYMETA.yml file - unless ( eval { require YAML::Tiny; 1; } ) { - return 1; - } - - # Generate the data - my $meta = $self->_write_mymeta_data or return 1; - - # Save as the MYMETA.yml file - print "Writing MYMETA.yml\n"; - YAML::Tiny::DumpFile('MYMETA.yml', $meta); -} - -sub write_mymeta_json { - my $self = shift; - - # We need JSON to write the MYMETA.json file - unless ( eval { require JSON; 1; } ) { - return 1; - } - - # Generate the data - my $meta = $self->_write_mymeta_data or return 1; - - # Save as the MYMETA.yml file - print "Writing MYMETA.json\n"; - Module::Install::_write( - 'MYMETA.json', - JSON->new->pretty(1)->canonical->encode($meta), - ); -} - -sub _write_mymeta_data { - my $self = shift; - - # If there's no existing META.yml there is nothing we can do - return undef unless -f 'META.yml'; - - # We need Parse::CPAN::Meta to load the file - unless ( eval { require Parse::CPAN::Meta; 1; } ) { - return undef; - } - - # Merge the perl version into the dependencies - my $val = $self->Meta->{values}; - my $perl = delete $val->{perl_version}; - if ( $perl ) { - $val->{requires} ||= []; - my $requires = $val->{requires}; - - # Canonize to three-dot version after Perl 5.6 - if ( $perl >= 5.006 ) { - $perl =~ s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2||0), int($3||0))}e - } - unshift @$requires, [ perl => $perl ]; - } - - # Load the advisory META.yml file - my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); - my $meta = $yaml[0]; - - # Overwrite the non-configure dependency hashs - delete $meta->{requires}; - delete $meta->{build_requires}; - delete $meta->{recommends}; - if ( exists $val->{requires} ) { - $meta->{requires} = { map { @$_ } @{ $val->{requires} } }; - } - if ( exists $val->{build_requires} ) { - $meta->{build_requires} = { map { @$_ } @{ $val->{build_requires} } }; - } - - return $meta; -} - -1; diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Scripts.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Scripts.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Scripts.pm 2012-10-05 15:05:29.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Scripts.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -#line 1 -package Module::Install::Scripts; - -use strict 'vars'; -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -sub install_script { - my $self = shift; - my $args = $self->makemaker_args; - my $exe = $args->{EXE_FILES} ||= []; - foreach ( @_ ) { - if ( -f $_ ) { - push @$exe, $_; - } elsif ( -d 'script' and -f "script/$_" ) { - push @$exe, "script/$_"; - } else { - die("Cannot find script '$_'"); - } - } -} - -1; diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Share.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Share.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Share.pm 2012-10-05 15:05:29.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Share.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ -#line 1 -package Module::Install::Share; - -use strict; -use Module::Install::Base (); -use File::Find (); -use ExtUtils::Manifest (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -sub install_share { - my $self = shift; - my $dir = @_ ? pop : 'share'; - my $type = @_ ? shift : 'dist'; - unless ( defined $type and $type eq 'module' or $type eq 'dist' ) { - die "Illegal or invalid share dir type '$type'"; - } - unless ( defined $dir and -d $dir ) { - require Carp; - Carp::croak("Illegal or missing directory install_share param: '$dir'"); - } - - # Split by type - my $S = ($^O eq 'MSWin32') ? "\\" : "\/"; - - my $root; - if ( $type eq 'dist' ) { - die "Too many parameters to install_share" if @_; - - # Set up the install - $root = "\$(INST_LIB)${S}auto${S}share${S}dist${S}\$(DISTNAME)"; - } else { - my $module = Module::Install::_CLASS($_[0]); - unless ( defined $module ) { - die "Missing or invalid module name '$_[0]'"; - } - $module =~ s/::/-/g; - - $root = "\$(INST_LIB)${S}auto${S}share${S}module${S}$module"; - } - - my $manifest = -r 'MANIFEST' ? ExtUtils::Manifest::maniread() : undef; - my $skip_checker = $ExtUtils::Manifest::VERSION >= 1.54 - ? ExtUtils::Manifest::maniskip() - : ExtUtils::Manifest::_maniskip(); - my $postamble = ''; - my $perm_dir = eval($ExtUtils::MakeMaker::VERSION) >= 6.52 ? '$(PERM_DIR)' : 755; - File::Find::find({ - no_chdir => 1, - wanted => sub { - my $path = File::Spec->abs2rel($_, $dir); - if (-d $_) { - return if $skip_checker->($File::Find::name); - $postamble .=<<"END"; -\t\$(NOECHO) \$(MKPATH) "$root${S}$path" -\t\$(NOECHO) \$(CHMOD) $perm_dir "$root${S}$path" -END - } - else { - return if ref $manifest - && !exists $manifest->{$File::Find::name}; - return if $skip_checker->($File::Find::name); - $postamble .=<<"END"; -\t\$(NOECHO) \$(CP) "$dir${S}$path" "$root${S}$path" -END - } - }, - }, $dir); - - # Set up the install - $self->postamble(<<"END_MAKEFILE"); -config :: -$postamble - -END_MAKEFILE - - # The above appears to behave incorrectly when used with old versions - # of ExtUtils::Install (known-bad on RHEL 3, with 5.8.0) - # So when we need to install a share directory, make sure we add a - # dependency on a moderately new version of ExtUtils::MakeMaker. - $self->build_requires( 'ExtUtils::MakeMaker' => '6.11' ); - - # 99% of the time we don't want to index a shared dir - $self->no_index( directory => $dir ); -} - -1; - -__END__ - -#line 154 diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/Win32.pm libhtml-formfu-perl-1.00000/inc/Module/Install/Win32.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/Win32.pm 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/Win32.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -#line 1 -package Module::Install::Win32; - -use strict; -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - -# determine if the user needs nmake, and download it if needed -sub check_nmake { - my $self = shift; - $self->load('can_run'); - $self->load('get_file'); - - require Config; - return unless ( - $^O eq 'MSWin32' and - $Config::Config{make} and - $Config::Config{make} =~ /^nmake\b/i and - ! $self->can_run('nmake') - ); - - print "The required 'nmake' executable not found, fetching it...\n"; - - require File::Basename; - my $rv = $self->get_file( - url => 'http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe', - ftp_url => 'ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe', - local_dir => File::Basename::dirname($^X), - size => 51928, - run => 'Nmake15.exe /o > nul', - check_for => 'Nmake.exe', - remove => 1, - ); - - die <<'END_MESSAGE' unless $rv; - -------------------------------------------------------------------------------- - -Since you are using Microsoft Windows, you will need the 'nmake' utility -before installation. It's available at: - - http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe - or - ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe - -Please download the file manually, save it to a directory in %PATH% (e.g. -C:\WINDOWS\COMMAND\), then launch the MS-DOS command line shell, "cd" to -that directory, and run "Nmake15.exe" from there; that will create the -'nmake.exe' file needed by this module. - -You may then resume the installation process described in README. - -------------------------------------------------------------------------------- -END_MESSAGE - -} - -1; diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/With.pm libhtml-formfu-perl-1.00000/inc/Module/Install/With.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/With.pm 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/With.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -#line 1 -package Module::Install::With; - -# See POD at end for docs - -use strict; -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = 'Module::Install::Base'; - $ISCORE = 1; -} - - - - - -##################################################################### -# Installer Target - -# Are we targeting ExtUtils::MakeMaker (running as Makefile.PL) -sub eumm { - !! ($0 =~ /Makefile.PL$/i); -} - -# You should not be using this, but we'll keep the hook anyways -sub mb { - !! ($0 =~ /Build.PL$/i); -} - - - - - -##################################################################### -# Testing and Configuration Contexts - -#line 49 - -sub interactive { - # Treat things interactively ONLY based on input - !! (-t STDIN and ! automated_testing()); -} - -#line 67 - -sub automated_testing { - !! $ENV{AUTOMATED_TESTING}; -} - -#line 86 - -sub release_testing { - !! $ENV{RELEASE_TESTING}; -} - -sub author_context { - !! $Module::Install::AUTHOR; -} - - - - - -##################################################################### -# Operating System Convenience - -#line 114 - -sub win32 { - !! ($^O eq 'MSWin32'); -} - -#line 131 - -sub winlike { - !! ($^O eq 'MSWin32' or $^O eq 'cygwin'); -} - -1; - -#line 159 diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install/WriteAll.pm libhtml-formfu-perl-1.00000/inc/Module/Install/WriteAll.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install/WriteAll.pm 2012-10-05 15:05:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install/WriteAll.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -#line 1 -package Module::Install::WriteAll; - -use strict; -use Module::Install::Base (); - -use vars qw{$VERSION @ISA $ISCORE}; -BEGIN { - $VERSION = '1.06'; - @ISA = qw{Module::Install::Base}; - $ISCORE = 1; -} - -sub WriteAll { - my $self = shift; - my %args = ( - meta => 1, - sign => 0, - inline => 0, - check_nmake => 1, - @_, - ); - - $self->sign(1) if $args{sign}; - $self->admin->WriteAll(%args) if $self->is_admin; - - $self->check_nmake if $args{check_nmake}; - unless ( $self->makemaker_args->{PL_FILES} ) { - # XXX: This still may be a bit over-defensive... - unless ($self->makemaker(6.25)) { - $self->makemaker_args( PL_FILES => {} ) if -f 'Build.PL'; - } - } - - # Until ExtUtils::MakeMaker support MYMETA.yml, make sure - # we clean it up properly ourself. - $self->realclean_files('MYMETA.yml'); - - if ( $args{inline} ) { - $self->Inline->write; - } else { - $self->Makefile->write; - } - - # The Makefile write process adds a couple of dependencies, - # so write the META.yml files after the Makefile. - if ( $args{meta} ) { - $self->Meta->write; - } - - # Experimental support for MYMETA - if ( $ENV{X_MYMETA} ) { - if ( $ENV{X_MYMETA} eq 'JSON' ) { - $self->Meta->write_mymeta_json; - } else { - $self->Meta->write_mymeta_yaml; - } - } - - return 1; -} - -1; diff -Nru libhtml-formfu-perl-0.09010/inc/Module/Install.pm libhtml-formfu-perl-1.00000/inc/Module/Install.pm --- libhtml-formfu-perl-0.09010/inc/Module/Install.pm 2012-10-05 15:05:26.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/Module/Install.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,470 +0,0 @@ -#line 1 -package Module::Install; - -# For any maintainers: -# The load order for Module::Install is a bit magic. -# It goes something like this... -# -# IF ( host has Module::Install installed, creating author mode ) { -# 1. Makefile.PL calls "use inc::Module::Install" -# 2. $INC{inc/Module/Install.pm} set to installed version of inc::Module::Install -# 3. The installed version of inc::Module::Install loads -# 4. inc::Module::Install calls "require Module::Install" -# 5. The ./inc/ version of Module::Install loads -# } ELSE { -# 1. Makefile.PL calls "use inc::Module::Install" -# 2. $INC{inc/Module/Install.pm} set to ./inc/ version of Module::Install -# 3. The ./inc/ version of Module::Install loads -# } - -use 5.005; -use strict 'vars'; -use Cwd (); -use File::Find (); -use File::Path (); - -use vars qw{$VERSION $MAIN}; -BEGIN { - # All Module::Install core packages now require synchronised versions. - # This will be used to ensure we don't accidentally load old or - # different versions of modules. - # 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.06'; - - # Storage for the pseudo-singleton - $MAIN = undef; - - *inc::Module::Install::VERSION = *VERSION; - @inc::Module::Install::ISA = __PACKAGE__; - -} - -sub import { - my $class = shift; - my $self = $class->new(@_); - my $who = $self->_caller; - - #------------------------------------------------------------- - # all of the following checks should be included in import(), - # to allow "eval 'require Module::Install; 1' to test - # installation of Module::Install. (RT #51267) - #------------------------------------------------------------- - - # Whether or not inc::Module::Install is actually loaded, the - # $INC{inc/Module/Install.pm} is what will still get set as long as - # the caller loaded module this in the documented manner. - # If not set, the caller may NOT have loaded the bundled version, and thus - # they may not have a MI version that works with the Makefile.PL. This would - # result in false errors or unexpected behaviour. And we don't want that. - my $file = join( '/', 'inc', split /::/, __PACKAGE__ ) . '.pm'; - unless ( $INC{$file} ) { die <<"END_DIE" } - -Please invoke ${\__PACKAGE__} with: - - use inc::${\__PACKAGE__}; - -not: - - use ${\__PACKAGE__}; - -END_DIE - - # This reportedly fixes a rare Win32 UTC file time issue, but - # as this is a non-cross-platform XS module not in the core, - # we shouldn't really depend on it. See RT #24194 for detail. - # (Also, this module only supports Perl 5.6 and above). - eval "use Win32::UTCFileTime" if $^O eq 'MSWin32' && $] >= 5.006; - - # If the script that is loading Module::Install is from the future, - # then make will detect this and cause it to re-run over and over - # again. This is bad. Rather than taking action to touch it (which - # is unreliable on some platforms and requires write permissions) - # for now we should catch this and refuse to run. - if ( -f $0 ) { - my $s = (stat($0))[9]; - - # If the modification time is only slightly in the future, - # sleep briefly to remove the problem. - my $a = $s - time; - if ( $a > 0 and $a < 5 ) { sleep 5 } - - # Too far in the future, throw an error. - my $t = time; - if ( $s > $t ) { die <<"END_DIE" } - -Your installer $0 has a modification time in the future ($s > $t). - -This is known to create infinite loops in make. - -Please correct this, then run $0 again. - -END_DIE - } - - - # Build.PL was formerly supported, but no longer is due to excessive - # difficulty in implementing every single feature twice. - if ( $0 =~ /Build.PL$/i ) { die <<"END_DIE" } - -Module::Install no longer supports Build.PL. - -It was impossible to maintain duel backends, and has been deprecated. - -Please remove all Build.PL files and only use the Makefile.PL installer. - -END_DIE - - #------------------------------------------------------------- - - # To save some more typing in Module::Install installers, every... - # use inc::Module::Install - # ...also acts as an implicit use strict. - $^H |= strict::bits(qw(refs subs vars)); - - #------------------------------------------------------------- - - unless ( -f $self->{file} ) { - foreach my $key (keys %INC) { - delete $INC{$key} if $key =~ /Module\/Install/; - } - - local $^W; - require "$self->{path}/$self->{dispatch}.pm"; - File::Path::mkpath("$self->{prefix}/$self->{author}"); - $self->{admin} = "$self->{name}::$self->{dispatch}"->new( _top => $self ); - $self->{admin}->init; - @_ = ($class, _self => $self); - goto &{"$self->{name}::import"}; - } - - local $^W; - *{"${who}::AUTOLOAD"} = $self->autoload; - $self->preload; - - # Unregister loader and worker packages so subdirs can use them again - delete $INC{'inc/Module/Install.pm'}; - delete $INC{'Module/Install.pm'}; - - # Save to the singleton - $MAIN = $self; - - return 1; -} - -sub autoload { - my $self = shift; - my $who = $self->_caller; - my $cwd = Cwd::cwd(); - my $sym = "${who}::AUTOLOAD"; - $sym->{$cwd} = sub { - my $pwd = Cwd::cwd(); - if ( my $code = $sym->{$pwd} ) { - # Delegate back to parent dirs - goto &$code unless $cwd eq $pwd; - } - unless ($$sym =~ s/([^:]+)$//) { - # XXX: it looks like we can't retrieve the missing function - # via $$sym (usually $main::AUTOLOAD) in this case. - # I'm still wondering if we should slurp Makefile.PL to - # get some context or not ... - my ($package, $file, $line) = caller; - die <<"EOT"; -Unknown function is found at $file line $line. -Execution of $file aborted due to runtime errors. - -If you're a contributor to a project, you may need to install -some Module::Install extensions from CPAN (or other repository). -If you're a user of a module, please contact the author. -EOT - } - my $method = $1; - if ( uc($method) eq $method ) { - # Do nothing - return; - } elsif ( $method =~ /^_/ and $self->can($method) ) { - # Dispatch to the root M:I class - return $self->$method(@_); - } - - # Dispatch to the appropriate plugin - unshift @_, ( $self, $1 ); - goto &{$self->can('call')}; - }; -} - -sub preload { - my $self = shift; - unless ( $self->{extensions} ) { - $self->load_extensions( - "$self->{prefix}/$self->{path}", $self - ); - } - - my @exts = @{$self->{extensions}}; - unless ( @exts ) { - @exts = $self->{admin}->load_all_extensions; - } - - my %seen; - foreach my $obj ( @exts ) { - while (my ($method, $glob) = each %{ref($obj) . '::'}) { - next unless $obj->can($method); - next if $method =~ /^_/; - next if $method eq uc($method); - $seen{$method}++; - } - } - - my $who = $self->_caller; - foreach my $name ( sort keys %seen ) { - local $^W; - *{"${who}::$name"} = sub { - ${"${who}::AUTOLOAD"} = "${who}::$name"; - goto &{"${who}::AUTOLOAD"}; - }; - } -} - -sub new { - my ($class, %args) = @_; - - delete $INC{'FindBin.pm'}; - { - # to suppress the redefine warning - local $SIG{__WARN__} = sub {}; - require FindBin; - } - - # ignore the prefix on extension modules built from top level. - my $base_path = Cwd::abs_path($FindBin::Bin); - unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) { - delete $args{prefix}; - } - return $args{_self} if $args{_self}; - - $args{dispatch} ||= 'Admin'; - $args{prefix} ||= 'inc'; - $args{author} ||= ($^O eq 'VMS' ? '_author' : '.author'); - $args{bundle} ||= 'inc/BUNDLES'; - $args{base} ||= $base_path; - $class =~ s/^\Q$args{prefix}\E:://; - $args{name} ||= $class; - $args{version} ||= $class->VERSION; - unless ( $args{path} ) { - $args{path} = $args{name}; - $args{path} =~ s!::!/!g; - } - $args{file} ||= "$args{base}/$args{prefix}/$args{path}.pm"; - $args{wrote} = 0; - - bless( \%args, $class ); -} - -sub call { - my ($self, $method) = @_; - my $obj = $self->load($method) or return; - splice(@_, 0, 2, $obj); - goto &{$obj->can($method)}; -} - -sub load { - my ($self, $method) = @_; - - $self->load_extensions( - "$self->{prefix}/$self->{path}", $self - ) unless $self->{extensions}; - - foreach my $obj (@{$self->{extensions}}) { - return $obj if $obj->can($method); - } - - my $admin = $self->{admin} or die <<"END_DIE"; -The '$method' method does not exist in the '$self->{prefix}' path! -Please remove the '$self->{prefix}' directory and run $0 again to load it. -END_DIE - - my $obj = $admin->load($method, 1); - push @{$self->{extensions}}, $obj; - - $obj; -} - -sub load_extensions { - my ($self, $path, $top) = @_; - - my $should_reload = 0; - unless ( grep { ! ref $_ and lc $_ eq lc $self->{prefix} } @INC ) { - unshift @INC, $self->{prefix}; - $should_reload = 1; - } - - foreach my $rv ( $self->find_extensions($path) ) { - my ($file, $pkg) = @{$rv}; - next if $self->{pathnames}{$pkg}; - - local $@; - my $new = eval { local $^W; require $file; $pkg->can('new') }; - unless ( $new ) { - warn $@ if $@; - next; - } - $self->{pathnames}{$pkg} = - $should_reload ? delete $INC{$file} : $INC{$file}; - push @{$self->{extensions}}, &{$new}($pkg, _top => $top ); - } - - $self->{extensions} ||= []; -} - -sub find_extensions { - my ($self, $path) = @_; - - my @found; - File::Find::find( sub { - my $file = $File::Find::name; - return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is; - my $subpath = $1; - return if lc($subpath) eq lc($self->{dispatch}); - - $file = "$self->{path}/$subpath.pm"; - my $pkg = "$self->{name}::$subpath"; - $pkg =~ s!/!::!g; - - # If we have a mixed-case package name, assume case has been preserved - # correctly. Otherwise, root through the file to locate the case-preserved - # version of the package name. - if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) { - my $content = Module::Install::_read($subpath . '.pm'); - my $in_pod = 0; - foreach ( split //, $content ) { - $in_pod = 1 if /^=\w/; - $in_pod = 0 if /^=cut/; - next if ($in_pod || /^=cut/); # skip pod text - next if /^\s*#/; # and comments - if ( m/^\s*package\s+($pkg)\s*;/i ) { - $pkg = $1; - last; - } - } - } - - push @found, [ $file, $pkg ]; - }, $path ) if -d $path; - - @found; -} - - - - - -##################################################################### -# Common Utility Functions - -sub _caller { - my $depth = 0; - my $call = caller($depth); - while ( $call eq __PACKAGE__ ) { - $depth++; - $call = caller($depth); - } - return $call; -} - -# Done in evals to avoid confusing Perl::MinimumVersion -eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; -sub _read { - local *FH; - open( FH, '<', $_[0] ) or die "open($_[0]): $!"; - my $string = do { local $/; }; - close FH or die "close($_[0]): $!"; - return $string; -} -END_NEW -sub _read { - local *FH; - open( FH, "< $_[0]" ) or die "open($_[0]): $!"; - my $string = do { local $/; }; - close FH or die "close($_[0]): $!"; - return $string; -} -END_OLD - -sub _readperl { - my $string = Module::Install::_read($_[0]); - $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; - $string =~ s/(\n)\n*__(?:DATA|END)__\b.*\z/$1/s; - $string =~ s/\n\n=\w+.+?\n\n=cut\b.+?\n+/\n\n/sg; - return $string; -} - -sub _readpod { - my $string = Module::Install::_read($_[0]); - $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; - return $string if $_[0] =~ /\.pod\z/; - $string =~ s/(^|\n=cut\b.+?\n+)[^=\s].+?\n(\n=\w+|\z)/$1$2/sg; - $string =~ s/\n*=pod\b[^\n]*\n+/\n\n/sg; - $string =~ s/\n*=cut\b[^\n]*\n+/\n\n/sg; - $string =~ s/^\n+//s; - return $string; -} - -# Done in evals to avoid confusing Perl::MinimumVersion -eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; -sub _write { - local *FH; - open( FH, '>', $_[0] ) or die "open($_[0]): $!"; - foreach ( 1 .. $#_ ) { - print FH $_[$_] or die "print($_[0]): $!"; - } - close FH or die "close($_[0]): $!"; -} -END_NEW -sub _write { - local *FH; - open( FH, "> $_[0]" ) or die "open($_[0]): $!"; - foreach ( 1 .. $#_ ) { - print FH $_[$_] or die "print($_[0]): $!"; - } - close FH or die "close($_[0]): $!"; -} -END_OLD - -# _version is for processing module versions (eg, 1.03_05) not -# Perl versions (eg, 5.8.1). -sub _version ($) { - my $s = shift || 0; - my $d =()= $s =~ /(\.)/g; - if ( $d >= 2 ) { - # Normalise multipart versions - $s =~ s/(\.)(\d{1,3})/sprintf("$1%03d",$2)/eg; - } - $s =~ s/^(\d+)\.?//; - my $l = $1 || 0; - my @v = map { - $_ . '0' x (3 - length $_) - } $s =~ /(\d{1,3})\D?/g; - $l = $l . '.' . join '', @v if @v; - return $l + 0; -} - -sub _cmp ($$) { - _version($_[1]) <=> _version($_[2]); -} - -# Cloned from Params::Util::_CLASS -sub _CLASS ($) { - ( - defined $_[0] - and - ! ref $_[0] - and - $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s - ) ? $_[0] : undef; -} - -1; - -# Copyright 2008 - 2012 Adam Kennedy. diff -Nru libhtml-formfu-perl-0.09010/inc/version.pm libhtml-formfu-perl-1.00000/inc/version.pm --- libhtml-formfu-perl-0.09010/inc/version.pm 2012-10-05 15:05:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/inc/version.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,214 +0,0 @@ -#line 1 -#!perl -w -package version; - -use 5.005_04; -use strict; - -use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); - -$VERSION = 0.88; - -$CLASS = 'version'; - -#--------------------------------------------------------------------------# -# Version regexp components -#--------------------------------------------------------------------------# - -# Fraction part of a decimal version number. This is a common part of -# both strict and lax decimal versions - -my $FRACTION_PART = qr/\.[0-9]+/; - -# First part of either decimal or dotted-decimal strict version number. -# Unsigned integer with no leading zeroes (except for zero itself) to -# avoid confusion with octal. - -my $STRICT_INTEGER_PART = qr/0|[1-9][0-9]*/; - -# First part of either decimal or dotted-decimal lax version number. -# Unsigned integer, but allowing leading zeros. Always interpreted -# as decimal. However, some forms of the resulting syntax give odd -# results if used as ordinary Perl expressions, due to how perl treats -# octals. E.g. -# version->new("010" ) == 10 -# version->new( 010 ) == 8 -# version->new( 010.2) == 82 # "8" . "2" - -my $LAX_INTEGER_PART = qr/[0-9]+/; - -# Second and subsequent part of a strict dotted-decimal version number. -# Leading zeroes are permitted, and the number is always decimal. -# Limited to three digits to avoid overflow when converting to decimal -# form and also avoid problematic style with excessive leading zeroes. - -my $STRICT_DOTTED_DECIMAL_PART = qr/\.[0-9]{1,3}/; - -# Second and subsequent part of a lax dotted-decimal version number. -# Leading zeroes are permitted, and the number is always decimal. No -# limit on the numerical value or number of digits, so there is the -# possibility of overflow when converting to decimal form. - -my $LAX_DOTTED_DECIMAL_PART = qr/\.[0-9]+/; - -# Alpha suffix part of lax version number syntax. Acts like a -# dotted-decimal part. - -my $LAX_ALPHA_PART = qr/_[0-9]+/; - -#--------------------------------------------------------------------------# -# Strict version regexp definitions -#--------------------------------------------------------------------------# - -# Strict decimal version number. - -my $STRICT_DECIMAL_VERSION = - qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x; - -# Strict dotted-decimal version number. Must have both leading "v" and -# at least three parts, to avoid confusion with decimal syntax. - -my $STRICT_DOTTED_DECIMAL_VERSION = - qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x; - -# Complete strict version number syntax -- should generally be used -# anchored: qr/ \A $STRICT \z /x - -$STRICT = - qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x; - -#--------------------------------------------------------------------------# -# Lax version regexp definitions -#--------------------------------------------------------------------------# - -# Lax decimal version number. Just like the strict one except for -# allowing an alpha suffix or allowing a leading or trailing -# decimal-point - -my $LAX_DECIMAL_VERSION = - qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )? - | - $FRACTION_PART $LAX_ALPHA_PART? - /x; - -# Lax dotted-decimal version number. Distinguished by having either -# leading "v" or at least three non-alpha parts. Alpha part is only -# permitted if there are at least two non-alpha parts. Strangely -# enough, without the leading "v", Perl takes .1.2 to mean v0.1.2, -# so when there is no "v", the leading part is optional - -my $LAX_DOTTED_DECIMAL_VERSION = - qr/ - v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )? - | - $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART? - /x; - -# Complete lax version number syntax -- should generally be used -# anchored: qr/ \A $LAX \z /x -# -# The string 'undef' is a special case to make for easier handling -# of return values from ExtUtils::MM->parse_version - -$LAX = - qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x; - -#--------------------------------------------------------------------------# - -eval "use version::vxs $VERSION"; -if ( $@ ) { # don't have the XS version installed - eval "use version::vpp $VERSION"; # don't tempt fate - die "$@" if ( $@ ); - push @ISA, "version::vpp"; - local $^W; - *version::qv = \&version::vpp::qv; - *version::declare = \&version::vpp::declare; - *version::_VERSION = \&version::vpp::_VERSION; - if ($] >= 5.009000 && $] < 5.011004) { - no strict 'refs'; - *version::stringify = \&version::vpp::stringify; - *{'version::(""'} = \&version::vpp::stringify; - *version::new = \&version::vpp::new; - *version::parse = \&version::vpp::parse; - } -} -else { # use XS module - push @ISA, "version::vxs"; - local $^W; - *version::declare = \&version::vxs::declare; - *version::qv = \&version::vxs::qv; - *version::_VERSION = \&version::vxs::_VERSION; - *version::vcmp = \&version::vxs::VCMP; - if ($] >= 5.009000 && $] < 5.011004) { - no strict 'refs'; - *version::stringify = \&version::vxs::stringify; - *{'version::(""'} = \&version::vxs::stringify; - *version::new = \&version::vxs::new; - *version::parse = \&version::vxs::parse; - } - -} - -# Preloaded methods go here. -sub import { - no strict 'refs'; - my ($class) = shift; - - # Set up any derived class - unless ($class eq 'version') { - local $^W; - *{$class.'::declare'} = \&version::declare; - *{$class.'::qv'} = \&version::qv; - } - - my %args; - if (@_) { # any remaining terms are arguments - map { $args{$_} = 1 } @_ - } - else { # no parameters at all on use line - %args = - ( - qv => 1, - 'UNIVERSAL::VERSION' => 1, - ); - } - - my $callpkg = caller(); - - if (exists($args{declare})) { - *{$callpkg.'::declare'} = - sub {return $class->declare(shift) } - unless defined(&{$callpkg.'::declare'}); - } - - if (exists($args{qv})) { - *{$callpkg.'::qv'} = - sub {return $class->qv(shift) } - unless defined(&{$callpkg.'::qv'}); - } - - if (exists($args{'UNIVERSAL::VERSION'})) { - local $^W; - *UNIVERSAL::VERSION - = \&version::_VERSION; - } - - if (exists($args{'VERSION'})) { - *{$callpkg.'::VERSION'} = \&version::_VERSION; - } - - if (exists($args{'is_strict'})) { - *{$callpkg.'::is_strict'} = \&version::is_strict - unless defined(&{$callpkg.'::is_strict'}); - } - - if (exists($args{'is_lax'})) { - *{$callpkg.'::is_lax'} = \&version::is_lax - unless defined(&{$callpkg.'::is_lax'}); - } -} - -sub is_strict { defined $_[0] && $_[0] =~ qr/ \A $STRICT \z /x } -sub is_lax { defined $_[0] && $_[0] =~ qr/ \A $LAX \z /x } - -1; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Attribute.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Attribute.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Attribute.pm 2012-10-03 15:52:32.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Attribute.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,7 +1,11 @@ package HTML::FormFu::Attribute; +{ + $HTML::FormFu::Attribute::VERSION = '1.00'; +} use strict; use Exporter qw( import ); +use Carp qw( croak ); use Class::MOP::Method; use HTML::FormFu::Util qw( append_xml_attribute remove_xml_attribute literal @@ -11,6 +15,7 @@ mk_attrs mk_attr_accessors mk_attr_modifiers mk_inherited_accessors mk_output_accessors mk_inherited_merging_accessors + mk_attr_bool_accessors ); sub mk_attrs { @@ -61,6 +66,23 @@ $class->meta->add_method( $name, $method ); $class->meta->add_method( "${name}_xml", $xml_method ); + my $loc_sub = sub { + my ( $self, $mess, @args ) = @_; + + if ( ref $mess eq 'ARRAY' ) { + ( $mess, @args ) = ( @$mess, @args ); + } + + return $self->$name( + literal( $self->form->localize( $mess, @args ) ) ); + }; + + my $loc_method = Class::MOP::Method->wrap( + body => $loc_sub, + name => "${name}_loc", + package_name => $class, + ); + # add shortcuts my $short = $name; if ( $short =~ s/attributes$/attrs/ ) { @@ -77,8 +99,15 @@ package_name => $class, ); + my $loc_method = Class::MOP::Method->wrap( + body => $loc_sub, + name => "${short}_loc", + package_name => $class, + ); + $class->meta->add_method( $short, $method ); $class->meta->add_method( "${short}_xml", $xml_method ); + $class->meta->add_method( "${short}_loc", $loc_method ); } } @@ -111,21 +140,9 @@ ); my $xml_sub = sub { - my ( $self, @attrs ) = @_; - my @args; + my ( $self, $value ) = @_; - for my $item (@attrs) { - if ( ref $item eq 'HASH' ) { - push @args, { map { $_, literal($_) } keys %$item }; - } - elsif ( ref $item eq 'ARRAY' ) { - push @args, [ map { literal($_) } @$item ]; - } - else { - push @args, literal($item); - } - } - return $self->$name( [@args] ); + return $self->attributes->{$name} = literal $value; }; my $xml_method = Class::MOP::Method->wrap( @@ -134,28 +151,26 @@ package_name => $class, ); - $class->meta->add_method( $name, $method ); - $class->meta->add_method( "${name}_xml", $xml_method ); + my $loc_sub = sub { + my ( $self, $mess, @args ) = @_; - # add shortcuts - my $short = $name; - if ( $short =~ s/attributes$/attrs/ ) { + if ( ref $mess eq 'ARRAY' ) { + ( $mess, @args ) = ( @$mess, @args ); + } - my $method = Class::MOP::Method->wrap( - body => $sub, - name => $short, - package_name => $class, - ); + return $self->attributes->{$name} = + literal( $self->form->localize( $mess, @args ) ); + }; - my $xml_method = Class::MOP::Method->wrap( - body => $xml_sub, - name => "${short}_xml", - package_name => $class, - ); + my $loc_method = Class::MOP::Method->wrap( + body => $loc_sub, + name => "${name}_loc", + package_name => $class, + ); - $class->meta->add_method( $short, $method ); - $class->meta->add_method( "${short}_xml", $xml_method ); - } + $class->meta->add_method( $name, $method ); + $class->meta->add_method( "${name}_xml", $xml_method ); + $class->meta->add_method( "${name}_loc", $loc_method ); } return; @@ -199,8 +214,26 @@ package_name => $class, ); + my $loc_sub = sub { + my ( $self, $mess, @args ) = @_; + + if ( ref $mess eq 'ARRAY' ) { + ( $mess, @args ) = ( @$mess, @args ); + } + + return $self->$method( + literal( $self->form->localize( $mess, @args ) ) ); + }; + + my $loc_method = Class::MOP::Method->wrap( + body => $loc_sub, + name => "add_${name}_loc", + package_name => $class, + ); + $class->meta->add_method( "add_$name", $method ); $class->meta->add_method( "add_${name}_xml", $xml_method ); + $class->meta->add_method( "add_${name}_loc", $loc_method ); # add shortcuts my $short = $name; @@ -218,8 +251,15 @@ package_name => $class, ); + my $loc_method = Class::MOP::Method->wrap( + body => $loc_sub, + name => "add_${short}_loc", + package_name => $class, + ); + $class->meta->add_method( "add_$short", $method ); $class->meta->add_method( "add_${short}_xml", $xml_method ); + $class->meta->add_method( "add_${short}_loc", $loc_method ); } } @@ -264,8 +304,26 @@ package_name => $class, ); + my $loc_sub = sub { + my ( $self, $mess, @args ) = @_; + + if ( ref $mess eq 'ARRAY' ) { + ( $mess, @args ) = ( @$mess, @args ); + } + + return $self->$method( + literal( $self->form->localize( $mess, @args ) ) ); + }; + + my $loc_method = Class::MOP::Method->wrap( + body => $loc_sub, + name => "del_${name}_loc", + package_name => $class, + ); + $class->meta->add_method( "del_$name", $method ); $class->meta->add_method( "del_${name}_xml", $xml_method ); + $class->meta->add_method( "del_${name}_loc", $loc_method ); # add shortcuts my $short = $name; @@ -283,8 +341,15 @@ package_name => $class, ); + my $loc_method = Class::MOP::Method->wrap( + body => $loc_sub, + name => "del_${short}_loc", + package_name => $class, + ); + $class->meta->add_method( "del_$short", $method ); $class->meta->add_method( "del_${short}_xml", $xml_method ); + $class->meta->add_method( "del_${short}_loc", $loc_method ); } } @@ -315,13 +380,30 @@ return $self->{$name}; }; + my $no_inherit_sub = sub { + my ( $self, $value ) = @_; + + if ( @_ > 1 ) { + croak "Cannot call ${name}_no_inherit as a setter"; + } + + return $self->{$name}; + }; + my $method = Class::MOP::Method->wrap( body => $sub, name => $name, package_name => $class, ); + my $no_inherit_method = Class::MOP::Method->wrap( + body => $no_inherit_sub, + name => "${name}_no_inherit", + package_name => $class, + ); + $class->meta->add_method( $name, $method ); + $class->meta->add_method( "${name}_no_inherit", $no_inherit_method ); } return; @@ -425,13 +507,57 @@ return; } +sub mk_attr_bool_accessors { + my ( $self, @names ) = @_; + + my $class = ref $self || $self; + + for my $name (@names) { + my $sub = sub { + my ( $self, $attr ) = @_; + + if ( @_ == 1 ) { + # Getter + return undef if !exists $self->attributes->{$name}; + + return $self->attributes->{$name} ? $self->attributes->{$name} + : undef; + } + + # Any true value sets a bool attribute, e.g. + # required="required" + # Any false value deletes the attribute + + if ( $attr ) { + $self->attributes->{$name} = $name; + } + else { + delete $self->attributes->{$name}; + } + + return $self; + }; + + my $method = Class::MOP::Method->wrap( + body => $sub, + name => $name, + package_name => $class, + ); + + $class->meta->add_method( $name, $method ); + } + + return; +} + + 1; __END__ =head1 NAME -HTML::FormFu::Attribute +HTML::FormFu::Attribute - accessor class =head1 SYNOPSIS diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constants.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constants.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constants.pm 2012-10-03 15:51:41.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constants.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constants; +{ + $HTML::FormFu::Constants::VERSION = '1.00'; +} use strict; use Readonly; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/ASCII.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/ASCII.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/ASCII.pm 2012-10-03 15:52:21.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/ASCII.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::ASCII; +{ + $HTML::FormFu::Constraint::ASCII::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Regex'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/AllOrNone.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/AllOrNone.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/AllOrNone.pm 2012-10-03 15:52:20.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/AllOrNone.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::AllOrNone; +{ + $HTML::FormFu::Constraint::AllOrNone::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/AutoSet.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/AutoSet.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/AutoSet.pm 2012-10-03 15:52:22.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/AutoSet.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::AutoSet; +{ + $HTML::FormFu::Constraint::AutoSet::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Set'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Bool.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Bool.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Bool.pm 2012-10-03 15:52:24.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Bool.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Bool; +{ + $HTML::FormFu::Constraint::Bool::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Regex'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Callback.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Callback.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Callback.pm 2012-10-03 15:52:22.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Callback.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Callback; +{ + $HTML::FormFu::Constraint::Callback::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/CallbackOnce.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/CallbackOnce.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/CallbackOnce.pm 2012-10-03 15:52:20.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/CallbackOnce.pm 2013-12-16 10:48:12.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::CallbackOnce; +{ + $HTML::FormFu::Constraint::CallbackOnce::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/DateTime.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/DateTime.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/DateTime.pm 2012-10-03 15:52:26.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/DateTime.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::DateTime; +{ + $HTML::FormFu::Constraint::DateTime::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/DependOn.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/DependOn.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/DependOn.pm 2012-10-03 15:52:27.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/DependOn.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::DependOn; +{ + $HTML::FormFu::Constraint::DependOn::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Email.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Email.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Email.pm 2012-10-03 15:52:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Email.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Email; +{ + $HTML::FormFu::Constraint::Email::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Equal.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Equal.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Equal.pm 2012-10-03 15:52:27.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Equal.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Equal; +{ + $HTML::FormFu::Constraint::Equal::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/MIME.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/MIME.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/MIME.pm 2012-10-03 15:52:23.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/MIME.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::File::MIME; +{ + $HTML::FormFu::Constraint::File::MIME::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/MaxSize.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/MaxSize.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/MaxSize.pm 2012-10-03 15:52:23.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/MaxSize.pm 2013-12-16 10:48:12.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::File::MaxSize; +{ + $HTML::FormFu::Constraint::File::MaxSize::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::File::Size'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/MinSize.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/MinSize.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/MinSize.pm 2012-10-03 15:52:24.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/MinSize.pm 2013-12-16 10:48:12.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::File::MinSize; +{ + $HTML::FormFu::Constraint::File::MinSize::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::File::Size'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/Size.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/Size.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File/Size.pm 2012-10-03 15:52:23.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File/Size.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::File::Size; +{ + $HTML::FormFu::Constraint::File::Size::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; use MooseX::Aliases; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/File.pm 2012-10-03 15:52:25.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/File.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::File; +{ + $HTML::FormFu::Constraint::File::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Integer.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Integer.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Integer.pm 2012-10-03 15:52:26.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Integer.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Integer; +{ + $HTML::FormFu::Constraint::Integer::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Regex'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Length.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Length.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Length.pm 2012-10-03 15:52:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Length.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Length; +{ + $HTML::FormFu::Constraint::Length::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; use MooseX::Aliases; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MaxLength.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MaxLength.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MaxLength.pm 2012-10-03 15:52:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MaxLength.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::MaxLength; +{ + $HTML::FormFu::Constraint::MaxLength::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Length'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MaxRange.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MaxRange.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MaxRange.pm 2012-10-03 15:52:24.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MaxRange.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::MaxRange; +{ + $HTML::FormFu::Constraint::MaxRange::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Range'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MinLength.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MinLength.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MinLength.pm 2012-10-03 15:52:25.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MinLength.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::MinLength; +{ + $HTML::FormFu::Constraint::MinLength::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Length'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MinMaxFields.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MinMaxFields.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MinMaxFields.pm 2012-10-03 15:52:27.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MinMaxFields.pm 2013-12-16 10:48:12.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::MinMaxFields; +{ + $HTML::FormFu::Constraint::MinMaxFields::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; use MooseX::Aliases; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MinRange.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MinRange.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/MinRange.pm 2012-10-03 15:52:27.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/MinRange.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::MinRange; +{ + $HTML::FormFu::Constraint::MinRange::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Range'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Number.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Number.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Number.pm 2012-10-03 15:52:26.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Number.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Number; +{ + $HTML::FormFu::Constraint::Number::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Printable.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Printable.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Printable.pm 2012-10-03 15:52:22.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Printable.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Printable; +{ + $HTML::FormFu::Constraint::Printable::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Regex'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Range.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Range.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Range.pm 2012-10-03 15:52:21.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Range.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Range; +{ + $HTML::FormFu::Constraint::Range::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; use MooseX::Aliases; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Regex.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Regex.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Regex.pm 2012-10-03 15:52:20.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Regex.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Regex; +{ + $HTML::FormFu::Constraint::Regex::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; @@ -6,8 +9,9 @@ use Regexp::Common; -has common => ( is => 'rw', traits => ['Chained'] ); -has regex => ( is => 'rw', traits => ['Chained'] ); +has common => ( is => 'rw', traits => ['Chained'] ); +has regex => ( is => 'rw', traits => ['Chained'] ); +has anchored => ( is => 'rw', traits => ['Chained'] ); sub constrain_value { my ( $self, $value ) = @_; @@ -36,6 +40,10 @@ $regex = qr/.*/; } + if ( $self->anchored ) { + $regex = qr{^$regex\z}; + } + my $ok = $value =~ $regex; return $self->not ? !$ok : $ok; @@ -78,6 +86,13 @@ - HTTP - { '-scheme': 'https?' } +=-head2 anchored + +Arguments: bool + +If true, uses C<^> and C<\z> to anchor the L or L +to the start and end of the submitted value. + =head1 SEE ALSO Is a sub-class of, and inherits methods from L diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Repeatable/Any.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Repeatable/Any.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Repeatable/Any.pm 2012-10-03 15:52:25.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Repeatable/Any.pm 2013-12-16 10:48:12.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Repeatable::Any; +{ + $HTML::FormFu::Constraint::Repeatable::Any::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; @@ -100,6 +103,12 @@ return defined $value && length $value; } +sub _localize_args { + my ($self) = @_; + + return $self->parent->label || $self->parent->original_name || $self->parent->name; +} + __PACKAGE__->meta->make_immutable; 1; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Required.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Required.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Required.pm 2012-10-03 15:52:24.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Required.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Required; +{ + $HTML::FormFu::Constraint::Required::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Set.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Set.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Set.pm 2012-10-03 15:52:25.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Set.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Set; +{ + $HTML::FormFu::Constraint::Set::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/SingleValue.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/SingleValue.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/SingleValue.pm 2012-10-03 15:52:21.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/SingleValue.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::SingleValue; +{ + $HTML::FormFu::Constraint::SingleValue::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Word.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Word.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/Word.pm 2012-10-03 15:52:21.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/Word.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint::Word; +{ + $HTML::FormFu::Constraint::Word::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Constraint::Regex'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/reCAPTCHA.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/reCAPTCHA.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint/reCAPTCHA.pm 2012-10-03 15:52:22.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint/reCAPTCHA.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ -package HTML::FormFu::Constraint::reCAPTCHA; - -use Moose; -extends 'HTML::FormFu::Constraint'; - -use Captcha::reCAPTCHA; -use Scalar::Util qw( blessed ); - -has _recaptcha_response => ( is => 'rw' ); - -sub process { - my ( $self, $params ) = @_; - - # check when condition - return unless $self->_process_when($params); - - # we need the original query object, as the recaptcha fields aren't - # real formfu fields, so they won't be in $params - my $query = $self->form->query; - - my $challenge = $query->param('recaptcha_challenge_field'); - my $response = $query->param('recaptcha_response_field'); - - # constraints are only run if submitted() is true. - # the recaptcha fields have an implicit Required constraint - # so throw an error if either field is missing - if ( !$challenge || !$response ) { - return $self->mk_errors( {} ); - } - - # check if it's already been run - as a 2nd check to recaptcha.net - # will otherwise always fail - my $previous_response = $self->_recaptcha_response; - - if ($previous_response) { - if ( $previous_response ne 'true' ) { - return $self->mk_errors( { message => $previous_response, } ); - } - else { - - # the previous response was OK, so return with no errors - return; - } - } - - my $catalyst_compatible - = blessed($query) - && $query->can('secure') - && $query->can('address'); - - my $captcha = Captcha::reCAPTCHA->new; - my $privkey = $self->parent->private_key || $ENV{RECAPTCHA_PRIVATE_KEY}; - - my $remoteip - = $catalyst_compatible - ? $query->address - : $ENV{REMOTE_ADDR}; - - my $result - = $captcha->check_answer( $privkey, $remoteip, $challenge, $response, ); - - # they're human! - if ( $result->{is_valid} ) { - $self->_recaptcha_response('true'); - return; - } - - # response failed - $self->_recaptcha_resonse( $result->{error} ); - - return $self->mk_errors( { message => $result->{error}, } ); -} - -__PACKAGE__->meta->make_immutable; - -1; - -__END__ - -=head1 NAME - -HTML::FormFu::Constraint::reCAPTCHA - not for direct use - -=head1 DESCRIPTION - -This constraint is automatically added by the -L, and should not be used -directly. - -=head1 SEE ALSO - -Is a sub-class of, and inherits methods from L - -L - -=head1 AUTHOR - -Carl Franks C - -=head1 LICENSE - -This library is free software, you can redistribute it and/or modify it under -the same terms as Perl itself. - -=cut diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Constraint.pm 2012-10-03 15:51:47.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Constraint.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Constraint; +{ + $HTML::FormFu::Constraint::VERSION = '1.00'; +} use strict; use base 'HTML::FormFu::Processor'; @@ -9,6 +12,7 @@ use HTML::FormFu::Exception::Constraint; use HTML::FormFu::Util qw( DEBUG_CONSTRAINTS + DEBUG_CONSTRAINTS_WHEN debug ); use Clone (); @@ -274,10 +278,10 @@ if defined $value; } - DEBUG_CONSTRAINTS && debug( 'WHEN_FIELDS_VALUES' => \@when_fields_value ); + DEBUG_CONSTRAINTS_WHEN && debug( 'WHEN_FIELDS_VALUES' => \@when_fields_value ); if ( !@when_fields_value ) { - DEBUG_CONSTRAINTS + DEBUG_CONSTRAINTS_WHEN && debug("No 'when' fields values exist - returning false"); return 0; } @@ -305,18 +309,30 @@ } } - DEBUG_CONSTRAINTS && debug( "'when' value matches" => \@ok ); + DEBUG_CONSTRAINTS_WHEN && debug( "'when' value matches" => \@ok ); my $return = $any ? any { $when->{not} ? !$_ : $_ } @ok : all { $when->{not} ? !$_ : $_ } @ok; - DEBUG_CONSTRAINTS && debug( "'when' return value" => $return ); + DEBUG_CONSTRAINTS_WHEN && debug( "'when' return value" => $return ); return $return; } +sub fetch_error_message { + my ( $self ) = @_; + + my $error = HTML::FormFu::Exception::Constraint->new({ + form => $self->form, + parent => $self->parent, + processor => $self, + }); + + return $error->message; +} + sub clone { my $self = shift; @@ -529,6 +545,22 @@ =back +=head1 EXPERIMENTAL METHODS + +=head2 fetch_error_message + +Return value: $string + +Attempt to return the error message that would be used if this constraint +generated an error. + +This will generally be correct for simple constraints with a fixed message or +which use a placeholder from a known value, such as +L. +This will generally C return the correct message for constraints which +use L, where the field with an +error is not known without actually fully processing a form submission. + =head1 CORE CONSTRAINTS =over @@ -583,8 +615,6 @@ =item L -=item L - =item L =item L @@ -597,6 +627,14 @@ =back +=head1 NON-CORE CONSTRAINTS AVAILABLE ON CPAN + +=over + +=item L + +=back + =head1 CAVEATS See L diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/Callback.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/Callback.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/Callback.pm 2012-10-03 15:52:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/Callback.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deflator::Callback; +{ + $HTML::FormFu::Deflator::Callback::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/CompoundDateTime.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/CompoundDateTime.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/CompoundDateTime.pm 2012-10-03 15:52:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/CompoundDateTime.pm 2013-12-16 10:48:12.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deflator::CompoundDateTime; +{ + $HTML::FormFu::Deflator::CompoundDateTime::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/CompoundSplit.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/CompoundSplit.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/CompoundSplit.pm 2012-10-03 15:52:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/CompoundSplit.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deflator::CompoundSplit; +{ + $HTML::FormFu::Deflator::CompoundSplit::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/FormatNumber.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/FormatNumber.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/FormatNumber.pm 2012-10-03 15:52:32.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/FormatNumber.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deflator::FormatNumber; +{ + $HTML::FormFu::Deflator::FormatNumber::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/PathClassFile.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/PathClassFile.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/PathClassFile.pm 2012-10-03 15:52:32.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/PathClassFile.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deflator::PathClassFile; +{ + $HTML::FormFu::Deflator::PathClassFile::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/Strftime.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/Strftime.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator/Strftime.pm 2012-10-03 15:52:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator/Strftime.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deflator::Strftime; +{ + $HTML::FormFu::Deflator::Strftime::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deflator.pm 2012-10-03 15:52:19.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deflator.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deflator; +{ + $HTML::FormFu::Deflator::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deploy.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deploy.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Deploy.pm 2012-10-03 15:52:18.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Deploy.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Deploy; +{ + $HTML::FormFu::Deploy::VERSION = '1.00'; +} use strict; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Blank.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Blank.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Blank.pm 2012-10-03 15:52:09.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Blank.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Blank; +{ + $HTML::FormFu::Element::Blank::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Block.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Block.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Block.pm 2012-10-03 15:52:18.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Block.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Block; +{ + $HTML::FormFu::Element::Block::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; @@ -8,7 +11,8 @@ 'HTML::FormFu::Role::GetProcessors', 'HTML::FormFu::Role::ContainsElements', 'HTML::FormFu::Role::ContainsElementsSharedWithField', - 'HTML::FormFu::Role::FormAndBlockMethods'; + 'HTML::FormFu::Role::FormAndBlockMethods', + 'HTML::FormFu::Role::FormBlockAndFieldMethods'; use HTML::FormFu::Constants qw( $EMPTY_STR ); use HTML::FormFu::Util qw( _get_elements xml_escape process_attrs ); @@ -30,14 +34,6 @@ __PACKAGE__->mk_output_accessors(qw( content )); -__PACKAGE__->mk_inherited_accessors( qw( - auto_id auto_label auto_error_class auto_error_message - auto_constraint_class auto_inflator_class auto_validator_class - auto_transformer_class render_processed_value force_errors - repeatable_count - locale -) ); - *elements = \&element; *constraints = \&constraint; *deflators = \&deflator; @@ -370,6 +366,10 @@ See L for details. +=head2 auto_datalist_id + +See L for details. + =head1 CSS CLASSES =head2 auto_id diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Button.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Button.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Button.pm 2012-10-03 15:52:13.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Button.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Button; +{ + $HTML::FormFu::Element::Button::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Checkbox.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Checkbox.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Checkbox.pm 2012-10-03 15:52:17.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Checkbox.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Checkbox; +{ + $HTML::FormFu::Element::Checkbox::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; @@ -40,6 +43,10 @@ ? $self->get_nested_hash_value( $form->input, $self->nested_name ) : undef; + if (defined $value and ref $value eq 'ARRAY') { + $value = $original if grep { $_ eq $original } @$value; + } + if ( $submitted && defined $value && defined $original diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Checkboxgroup.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Checkboxgroup.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Checkboxgroup.pm 2012-10-03 15:52:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Checkboxgroup.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Checkboxgroup; +{ + $HTML::FormFu::Element::Checkboxgroup::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; extends 'HTML::FormFu::Element'; @@ -68,6 +71,7 @@ my $id = $self->auto_id; $id =~ s/%([fn])/$string{$1}/g; $id =~ s/%c/ ++$$count_ref /gex; + $id =~ s/%v/ $option->{value} /gex; if ( defined( my $count = $self->repeatable_count ) ) { $id =~ s/%r/$count/g; @@ -266,7 +270,9 @@ In addition to the substitutions documented by L, C<%c> will be replaced by an incremented integer, to ensure there are -no duplicated ID's. +no duplicated ID's, and C<%v> will be replaced by the item's value to +allow multiple elements with the same name to coexist, and their labels +to correctly select the appropriate item. --- elements: diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/ComboBox.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/ComboBox.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/ComboBox.pm 2012-10-03 15:52:12.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/ComboBox.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::ComboBox; +{ + $HTML::FormFu::Element::ComboBox::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; extends 'HTML::FormFu::Element::Multi'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/ContentButton.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/ContentButton.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/ContentButton.pm 2012-10-03 15:52:10.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/ContentButton.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::ContentButton; +{ + $HTML::FormFu::Element::ContentButton::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Date.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Date.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Date.pm 2012-10-03 15:52:10.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Date.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Date; +{ + $HTML::FormFu::Element::Date::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/DateTime.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/DateTime.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/DateTime.pm 2012-10-03 15:52:16.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/DateTime.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::DateTime; +{ + $HTML::FormFu::Element::DateTime::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Email.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Email.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Email.pm 1970-01-01 00:00:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Email.pm 2013-12-16 10:48:11.000000000 +0000 @@ -0,0 +1,64 @@ +package HTML::FormFu::Element::Email; +{ + $HTML::FormFu::Element::Email::VERSION = '1.00'; +} +use Moose; + +extends 'HTML::FormFu::Element'; + +with 'HTML::FormFu::Role::Element::Input'; + +after BUILD => sub { + my $self = shift; + + $self->field_type('email'); + + $self->constraint('Email'); + + return; +}; + +__PACKAGE__->meta->make_immutable; + +1; + +__END__ + +=head1 NAME + +HTML::FormFu::Element::Email - HTML5 email form field + +=head1 SYNOPSIS + + my $element = $form->element( Email => 'foo' ); + + # no need to add a separate Constraint::Email + +=head1 DESCRIPTION + +HTML5 email form field which provides native client-side validation in modern browsers. + +Creates an input field with C<>. + +This element automatically adds an L, +so you don't have to. + +=head1 SEE ALSO + +Is a sub-class of, and inherits methods from +L, +L, +L. + +L + +=head1 AUTHOR + +Carl Franks, C + +=head1 LICENSE + +This library is free software, you can redistribute it and/or modify it under +the same terms as Perl itself. + +=cut diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Fieldset.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Fieldset.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Fieldset.pm 2012-10-03 15:52:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Fieldset.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Fieldset; +{ + $HTML::FormFu::Element::Fieldset::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Block'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/File.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/File.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/File.pm 2012-10-03 15:52:15.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/File.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::File; +{ + $HTML::FormFu::Element::File::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Hidden.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Hidden.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Hidden.pm 2012-10-03 15:52:17.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Hidden.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Hidden; +{ + $HTML::FormFu::Element::Hidden::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Hr.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Hr.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Hr.pm 2012-10-03 15:52:13.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Hr.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Hr; +{ + $HTML::FormFu::Element::Hr::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Image.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Image.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Image.pm 2012-10-03 15:52:09.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Image.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Image; +{ + $HTML::FormFu::Element::Image::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Button'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Label.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Label.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Label.pm 2012-10-03 15:52:14.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Label.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Label; +{ + $HTML::FormFu::Element::Label::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; @@ -12,8 +15,9 @@ use HTML::FormFu::Util qw( process_attrs ); use List::MoreUtils qw( none ); -has field_type => ( is => 'rw', traits => ['Chained'] ); -has label_filename => ( is => 'rw', traits => ['Chained'] ); +has field_type => ( is => 'rw', traits => ['Chained'] ); +has label_filename => ( is => 'rw', traits => ['Chained'] ); +has errors_filename => ( is => 'rw', traits => ['Chained'] ); has tag => ( is => 'rw', @@ -25,7 +29,8 @@ after BUILD => sub { my $self = shift; - $self->filename('label_tag'); + $self->filename('input'); + $self->field_filename('label_element'); $self->non_param(1); #$self->field_type('label'); diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Multi.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Multi.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Multi.pm 2012-10-03 15:52:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Multi.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Multi; +{ + $HTML::FormFu::Element::Multi::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Block'; @@ -161,24 +164,19 @@ next if !defined $render; - if ( $elem->can('_string_field') ) { - if ( $elem->reverse_multi ) { - $html .= $elem->_string_field($render); - - if ( defined $elem->label ) { - $html .= sprintf "\n%s", $elem->_string_label($render); - } - } - else { - if ( defined $elem->label ) { - $html .= $elem->_string_label($render) . "\n"; - } + if ( $elem->reverse_multi ) { + $html .= $elem->_string_field($render); - $html .= $elem->_string_field($render); + if ( defined $elem->label ) { + $html .= sprintf "\n%s", $elem->_string_label($render); } } else { - $html .= $elem->string( { render_data => $render } ); + if ( defined $elem->label ) { + $html .= $elem->_string_label($render) . "\n"; + } + + $html .= $elem->_string_field($render); } $html .= "\n"; @@ -223,7 +221,17 @@ Combine multiple form fields in a single logical element. -=head1 METHODS +Non-field elements cannot be added as children of the Multi element. + +=head1 RENDERING NOTES + +If the Multi element is rendered with the default 'string' render-method, +all child fields will be rendered with the 'string' render-method, regardless +of their L value. + +Likewise, if the Multi element is rendered with the 'tt' render-method, +all child fields will be rendered with the 'tt' render-method, regardless of +their L value. =head1 SEE ALSO diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Number.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Number.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Number.pm 2012-10-03 15:52:16.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Number.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Number; +{ + $HTML::FormFu::Element::Number::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Text'; @@ -6,8 +9,6 @@ after BUILD => sub { my $self = shift; - $self->field_type('number'); - $self->deflator('FormatNumber'); $self->filter('FormatNumber'); @@ -68,6 +69,14 @@ If this is set to C<1> the number has trailing zeroes. Defaults to C<0>. +=head2 CHANGED BEHAVIOUR AS OF VERSION 0.09011 + +Previous to version 0.09011, this element generated an input field with +C attribute which was not valid xhtml. +Neither was the formatted numbers valid html5 - which expects the value to +be a floating-point number. +This element now generates a C attribute. + =head1 SEE ALSO L diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Password.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Password.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Password.pm 2012-10-03 15:52:09.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Password.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Password; +{ + $HTML::FormFu::Element::Password::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Radio.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Radio.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Radio.pm 2012-10-03 15:52:08.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Radio.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Radio; +{ + $HTML::FormFu::Element::Radio::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Checkbox'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Radiogroup.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Radiogroup.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Radiogroup.pm 2012-10-03 15:52:14.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Radiogroup.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Radiogroup; +{ + $HTML::FormFu::Element::Radiogroup::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; extends 'HTML::FormFu::Element::Checkboxgroup'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Repeatable.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Repeatable.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Repeatable.pm 2012-10-03 15:52:14.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Repeatable.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Repeatable; +{ + $HTML::FormFu::Element::Repeatable::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; @@ -449,6 +452,10 @@ Only available after L has been called. +=head2 repeatable_count_no_inherit + +A non-inheriting variant of L. + =head2 nested_name If the L attribute is set, the naming scheme of the Repeatable diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Reset.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Reset.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Reset.pm 2012-10-03 15:52:09.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Reset.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Reset; +{ + $HTML::FormFu::Element::Reset::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Button'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Select.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Select.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Select.pm 2012-10-03 15:52:13.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Select.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Select; +{ + $HTML::FormFu::Element::Select::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/SimpleTable.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/SimpleTable.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/SimpleTable.pm 2012-10-03 15:52:15.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/SimpleTable.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::SimpleTable; +{ + $HTML::FormFu::Element::SimpleTable::VERSION = '1.00'; +} use Moose; use MooseX::Attribute::Chained; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Src.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Src.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Src.pm 2012-10-03 15:52:15.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Src.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Src; +{ + $HTML::FormFu::Element::Src::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Block'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Submit.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Submit.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Submit.pm 2012-10-03 15:52:16.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Submit.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Submit; +{ + $HTML::FormFu::Element::Submit::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element::Button'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Text.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Text.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Text.pm 2012-10-03 15:52:13.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Text.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Text; +{ + $HTML::FormFu::Element::Text::VERSION = '1.00'; +} use Moose; extends 'HTML::FormFu::Element'; diff -Nru libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Textarea.pm libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Textarea.pm --- libhtml-formfu-perl-0.09010/lib/HTML/FormFu/Element/Textarea.pm 2012-10-03 15:52:15.000000000 +0000 +++ libhtml-formfu-perl-1.00000/lib/HTML/FormFu/Element/Textarea.pm 2013-12-16 10:48:11.000000000 +0000 @@ -1,4 +1,7 @@ package HTML::FormFu::Element::Textarea; +{ + $HTML::FormFu::Element::Textarea::VERSION = '1.00'; +} use Moose; extends "HTML::FormFu::Element"; @@ -9,7 +12,13 @@ use HTML::FormFu::Util qw( process_attrs ); -__PACKAGE__->mk_attr_accessors(qw( cols rows placeholder )); +__PACKAGE__->mk_attr_accessors(qw( + autocomplete + cols + maxlength + rows + placeholder +)); after BUILD => sub { my $self = shift; @@ -52,17 +61,10 @@ # textarea_tag template - my $html .= "{nested_name}; - - if ( defined $self->placeholder ) { - $html .= sprintf qq{ placeholder="%s"}, $self->placeholder; - } - - $html .= process_attrs( $render->{attributes} ); - - $html .= '>'; + my $html = sprintf qq{! ); -} - -# make sure XML of the result object has empty values, not defaults - -{ - $form->process( { my_hidden => '', } ); - - like( $form->get_field('my_checkbox1'), qr/value="1"/ ); - unlike( $form->get_field('my_checkbox1'), qr/"checked"/ ); - - like( $form->get_field('my_checkbox2'), qr/value="0"/ ); - unlike( $form->get_field('my_checkbox2'), qr/"checked"/ ); - - like( $form->get_field('my_contentbutton'), qr/value=""/ ); - like( $form->get_field('my_hidden'), qr/value=""/ ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/bugs/yaml_utf8.t libhtml-formfu-perl-1.00000/t/bugs/yaml_utf8.t --- libhtml-formfu-perl-0.09010/t/bugs/yaml_utf8.t 2012-10-03 15:55:13.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/bugs/yaml_utf8.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -use strict; -use warnings; -use Encode 'encode'; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new->load_config_file('t/bugs/yaml_utf8.yml'); - -open my $fh, '<:encoding(UTF-8)', 't/bugs/yaml_utf8.txt' - or die $!; - -my $text = do { local $/; <$fh> }; -chomp $text; - -is( $form->get_field('foo')->label, $text ); - diff -Nru libhtml-formfu-perl-0.09010/t/bugs/yaml_utf8.txt libhtml-formfu-perl-1.00000/t/bugs/yaml_utf8.txt --- libhtml-formfu-perl-0.09010/t/bugs/yaml_utf8.txt 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/bugs/yaml_utf8.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fü \ No newline at end of file diff -Nru libhtml-formfu-perl-0.09010/t/bugs/yaml_utf8.yml libhtml-formfu-perl-1.00000/t/bugs/yaml_utf8.yml --- libhtml-formfu-perl-0.09010/t/bugs/yaml_utf8.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/bugs/yaml_utf8.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ ---- -elements: - - name: foo - label: fü diff -Nru libhtml-formfu-perl-0.09010/t/constraints/allornone.t libhtml-formfu-perl-1.00000/t/constraints/allornone.t --- libhtml-formfu-perl-0.09010/t/constraints/allornone.t 2012-10-03 15:55:57.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/allornone.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; - -use HTML::FormFu; - -my $form = HTML::FormFu->new->indicator( sub {1} ); - -$form->element('Text')->name('foo')->constraint('AllOrNone') - ->others( [qw/ bar baz bif /] ); - -$form->element('Text')->name('bar'); -$form->element('Text')->name('baz'); -$form->element('Text')->name('bif'); - -# Valid -{ - $form->process( { - foo => 1, - bar => 'a', - baz => [2], - bif => [ 3, 4 ], - } ); - - ok( !$form->has_errors ); -} - -# Valid -{ - $form->process( {} ); - - ok( !$form->has_errors ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => '', - baz => [2], - bif => [ 3, 4 ], - } ); - - ok( $form->has_errors ); - - ok( $form->valid('foo') ); - ok( $form->has_errors('bar') ); - ok( $form->valid('baz') ); - ok( $form->valid('bif') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_base.t libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_base.t --- libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_base.t 2012-10-03 15:55:56.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_base.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/allornone_attach_errors_to_base.yml'); - -# Valid -{ - $form->process( { - foo => 'a', - bar => 'b', - } ); - - ok( $form->submitted_and_valid ); -} - -# Invalid -{ - $form->process( { - foo => '', - bar => 'b', - } ); - - ok( !$form->submitted_and_valid ); - - ok( !$form->has_errors('foo') ); - ok( $form->has_errors('bar') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_base.yml libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_base.yml --- libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_base.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_base.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -elements: - - name: foo - - - name: bar - constraints: - - type: AllOrNone - others: foo - attach_errors_to_base: 1 - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_others.t libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_others.t --- libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_others.t 2012-10-03 15:56:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_others.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/allornone_attach_errors_to_others.yml'); - -# Valid -{ - $form->process( { - foo => 'a', - bar => 'b', - } ); - - ok( $form->submitted_and_valid ); -} - -# Invalid -{ - $form->process( { - foo => '', - bar => 'b', - } ); - - ok( !$form->submitted_and_valid ); - - ok( $form->has_errors('foo') ); - ok( !$form->has_errors('bar') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_others.yml libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_others.yml --- libhtml-formfu-perl-0.09010/t/constraints/allornone_attach_errors_to_others.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/allornone_attach_errors_to_others.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -elements: - - name: foo - - - name: bar - constraints: - - type: AllOrNone - others: foo - attach_errors_to_others: - - foo diff -Nru libhtml-formfu-perl-0.09010/t/constraints/ascii.t libhtml-formfu-perl-1.00000/t/constraints/ascii.t --- libhtml-formfu-perl-0.09010/t/constraints/ascii.t 2012-10-03 15:55:59.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/ascii.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('ASCII'); - -# Valid -{ - $form->process( { - foo => 'aaa', - bar => 'bbbbbbb', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'aaa', - bar => '日本語', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/autoset.t libhtml-formfu-perl-1.00000/t/constraints/autoset.t --- libhtml-formfu-perl-0.09010/t/constraints/autoset.t 2012-10-03 15:56:07.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/autoset.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 5; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -# Autoset with multiple values - -$form->element('Select')->name('foo')->values( [qw/ one two three /] ) - ->constraint('AutoSet'); - -# Valid -{ - $form->process( { foo => 'two', } ); - - # Constraint set has 3 values - is_deeply( $form->get_constraint->set, [qw/ one two three /] ); - - ok( $form->valid('foo') ); -} - -# Invalid -{ - $form->process( { foo => 'yes', } ); - - ok( $form->has_errors('foo') ); -} - -# Autoset with a single value - -$form->element('Select')->name('bar')->values( [qw/ one /] ) - ->constraint('AutoSet'); - -# Valid -{ - $form->process( { bar => 'one', } ); - - ok( $form->valid('bar') ); -} - -# Invalid -{ - $form->process( { bar => 'yes', } ); - - ok( $form->has_errors('bar') ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/autoset_group.t libhtml-formfu-perl-1.00000/t/constraints/autoset_group.t --- libhtml-formfu-perl-0.09010/t/constraints/autoset_group.t 2012-10-03 15:56:06.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/autoset_group.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -# Autoset on Select with optgroups - -my $field = $form->element('Select')->name('foo'); - -$field->options( [ - ['item 1'], - { value => 'item 2', }, - { group => [ ['item 3'], { value => 'item 4', } ], }, - ['item 5'], - { group => [ { value => 'item 6', }, ['item 7'], ], }, - ] ); - -$field->constraint('AutoSet'); - -# Valid -{ - $form->process( { foo => 'item 6', } ); - - # Constraint set has 7 values - is_deeply( - $form->get_constraint->set, - [ 'item 1', 'item 2', 'item 3', 'item 4', 'item 5', 'item 6', 'item 7' - ], - ); - - ok( $form->valid('foo') ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/bool.t libhtml-formfu-perl-1.00000/t/constraints/bool.t --- libhtml-formfu-perl-0.09010/t/constraints/bool.t 2012-10-03 15:55:55.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/bool.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Bool'); - -# Valid -{ - $form->process( { - foo => 1, - bar => 0, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => '01', - bar => 'a', - } ); - - ok( !$form->valid('foo'), 'foo not valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/callback.t libhtml-formfu-perl-1.00000/t/constraints/callback.t --- libhtml-formfu-perl-0.09010/t/constraints/callback.t 2012-10-03 15:56:07.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/callback.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -use strict; -use warnings; - -package CB; -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Callback')->callback( \&cb ); -$form->element('Text')->name('bar')->constraint('Callback')->callback("CB::cb"); - -sub cb { - my $value = shift; - ::ok(1) if grep { $value eq $_ ? 1 : 0 } qw/ 1 0 a /; - return 1; -} - -package main; - -use Test::More tests => 5; - -# Valid -{ - $form->process( { - foo => 1, - bar => [ 0, 'a', 'b' ], - } ); - - ::ok( $form->valid('foo'), 'foo valid' ); - ::ok( $form->valid('bar'), 'bar valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/callbackonce.t libhtml-formfu-perl-1.00000/t/constraints/callbackonce.t --- libhtml-formfu-perl-0.09010/t/constraints/callbackonce.t 2012-10-03 15:55:57.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/callbackonce.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('CallbackOnce')->callback( - sub { - is_deeply( \@_, [ 1, { foo => 1, bar => [ 0, 'a' ] } ] ); - return 1; - } ); - -$form->element('Text')->name('bar')->constraint('CallbackOnce')->callback( - sub { - is_deeply( \@_, [ [ 0, 'a' ], { foo => 1, bar => [ 0, 'a' ] } ] ); - return 1; - } ); - -# Valid -{ - $form->process( { - foo => 1, - bar => [ 0, 'a' ], - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint.t libhtml-formfu-perl-1.00000/t/constraints/constraint.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint.t 2012-10-03 15:56:08.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,131 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 40; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -my @c1 = $form->constraint( { - type => 'Number', - names => [qw/ foo bar /], - } ); - -is( $c1[0]->name, 'foo' ); -is( $c1[0]->type, 'Number' ); - -is( $c1[1]->name, 'bar' ); -is( $c1[1]->type, 'Number' ); - -{ - my @a = $form->constraint( [ { - type => 'Regex', - names => [qw/ foo bar /], - }, - { type => 'Required', - names => 'bar', - }, - ] ); - - is( $a[0]->name, 'foo' ); - is( $a[0]->type, 'Regex' ); - - is( $a[1]->name, 'bar' ); - is( $a[1]->type, 'Regex' ); - - is( $a[2]->name, 'bar' ); - is( $a[2]->type, 'Required' ); -} - -# $element->constraint -my $ec_element = $form->element('Text')->name('ec'); - -$ec_element->constraint('Regex')->regex(qr/^\d+$/); - -# Valid -{ - $form->process( { - foo => 1, - bar => 2, - ec => 3, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('ec'), 'ec valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( grep { $_ eq 'ec' } $form->valid ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => 'baz', - ec => 'a', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); - ok( !$form->valid('ec'), 'ec not valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( !grep { $_ eq 'bar' } $form->valid ); - ok( !grep { $_ eq 'ec' } $form->valid ); -} - -# Empty string Valid -{ - $form->process( { - foo => '', - bar => 2, - ec => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('ec'), 'ec not valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( grep { $_ eq 'ec' } $form->valid ); -} - -# Missing Invalid -{ - $form->process( { - foo => '', - bar => 2, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( !$form->valid('ec'), 'ec not valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( !grep { $_ eq 'ec' } $form->valid ); -} - -# zero "0" Valid -{ - $form->process( { - foo => 0, - bar => 1, - ec => 0, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('ec'), 'ec valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( grep { $_ eq 'ec' } $form->valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings.t libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings.t 2012-10-03 15:56:06.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; - -use HTML::FormFu; - -my $form = HTML::FormFu->new->indicator( sub {1} ); - -$form->load_config_file('t/constraints/constraint_other_siblings.yml'); - -# Valid -{ - $form->process( { - foo => 1, - bar => 'a', - baz => [2], - bif => [ 3, 4 ], - } ); - - ok( !$form->has_errors ); -} - -# Valid -{ - $form->process( {} ); - - ok( !$form->has_errors ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => '', - baz => [2], - bif => [ 3, 4 ], - } ); - - ok( $form->has_errors ); - - ok( $form->valid('foo') ); - ok( $form->has_errors('bar') ); - ok( $form->valid('baz') ); - ok( $form->valid('bif') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings.yml libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings.yml --- libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- -elements: - - name: foo - constraints: - - type: AllOrNone - other_siblings: 1 - - - name: bar - - - name: baz - - - name: bif diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings_not.t libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings_not.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings_not.t 2012-10-03 15:55:58.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings_not.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 24; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/constraint_other_siblings_not.yml'); - -# Valid -{ - $form->process( { - foo => 'yada', - bar => 'boba', - baz => 'sith', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('bar'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => '', - bar => '', - baz => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => '', - bar => 'yada', - baz => 'boba', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => 'yada', - bar => '', - baz => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => '', - bar => 'yada', - baz => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yada', - bar => 'yada', - baz => 'x', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yada', - bar => 'x', - baz => 'yada', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( !$form->valid('baz'), 'baz not valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yada', - bar => 'yada', - baz => 'yada', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); - ok( !$form->valid('baz'), 'baz not valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings_not.yml libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings_not.yml --- libhtml-formfu-perl-0.09010/t/constraints/constraint_other_siblings_not.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_other_siblings_not.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- -elements: - - name: foo - constraints: - - type: Equal - other_siblings: 1 - not: 1 - - - name: bar - - - name: baz diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when.t libhtml-formfu-perl-1.00000/t/constraints/constraint_when.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when.t 2012-10-03 15:56:10.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,144 +0,0 @@ -use strict; -use warnings; - -package CB; - -# Just to test we can provide strings as callbacks -# used by "coo2" field -sub when_string_callback { return 1 } - -package main; - -use Test::More tests => 49; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/constraint_when.yml'); - -# When triggered depending on callback -my $when_closure = sub { - my $params = shift; - return 1 if defined $params->{foo} && $params->{foo} eq '1'; -}; - -$form->get_element('coo') - ->get_constraint->when( { callback => $when_closure } ); - -# Valid -{ - $form->process( { - foo => 1, - bar => 'bar_value', - moo => undef, - zoo => 'zoo_value', - coo => 4, - coo2 => 5, - } ); - - # if 'moo' does not *exist* in process params - # it wouldn't be valid - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('moo'), 'moo valid' ); - ok( $form->valid('zoo'), 'zoo valid' ); - ok( $form->valid('coo'), 'coo valid' ); - ok( $form->valid('coo2'), 'coo2 valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( grep { $_ eq 'moo' } $form->valid ); - ok( grep { $_ eq 'zoo' } $form->valid ); - ok( grep { $_ eq 'coo' } $form->valid ); - ok( grep { $_ eq 'coo2' } $form->valid ); - - $form->process( { - foo => 2, - bar => undef, - moo => 'moo_value', - zoo => 'zoo_value', - coo => 'not_a_number', - } ); - - # if 'bar' does not *exist* in process params - # it wouldn't be valid - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('moo'), 'moo valid' ); - ok( $form->valid('zoo'), 'zoo valid' ); - ok( $form->valid('coo'), 'coo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( grep { $_ eq 'moo' } $form->valid ); - ok( grep { $_ eq 'zoo' } $form->valid ); - ok( grep { $_ eq 'coo' } $form->valid ); - - $form->process( { - foo => 5, - bar => undef, - moo => undef, - zoo => undef, - coo => undef, - } ); - - # if 'bar' does not *exist* in process params - # it wouldn't be valid - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('moo'), 'moo valid' ); - ok( $form->valid('zoo'), 'zoo valid' ); - ok( $form->valid('coo'), 'coo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( grep { $_ eq 'moo' } $form->valid ); - ok( grep { $_ eq 'zoo' } $form->valid ); - ok( grep { $_ eq 'coo' } $form->valid ); -} - -# Invalid -{ - $form->process( { - foo => 1, - moo => undef, - coo => 'not_a_number', - } ); - - ok( $form->has_errors ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); - ok( $form->valid('moo'), 'moo valid' ); - ok( !$form->valid('zoo'), 'zoo not valid' ); - ok( !$form->valid('coo'), 'coo not valid' ); - - $form->process( { - foo => 'false value', - bar => undef, - moo => undef, - zoo => 'zoo_value', - coo => 'not_a_number', - } ); - - # if 'bar' and 'moo' does not *exist* in process params - # it wouldn't be valid - - ok( $form->has_errors ); - - ok( !$form->valid('foo'), 'foo not valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('moo'), 'moo valid' ); - ok( $form->valid('zoo'), 'zoo valid' ); - ok( $form->valid('coo'), 'coo valid' ); - - ok( !grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); - ok( grep { $_ eq 'moo' } $form->valid ); - ok( grep { $_ eq 'zoo' } $form->valid ); - ok( grep { $_ eq 'coo' } $form->valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when.yml libhtml-formfu-perl-1.00000/t/constraints/constraint_when.yml --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when.yml 2011-09-12 13:38:58.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ ---- -elements: - - name: foo - constraints: - - type: Integer - - - name: bar - constraints: - - type: Required - when: - field: foo - value: 1 - - - name: moo - constraints: - type: Required - when: - field: foo - values: [2,3,4] - - - name: zoo - constraints: - - type: Required - when: - field: foo - value: 5 - not: 1 - - - name: coo - constraints: - - type: Number - - - name: coo2 - constraints: - - type: Integer - when: - callback: 'CB::when_string_callback' diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_field.t libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_field.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_field.t 2012-10-03 15:55:56.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_field.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ -use strict; -use warnings; - -use Test::More 'no_plan'; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/constraint_when_any_field.yml'); - -#$ENV{HTML_FORMFU_DEBUG_PROCESS} = 1; - -# Valid -{ - $form->process( { - a => '', - b => '', - c => '', - d => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Valid -{ - $form->process( { - a => '1', - b => '', - c => '', - d => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Valid -{ - $form->process( { - a => '', - b => '1', - c => '', - d => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Valid -{ - $form->process( { - a => '', - b => '', - c => '1', - d => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Valid -{ - $form->process( { - a => '', - b => '', - c => '', - d => '1', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Valid -{ - $form->process( { - a => '1', - b => '1', - c => '', - d => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Valid -{ - $form->process( { - a => '', - b => '1', - c => '1', - d => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Invalid -{ - $form->process( { - a => '1', - b => '1', - c => '1', - d => '', - } ); - - ok( !$form->submitted_and_valid ); - - ok( !$form->valid('a'), 'a not valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Invalid -{ - $form->process( { - a => '', - b => '1', - c => '1', - d => '1', - } ); - - ok( !$form->submitted_and_valid ); - - ok( !$form->valid('a'), 'a not valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} - -# Invalid -{ - $form->process( { - a => '1', - b => '1', - c => '1', - d => '1', - } ); - - ok( !$form->submitted_and_valid ); - - ok( !$form->valid('a'), 'a not valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); - ok( $form->valid('d'), 'd valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_field.yml libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_field.yml --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_field.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_field.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ ---- -elements: - - name: a - constraints: - - type: MinMaxFields - min: 1 - max: 2 - others: - - 'b' - - 'c' - - 'd' - when: - any_field: - - 'a' - - 'b' - - 'c' - - 'd' - - - name: b - - - name: c - - - name: d diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_true_value.t libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_true_value.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_true_value.t 2012-10-03 15:56:08.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_true_value.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 9; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/constraint_when_any_true_value.yml'); - -# Valid -{ - $form->process( { - foo => 'a', - bar => 'b', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# valid -{ - $form->process( { - foo => '', - bar => 'b', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'a', - bar => '', - } ); - - ok( $form->has_errors ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_true_value.yml libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_true_value.yml --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_any_true_value.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_any_true_value.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ ---- -elements: - - name: foo - - - name: bar - constraints: - - type: Required - when: - field: foo diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_default_empty_value.t libhtml-formfu-perl-1.00000/t/constraints/constraint_when_default_empty_value.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_default_empty_value.t 2012-10-03 15:56:02.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_default_empty_value.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 8; -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file( - 't/constraints/constraint_when_default_empty_value.yml'); - -# valid - foo Checkbox missing - bar is required -{ - $form->process( { bar => '42', } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('bar'), 42 ); -} - -# valid - foo Checkbox present - bar optional -{ - $form->process( { foo => '1', } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('foo'), 1 ); -} - -# valid - foo Checkbox present - bar optional -{ - $form->process( { - foo => '1', - bar => '42', - } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('foo'), 1 ); - is( $form->param_value('bar'), 42 ); -} - -# invalid - foo Checkbox missing - bar required -{ - $form->process( { bar => '', } ); - - ok( !$form->submitted_and_valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_default_empty_value.yml libhtml-formfu-perl-1.00000/t/constraints/constraint_when_default_empty_value.yml --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_default_empty_value.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_default_empty_value.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- -elements: - - name: foo - type: Checkbox - default_empty_value: 1 - - - name: bar - constraints: - - type: Required - when: - field: foo - value: 1 - not: 1 diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_fields.t libhtml-formfu-perl-1.00000/t/constraints/constraint_when_fields.t --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_fields.t 2012-10-03 15:56:02.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_fields.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,124 +0,0 @@ -use strict; -use warnings; - -use Test::More 'no_plan'; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/constraint_when_fields.yml'); - -# Valid -{ - $form->process( { - a => '', - b => '', - c => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); -} - -# Valid -{ - $form->process( { - a => '1', - b => '', - c => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); -} - -# Valid -{ - - # Bool constraint doesn't run because b & c don't both have values - - $form->process( { - a => 'a', - b => '', - c => '', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); -} - -# Valid -{ - - # Bool constraint doesn't run because b & c don't both have values - - $form->process( { - a => 'a', - b => '', - c => '1', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); -} - -# Valid -{ - $form->process( { - a => '1', - b => '1', - c => '1', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); -} - -# Valid -{ - - # Empty is valid - - $form->process( { - a => '', - b => '1', - c => '1', - } ); - - ok( $form->submitted_and_valid ); - - ok( $form->valid('a'), 'a valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); -} - -# Invalid -{ - $form->process( { - a => 'a', - b => '1', - c => '1', - } ); - - ok( !$form->submitted_and_valid ); - - ok( !$form->valid('a'), 'a not valid' ); - ok( $form->valid('b'), 'b valid' ); - ok( $form->valid('c'), 'c valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/constraint_when_fields.yml libhtml-formfu-perl-1.00000/t/constraints/constraint_when_fields.yml --- libhtml-formfu-perl-0.09010/t/constraints/constraint_when_fields.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/constraint_when_fields.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- -elements: - - name: a - constraints: - - type: Bool - when: - fields: - - 'b' - - 'c' - - - name: b - - - name: c diff -Nru libhtml-formfu-perl-0.09010/t/constraints/datetime_parser.t libhtml-formfu-perl-1.00000/t/constraints/datetime_parser.t --- libhtml-formfu-perl-0.09010/t/constraints/datetime_parser.t 2012-10-03 15:56:05.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/datetime_parser.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -my $foo = $form->element('Text')->name('foo'); - -$foo->constraint('DateTime')->parser( { strptime => '%d/%m/%Y' } ); - -# valid -{ - $form->process( { foo => '31/12/2006' } ); - - ok( $form->submitted_and_valid ); - - is( $form->params->{foo}, '31/12/2006' ); -} - -# invalid -{ - $form->process( { foo => '12/31/2006' } ); - - ok( !$form->submitted_and_valid ); - - ok( $form->has_errors('foo') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/dependon.t libhtml-formfu-perl-1.00000/t/constraints/dependon.t --- libhtml-formfu-perl-0.09010/t/constraints/dependon.t 2012-10-03 15:56:05.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/dependon.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('DependOn') - ->others( [qw/ bar baz /] ); -$form->element('Text')->name('bar'); -$form->element('Text')->name('baz'); - -# Valid -{ - $form->process( { - foo => 1, - bar => 'a', - baz => [2], - } ); - - ok( !$form->has_errors ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => '', - baz => 2, - } ); - - ok( $form->valid('foo') ); - ok( $form->has_errors('bar') ); - ok( $form->valid('baz') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_base.t libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_base.t --- libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_base.t 2012-10-03 15:55:56.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_base.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/dependon_attach_errors_to_base.yml'); - -# Valid -{ - $form->process( { - foo => 'a', - bar => 'b', - } ); - - ok( $form->submitted_and_valid ); -} - -# Invalid -{ - $form->process( { - foo => '', - bar => 'b', - } ); - - ok( !$form->submitted_and_valid ); - - ok( !$form->has_errors('foo') ); - ok( $form->has_errors('bar') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_base.yml libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_base.yml --- libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_base.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_base.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -elements: - - name: foo - - - name: bar - constraints: - - type: DependOn - others: foo - attach_errors_to_base: 1 - \ No newline at end of file diff -Nru libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_others.t libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_others.t --- libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_others.t 2012-10-03 15:55:57.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_others.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/dependon_attach_errors_to_others.yml'); - -# Valid -{ - $form->process( { - foo => 'a', - bar => 'b', - } ); - - ok( $form->submitted_and_valid ); -} - -# Invalid -{ - $form->process( { - foo => '', - bar => 'b', - } ); - - ok( !$form->submitted_and_valid ); - - ok( $form->has_errors('foo') ); - ok( !$form->has_errors('bar') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_others.yml libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_others.yml --- libhtml-formfu-perl-0.09010/t/constraints/dependon_attach_errors_to_others.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/dependon_attach_errors_to_others.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -elements: - - name: foo - - - name: bar - constraints: - - type: DependOn - others: foo - attach_errors_to_others: - - foo diff -Nru libhtml-formfu-perl-0.09010/t/constraints/email.t libhtml-formfu-perl-1.00000/t/constraints/email.t --- libhtml-formfu-perl-0.09010/t/constraints/email.t 2012-10-03 15:56:10.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/email.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Email'); - -# Valid -{ - $form->process( { foo => 'cfranks@cpan.org', } ); - - ok( $form->valid('foo'), 'foo valid' ); -} - -# Invalid -{ - $form->process( { foo => 'cfranks@cpan', } ); - - ok( $form->has_errors('foo'), 'foo has errors' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/equal.t libhtml-formfu-perl-1.00000/t/constraints/equal.t --- libhtml-formfu-perl-0.09010/t/constraints/equal.t 2012-10-03 15:56:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/equal.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 21; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Equal') - ->others( [ 'bar', 'baz' ] ); -$form->element('Text')->name('bar'); -$form->element('Text')->name('baz'); - -# Valid -{ - $form->process( { - foo => 'yada', - bar => 'yada', - baz => 'yada', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => '', - bar => '', - baz => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => [ 'a', 'b' ], - bar => [ 'a', 'b' ], - baz => [ 'b', 'a' ], - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yada', - bar => 'yada', - baz => 'x', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( !$form->valid('baz'), 'baz not valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yada', - bar => 'yada', - baz => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( !$form->valid('baz'), 'baz not valid' ); -} - -# Invalid -{ - $form->process( { - foo => '', - bar => 'yada', - baz => 'yada', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); - ok( !$form->valid('baz'), 'baz not valid' ); -} - -# Invalid -{ - $form->process( { - foo => [ 'a', 'b' ], - bar => [ 'a', 'b' ], - baz => ['a'], - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( !$form->valid('baz'), 'baz not valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/equal_internals.t libhtml-formfu-perl-1.00000/t/constraints/equal_internals.t --- libhtml-formfu-perl-0.09010/t/constraints/equal_internals.t 2012-10-03 15:55:59.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/equal_internals.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 5; - -use HTML::FormFu::Constraint::Equal; - -ok( HTML::FormFu::Constraint::Equal::_values_eq( '1', '1' ) ); -ok( HTML::FormFu::Constraint::Equal::_values_eq( ' ', ' ' ) ); -ok( HTML::FormFu::Constraint::Equal::_values_eq( 'aa', 'aa' ) ); -ok( HTML::FormFu::Constraint::Equal::_values_eq( ['x'], ['x'] ) ); -ok( HTML::FormFu::Constraint::Equal::_values_eq( [ 'a', 'b' ], [ 'b', 'a' ] ) ); diff -Nru libhtml-formfu-perl-0.09010/t/constraints/equal_not.t libhtml-formfu-perl-1.00000/t/constraints/equal_not.t --- libhtml-formfu-perl-0.09010/t/constraints/equal_not.t 2012-10-03 15:55:58.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/equal_not.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 15; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Equal') - ->others( [ 'bar', 'baz' ] )->not(1); - -$form->element('Text')->name('bar'); -$form->element('Text')->name('baz'); - -# Valid -{ - $form->process( { - foo => 'yada', - bar => 'boba', - baz => 'sith', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('bar'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => '', - bar => '', - baz => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => '', - bar => 'yada', - baz => 'boba', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Valid -{ - $form->process( { - foo => '', - bar => 'yada', - baz => '', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yada', - bar => 'yada', - baz => 'x', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); - ok( $form->valid('baz'), 'baz valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file.t libhtml-formfu-perl-1.00000/t/constraints/file.t --- libhtml-formfu-perl-0.09010/t/constraints/file.t 2012-10-03 15:56:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -use strict; -use warnings; - -use Test::More; -use HTML::FormFu; - -eval "use CGI"; -if ($@) { - plan skip_all => 'CGI required'; - exit; -} - -plan tests => 10; - -# Copied from CGI.pm - http://search.cpan.org/perldoc?CGI - -%ENV = ( - %ENV, - 'SCRIPT_NAME' => '/test.cgi', - 'SERVER_NAME' => 'perl.org', - 'HTTP_CONNECTION' => 'TE, close', - 'REQUEST_METHOD' => 'POST', - 'SCRIPT_URI' => 'http://www.perl.org/test.cgi', - 'SCRIPT_FILENAME' => '/home/usr/test.cgi', - 'SERVER_SOFTWARE' => 'Apache/1.3.27 (Unix) ', - 'HTTP_TE' => 'deflate,gzip;q=0.3', - 'QUERY_STRING' => '', - 'REMOTE_PORT' => '1855', - 'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)', - 'SERVER_PORT' => '80', - 'REMOTE_ADDR' => '127.0.0.1', - 'CONTENT_TYPE' => 'multipart/form-data; boundary=xYzZY', - 'SERVER_PROTOCOL' => 'HTTP/1.1', - 'PATH' => '/usr/local/bin:/usr/bin:/bin', - 'REQUEST_URI' => '/test.cgi', - 'GATEWAY_INTERFACE' => 'CGI/1.1', - 'SCRIPT_URL' => '/test.cgi', - 'SERVER_ADDR' => '127.0.0.1', - 'DOCUMENT_ROOT' => '/home/develop', - 'HTTP_HOST' => 'www.perl.org' -); - -my $q; - -{ - my $file = 't/elements/file_post.txt'; - local *STDIN; - open STDIN, - "<", $file - or die "missing test file $file"; - binmode STDIN; - $q = CGI->new; -} - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/file.yml'); - -$form->process($q); - -{ - ok( $form->submitted ); - - ok( !$form->has_errors('hello_world') ); - ok( !$form->has_errors('does_not_exist_gif') ); - - ok( $form->valid('hello_world') ); - ok( $form->valid('does_not_exist_gif') ); -} - -$form->process( { hello_world => 'not a file', } ); - -{ - ok( $form->submitted ); - - ok( $form->has_errors('hello_world') ); - ok( !$form->has_errors('does_not_exist_gif') ); - - ok( !$form->valid('hello_world') ); - ok( !$form->valid('does_not_exist_gif') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file.yml libhtml-formfu-perl-1.00000/t/constraints/file.yml --- libhtml-formfu-perl-0.09010/t/constraints/file.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- -action: 'http://www.perl.org/test.cgi' - -elements: - - type: File - name: hello_world - - - type: File - name: does_not_exist_gif - -constraints: - - type: File diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_maxsize.t libhtml-formfu-perl-1.00000/t/constraints/file_maxsize.t --- libhtml-formfu-perl-0.09010/t/constraints/file_maxsize.t 2012-10-03 15:56:05.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_maxsize.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; -use HTML::FormFu; -use CGI; - -# Copied from CGI.pm - http://search.cpan.org/perldoc?CGI - -%ENV = ( - %ENV, - 'SCRIPT_NAME' => '/test.cgi', - 'SERVER_NAME' => 'perl.org', - 'HTTP_CONNECTION' => 'TE, close', - 'REQUEST_METHOD' => 'POST', - 'SCRIPT_URI' => 'http://www.perl.org/test.cgi', - 'SCRIPT_FILENAME' => '/home/usr/test.cgi', - 'SERVER_SOFTWARE' => 'Apache/1.3.27 (Unix) ', - 'HTTP_TE' => 'deflate,gzip;q=0.3', - 'QUERY_STRING' => '', - 'REMOTE_PORT' => '1855', - 'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)', - 'SERVER_PORT' => '80', - 'REMOTE_ADDR' => '127.0.0.1', - 'CONTENT_TYPE' => 'multipart/form-data; boundary=xYzZY', - 'SERVER_PROTOCOL' => 'HTTP/1.1', - 'PATH' => '/usr/local/bin:/usr/bin:/bin', - 'REQUEST_URI' => '/test.cgi', - 'GATEWAY_INTERFACE' => 'CGI/1.1', - 'SCRIPT_URL' => '/test.cgi', - 'SERVER_ADDR' => '127.0.0.1', - 'DOCUMENT_ROOT' => '/home/develop', - 'HTTP_HOST' => 'www.perl.org' -); - -my $q; - -{ - my $file = 't/elements/file_post.txt'; - local *STDIN; - open STDIN, - "<", $file - or die "missing test file $file"; - binmode STDIN; - $q = CGI->new; -} - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/constraints/file_maxsize.yml'); - -$form->process($q); - -{ - ok( $form->submitted ); - - ok( !$form->has_errors('hello_world') ); - - ok( $form->valid('hello_world') ); -} - -$form->process( { hello_world => 'not a file', } ); - -{ - ok( $form->submitted ); - - ok( $form->has_errors('hello_world') ); - - ok( !$form->valid('hello_world') ); - - like( "$form", qr/File-size must be no more than 15 bytes/ ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_maxsize.yml libhtml-formfu-perl-1.00000/t/constraints/file_maxsize.yml --- libhtml-formfu-perl-0.09010/t/constraints/file_maxsize.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_maxsize.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ ---- -action: 'http://www.perl.org/test.cgi' - -elements: - - type: File - name: hello_world - constraints: - - type: File::MaxSize - max: 15 diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_mime.t libhtml-formfu-perl-1.00000/t/constraints/file_mime.t --- libhtml-formfu-perl-0.09010/t/constraints/file_mime.t 2012-10-03 15:56:03.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_mime.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -use strict; -use warnings; - -use Test::More; -use HTML::FormFu; - -eval "use CGI"; -if ($@) { - plan skip_all => 'CGI required'; - exit; -} - -plan tests => 10; - -# Copied from CGI.pm - http://search.cpan.org/perldoc?CGI - -%ENV = ( - %ENV, - 'SCRIPT_NAME' => '/test.cgi', - 'SERVER_NAME' => 'perl.org', - 'HTTP_CONNECTION' => 'TE, close', - 'REQUEST_METHOD' => 'POST', - 'SCRIPT_URI' => 'http://www.perl.org/test.cgi', - 'SCRIPT_FILENAME' => '/home/usr/test.cgi', - 'SERVER_SOFTWARE' => 'Apache/1.3.27 (Unix) ', - 'HTTP_TE' => 'deflate,gzip;q=0.3', - 'QUERY_STRING' => '', - 'REMOTE_PORT' => '1855', - 'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)', - 'SERVER_PORT' => '80', - 'REMOTE_ADDR' => '127.0.0.1', - 'CONTENT_TYPE' => 'multipart/form-data; boundary=xYzZY', - 'SERVER_PROTOCOL' => 'HTTP/1.1', - 'PATH' => '/usr/local/bin:/usr/bin:/bin', - 'REQUEST_URI' => '/test.cgi', - 'GATEWAY_INTERFACE' => 'CGI/1.1', - 'SCRIPT_URL' => '/test.cgi', - 'SERVER_ADDR' => '127.0.0.1', - 'DOCUMENT_ROOT' => '/home/develop', - 'HTTP_HOST' => 'www.perl.org' -); - -my $q; - -{ - my $file = 't/elements/file_post.txt'; - local *STDIN; - open STDIN, - "<", $file - or die "missing test file $file"; - binmode STDIN; - $q = CGI->new; -} - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/file_mime.yml'); - -$form->process($q); - -{ - ok( $form->submitted ); - - ok( !$form->has_errors('hello_world') ); - ok( !$form->has_errors('100x100_gif') ); - - ok( $form->valid('hello_world') ); - ok( $form->valid('100x100_gif') ); -} - -$form->process( { hello_world => 'not a file', } ); - -{ - ok( $form->submitted ); - - ok( $form->has_errors('hello_world') ); - ok( !$form->has_errors('100x100_gif') ); - - ok( !$form->valid('hello_world') ); - ok( !$form->valid('100x100_gif') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_mime.yml libhtml-formfu-perl-1.00000/t/constraints/file_mime.yml --- libhtml-formfu-perl-0.09010/t/constraints/file_mime.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_mime.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ ---- -action: 'http://www.perl.org/test.cgi' - -elements: - - type: File - name: hello_world - constraints: - - type: File::MIME - types: ['text/rtf', 'text/plain'] - - - type: File - name: 100x100_gif - constraints: - - type: File::MIME - regex: '^ image/.* \z' diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_minsize.t libhtml-formfu-perl-1.00000/t/constraints/file_minsize.t --- libhtml-formfu-perl-0.09010/t/constraints/file_minsize.t 2012-10-03 15:55:59.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_minsize.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; -use HTML::FormFu; -use CGI; - -# Copied from CGI.pm - http://search.cpan.org/perldoc?CGI - -%ENV = ( - %ENV, - 'SCRIPT_NAME' => '/test.cgi', - 'SERVER_NAME' => 'perl.org', - 'HTTP_CONNECTION' => 'TE, close', - 'REQUEST_METHOD' => 'POST', - 'SCRIPT_URI' => 'http://www.perl.org/test.cgi', - 'SCRIPT_FILENAME' => '/home/usr/test.cgi', - 'SERVER_SOFTWARE' => 'Apache/1.3.27 (Unix) ', - 'HTTP_TE' => 'deflate,gzip;q=0.3', - 'QUERY_STRING' => '', - 'REMOTE_PORT' => '1855', - 'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)', - 'SERVER_PORT' => '80', - 'REMOTE_ADDR' => '127.0.0.1', - 'CONTENT_TYPE' => 'multipart/form-data; boundary=xYzZY', - 'SERVER_PROTOCOL' => 'HTTP/1.1', - 'PATH' => '/usr/local/bin:/usr/bin:/bin', - 'REQUEST_URI' => '/test.cgi', - 'GATEWAY_INTERFACE' => 'CGI/1.1', - 'SCRIPT_URL' => '/test.cgi', - 'SERVER_ADDR' => '127.0.0.1', - 'DOCUMENT_ROOT' => '/home/develop', - 'HTTP_HOST' => 'www.perl.org' -); - -my $q; - -{ - my $file = 't/elements/file_post.txt'; - local *STDIN; - open STDIN, - "<", $file - or die "missing test file $file"; - binmode STDIN; - $q = CGI->new; -} - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/constraints/file_minsize.yml'); - -$form->process($q); - -{ - ok( $form->submitted ); - - ok( !$form->has_errors('hello_world') ); - - ok( $form->valid('hello_world') ); -} - -$form->process( { hello_world => 'not a file', } ); - -{ - ok( $form->submitted ); - - ok( $form->has_errors('hello_world') ); - - ok( !$form->valid('hello_world') ); - - like( "$form", qr/File-size must be at least 1 bytes/ ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_minsize.yml libhtml-formfu-perl-1.00000/t/constraints/file_minsize.yml --- libhtml-formfu-perl-0.09010/t/constraints/file_minsize.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_minsize.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ ---- -action: 'http://www.perl.org/test.cgi' - -elements: - - type: File - name: hello_world - constraints: - - type: File::MinSize - min: 1 diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_size.t libhtml-formfu-perl-1.00000/t/constraints/file_size.t --- libhtml-formfu-perl-0.09010/t/constraints/file_size.t 2012-10-03 15:56:04.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_size.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -use strict; -use warnings; - -use Test::More; -use HTML::FormFu; - -eval "use CGI"; -if ($@) { - plan skip_all => 'CGI required'; - exit; -} - -plan tests => 10; - -# Copied from CGI.pm - http://search.cpan.org/perldoc?CGI - -%ENV = ( - %ENV, - 'SCRIPT_NAME' => '/test.cgi', - 'SERVER_NAME' => 'perl.org', - 'HTTP_CONNECTION' => 'TE, close', - 'REQUEST_METHOD' => 'POST', - 'SCRIPT_URI' => 'http://www.perl.org/test.cgi', - 'SCRIPT_FILENAME' => '/home/usr/test.cgi', - 'SERVER_SOFTWARE' => 'Apache/1.3.27 (Unix) ', - 'HTTP_TE' => 'deflate,gzip;q=0.3', - 'QUERY_STRING' => '', - 'REMOTE_PORT' => '1855', - 'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)', - 'SERVER_PORT' => '80', - 'REMOTE_ADDR' => '127.0.0.1', - 'CONTENT_TYPE' => 'multipart/form-data; boundary=xYzZY', - 'SERVER_PROTOCOL' => 'HTTP/1.1', - 'PATH' => '/usr/local/bin:/usr/bin:/bin', - 'REQUEST_URI' => '/test.cgi', - 'GATEWAY_INTERFACE' => 'CGI/1.1', - 'SCRIPT_URL' => '/test.cgi', - 'SERVER_ADDR' => '127.0.0.1', - 'DOCUMENT_ROOT' => '/home/develop', - 'HTTP_HOST' => 'www.perl.org' -); - -my $q; - -{ - my $file = 't/elements/file_post.txt'; - local *STDIN; - open STDIN, - "<", $file - or die "missing test file $file"; - binmode STDIN; - $q = CGI->new; -} - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/file_size.yml'); - -$form->process($q); - -{ - ok( $form->submitted ); - - ok( !$form->has_errors('hello_world') ); - ok( $form->has_errors('does_not_exist_gif') ); - - ok( $form->valid('hello_world') ); - ok( !$form->valid('does_not_exist_gif') ); -} - -$form->process( { hello_world => 'not a file', } ); - -{ - ok( $form->submitted ); - - ok( $form->has_errors('hello_world') ); - ok( !$form->has_errors('does_not_exist_gif') ); - - ok( !$form->valid('hello_world') ); - ok( !$form->valid('does_not_exist_gif') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/file_size.yml libhtml-formfu-perl-1.00000/t/constraints/file_size.yml --- libhtml-formfu-perl-0.09010/t/constraints/file_size.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/file_size.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ ---- -action: 'http://www.perl.org/test.cgi' - -elements: - - type: File - name: hello_world - constraints: - - type: File::Size - min: 1 - max: 15 - - - type: File - name: does_not_exist_gif - constraints: - - type: File::Size - min: 1 - max: 15 diff -Nru libhtml-formfu-perl-0.09010/t/constraints/integer.t libhtml-formfu-perl-1.00000/t/constraints/integer.t --- libhtml-formfu-perl-0.09010/t/constraints/integer.t 2012-10-03 15:56:03.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/integer.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 8; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Integer'); - -# Valid -# linebreak not valid -{ - $form->process( { - foo => '12', - bar => "12\n", - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( !grep { $_ eq 'bar' } $form->valid ); -} - -# "0" is valid -# linebreak not valid -{ - $form->process( { - foo => 0, - bar => "0\n", - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'foo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( !grep { $_ eq 'bar' } $form->valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/length.t libhtml-formfu-perl-1.00000/t/constraints/length.t --- libhtml-formfu-perl-0.09010/t/constraints/length.t 2012-10-03 15:56:02.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/length.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Length')->min(3)->max(5); -$form->element('Text')->name('bar')->constraint('Length')->min(3)->max(5); - -# Valid -{ - $form->process( { - foo => 'abc', - bar => 'abcd', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'ab', - bar => 'abcdef', - } ); - - ok( !$form->valid('foo'), 'foo not valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/localize.t libhtml-formfu-perl-1.00000/t/constraints/localize.t --- libhtml-formfu-perl-0.09010/t/constraints/localize.t 2012-10-03 15:56:09.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/localize.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Text')->name('foo'); - -$form->constraint('Required'); -$form->constraint('MinLength')->min(3); - -$form->constraint('Regex')->regex(qr/^\d+$/) - ->message_loc('form_constraint_integer'); - -$form->process( { foo => 'a' } ); - -like( $form->get_field('foo'), qr/This field must be an integer/ ); - -like( $form->get_field('foo'), qr/Must be at least 3 characters long/ ); diff -Nru libhtml-formfu-perl-0.09010/t/constraints/maxlength.t libhtml-formfu-perl-1.00000/t/constraints/maxlength.t --- libhtml-formfu-perl-0.09010/t/constraints/maxlength.t 2012-10-03 15:56:04.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/maxlength.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 5; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('MaxLength')->max(5); -$form->element('Text')->name('bar')->constraint('MaxLength')->max(5); - -# Valid -{ - $form->process( { - foo => 'abc', - bar => 'abcde', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'ab', - bar => 'abcdef', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); - - is( $form->get_error('bar')->message, - 'Must not be longer than 5 characters long' ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/maxrange.t libhtml-formfu-perl-1.00000/t/constraints/maxrange.t --- libhtml-formfu-perl-0.09010/t/constraints/maxrange.t 2012-10-03 15:55:59.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/maxrange.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('MaxRange')->max(5); -$form->element('Text')->name('bar')->constraint('MaxRange')->max(5); - -# Valid -{ - $form->process( { - foo => 3, - bar => 4, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => 6, - } ); - - ok( $form->valid('foo'), 'foo not valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/minlength.t libhtml-formfu-perl-1.00000/t/constraints/minlength.t --- libhtml-formfu-perl-0.09010/t/constraints/minlength.t 2012-10-03 15:55:55.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/minlength.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 5; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('MinLength')->min(3); -$form->element('Text')->name('bar')->constraint('MinLength')->min(3); - -# Valid -{ - $form->process( { - foo => 'abc', - bar => 'abcd', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'ab', - bar => 'abcdef', - } ); - - ok( !$form->valid('foo'), 'foo not valid' ); - ok( $form->valid('bar'), 'bar valid' ); - - is( $form->get_error('foo')->message, - 'Must be at least 3 characters long' ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/minmaxfields.t libhtml-formfu-perl-1.00000/t/constraints/minmaxfields.t --- libhtml-formfu-perl-0.09010/t/constraints/minmaxfields.t 2012-10-03 15:56:06.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/minmaxfields.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 8; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('MinMaxFields') - ->others( [qw/ bar baz boz/] )->min(1)->max(2); -$form->element('Text')->name('bar'); -$form->element('Text')->name('baz'); -$form->element('Text')->name('boz'); - -# Valid -{ - $form->process( { - foo => 1, - bar => '', - baz => [2], - boz => '', - } ); - - ok( !$form->has_errors ); - - $form->process( { - foo => 1, - bar => '', - baz => '', - boz => '', - } ); - - ok( !$form->has_errors ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => '', - baz => 2, - boz => '22', - } ); - - ok( $form->has_errors ); - - ok( !$form->valid('foo') ); - ok( $form->valid('bar') ); - ok( $form->valid('baz') ); - ok( $form->valid('boz') ); -} - -{ - - # Test setting default for max when others is a single element - my $form = HTML::FormFu->new; - - $form->element('Text')->name('foo')->constraint('MinMaxFields') - ->others('bar'); - $form->element('Text')->name('bar'); - - { - $form->process( { - foo => 1, - bar => '', - } ); - - ok( !$form->has_errors ); - } -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/minmaxfields_with_filter_split.t libhtml-formfu-perl-1.00000/t/constraints/minmaxfields_with_filter_split.t --- libhtml-formfu-perl-0.09010/t/constraints/minmaxfields_with_filter_split.t 2012-10-03 15:56:08.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/minmaxfields_with_filter_split.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/minmaxfields_with_filter_split.yml'); - -# Valid -{ - $form->process( { - foo => '', - bar => '', - baz => '', - } ); - - ok( !$form->has_errors ); - - $form->process( { - foo => '1', - bar => '', - baz => '', - } ); - - ok( !$form->has_errors ); - - $form->process( { - foo => '1,2', - bar => '', - baz => '', - } ); - - ok( !$form->has_errors ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => '', - baz => 2, - } ); - - ok( $form->has_errors ); - - ok( !$form->valid('foo') ); - ok( $form->valid('bar') ); - ok( $form->valid('baz') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/minmaxfields_with_filter_split.yml libhtml-formfu-perl-1.00000/t/constraints/minmaxfields_with_filter_split.yml --- libhtml-formfu-perl-0.09010/t/constraints/minmaxfields_with_filter_split.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/minmaxfields_with_filter_split.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ ---- -elements: - - name: foo - constraints: - - type: MinMaxFields - others: - - bar - - baz - min: 0 - max: 1 - filters: - - type: Split - regex: ',' - - - name: bar - filters: - - type: Split - regex: ',' - - - name: baz - filters: - - type: Split - regex: ',' diff -Nru libhtml-formfu-perl-0.09010/t/constraints/minrange.t libhtml-formfu-perl-1.00000/t/constraints/minrange.t --- libhtml-formfu-perl-0.09010/t/constraints/minrange.t 2012-10-03 15:56:10.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/minrange.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('MinRange')->min(3); -$form->element('Text')->name('bar')->constraint('MinRange')->min(3); - -# Valid -{ - $form->process( { - foo => 3, - bar => 4, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => 6, - } ); - - ok( !$form->valid('foo'), 'foo not valid' ); - ok( $form->valid('bar'), 'bar not valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/not_equal.t libhtml-formfu-perl-1.00000/t/constraints/not_equal.t --- libhtml-formfu-perl-0.09010/t/constraints/not_equal.t 2012-10-03 15:56:09.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/not_equal.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Not_Equal')->others('bar'); -$form->element('Text')->name('bar'); - -# Valid -{ - $form->process( { - foo => 'yada', - bar => 'xxxx', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yada', - bar => 'yada', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->has_errors('bar'), 'bar valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/not_word.t libhtml-formfu-perl-1.00000/t/constraints/not_word.t --- libhtml-formfu-perl-0.09010/t/constraints/not_word.t 2012-10-03 15:56:01.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/not_word.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Not_Word'); - -# Valid -{ - $form->process( { - foo => ' ', - bar => "\t", - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'a', - bar => "\n", - } ); - - ok( $form->has_errors('foo'), 'foo has_errors' ); - ok( $form->valid('bar'), 'bar valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/number.t libhtml-formfu-perl-1.00000/t/constraints/number.t --- libhtml-formfu-perl-0.09010/t/constraints/number.t 2012-10-03 15:55:55.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/number.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 8; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Number'); - -# Valid -{ - $form->process( { - foo => 1, - bar => 2, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} - -# "0" is valid -{ - $form->process( { - foo => 0, - bar => 2, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'foo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/printable.t libhtml-formfu-perl-1.00000/t/constraints/printable.t --- libhtml-formfu-perl-0.09010/t/constraints/printable.t 2012-10-03 15:56:07.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/printable.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Printable'); - -# Valid -{ - $form->process( { - foo => 'aaa', - bar => 'bbbbbbb', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'aaa', - bar => '日本語', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->has_errors('bar'), 'bar has errors' ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/range.t libhtml-formfu-perl-1.00000/t/constraints/range.t --- libhtml-formfu-perl-0.09010/t/constraints/range.t 2012-10-03 15:56:08.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/range.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Range')->min(3)->max(5); -$form->element('Text')->name('bar')->constraint('Range')->min(3)->max(5); - -# Valid -{ - $form->process( { - foo => 3, - bar => 4, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 1, - bar => 6, - } ); - - ok( !$form->valid('foo'), 'foo not valid' ); - ok( !$form->valid('bar'), 'bar not valid' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/regex.t libhtml-formfu-perl-1.00000/t/constraints/regex.t --- libhtml-formfu-perl-0.09010/t/constraints/regex.t 2012-10-03 15:55:58.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/regex.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 8; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Regex'); - -# Valid -{ - $form->process( { - foo => 'aaa', - bar => 'bbbbbbb', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} - -# "0" is valid -{ - $form->process( { - foo => 0, - bar => 2, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'foo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/regex_common.t libhtml-formfu-perl-1.00000/t/constraints/regex_common.t --- libhtml-formfu-perl-0.09010/t/constraints/regex_common.t 2012-10-03 15:56:06.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/regex_common.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -map { $_->common( [ 'URI', 'HTTP', { -scheme => 'https?' } ] ) } - $form->constraint('Regex'); - -{ - $form->process( { - foo => 'http://perl.org', - bar => 'ftp://perl.org', - } ); - - ok( $form->valid('foo') ); - ok( $form->has_errors('bar') ); -} - -{ - $form->process( { - foo => 'https://perl.org', - bar => 'www.perl.org', - } ); - - ok( $form->valid('foo') ); - ok( $form->has_errors('bar') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/repeatable_any.t libhtml-formfu-perl-1.00000/t/constraints/repeatable_any.t --- libhtml-formfu-perl-0.09010/t/constraints/repeatable_any.t 2012-10-03 15:56:01.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/repeatable_any.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 10; - -use HTML::FormFu; -use lib 't/lib'; -use HTMLFormFu::TestLib; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/repeatable_any.yml'); - -$form->get_element( { type => 'Repeatable' } )->repeat(2); - -# Valid -{ - $form->process( { - foo_1 => 'a', - foo_2 => 'b', - count => 2, - } ); - - ok( $form->submitted_and_valid ); - - is_deeply( - $form->params, - { foo_1 => 'a', - foo_2 => 'b', - count => 2, - } ); -} - -# Valid - 1 missing -{ - $form->process( { - foo_1 => 'a', - foo_2 => '', - count => 2, - } ); - - ok( $form->submitted_and_valid ); - - is_deeply( - $form->params, - { foo_1 => 'a', - foo_2 => '', - count => 2, - } ); -} - -# Valid - 1 missing -{ - $form->process( { - foo_1 => '', - foo_2 => 'b', - count => 2, - } ); - - ok( $form->submitted_and_valid ); - - is_deeply( - $form->params, - { foo_1 => '', - foo_2 => 'b', - count => 2, - } ); -} - -# Missing - Invalid -{ - $form->process( { - foo_1 => '', - foo_2 => '', - count => 2, - } ); - - ok( !$form->submitted_and_valid ); - - # error is only attached to first rep - - is_deeply( [ $form->has_errors ], ['foo_1'] ); - - like( $form->get_field( { nested_name => 'foo_1' } ), qr/error/ ); - unlike( $form->get_field( { nested_name => 'foo_2' } ), qr/error/ ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/repeatable_any.yml libhtml-formfu-perl-1.00000/t/constraints/repeatable_any.yml --- libhtml-formfu-perl-0.09010/t/constraints/repeatable_any.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/repeatable_any.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- -elements: - - type: Hidden - name: count - - - type: Repeatable - counter_name: count - elements: - - name: foo - constraints: - - 'Repeatable::Any' diff -Nru libhtml-formfu-perl-0.09010/t/constraints/repeatable_any_not_increment_field_names.t libhtml-formfu-perl-1.00000/t/constraints/repeatable_any_not_increment_field_names.t --- libhtml-formfu-perl-0.09010/t/constraints/repeatable_any_not_increment_field_names.t 2012-10-03 15:56:04.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/repeatable_any_not_increment_field_names.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -use strict; -use warnings; - -use Test::More 'no_plan'; #tests => 10; - -use HTML::FormFu; -use lib 't/lib'; -use HTMLFormFu::TestLib; - -my $form = HTML::FormFu->new; - -$form->load_config_file( - 't/constraints/repeatable_any_not_increment_field_names.yml'); - -# Valid -{ - $form->process( { - foo => [ 'a', 'b' ], - count => 2, - } ); - - ok( $form->submitted_and_valid ); - - is_deeply( - $form->params, - { foo => [ 'a', 'b' ], - count => 2, - } ); - - is_deeply( [ $form->has_errors ], [] ); -} - -# Valid - 1 missing -{ - $form->process( { - foo => [ 'a', '' ], - count => 2, - } ); - - ok( $form->submitted_and_valid ); - - is_deeply( - $form->params, - { foo => [ 'a', '' ], - count => 2, - } ); - - is_deeply( [ $form->has_errors ], [] ); -} - -# Valid - 1 missing -{ - $form->process( { - foo => [ '', 'b' ], - count => 2, - } ); - - ok( $form->submitted_and_valid ); - - is_deeply( - $form->params, - { foo => [ '', 'b' ], - count => 2, - } ); - - is_deeply( [ $form->has_errors ], [] ); -} - -# Missing - Invalid -{ - $form->process( { - foo => [ '', '' ], - count => 2, - } ); - - ok( !$form->submitted_and_valid ); - - is_deeply( [ $form->has_errors ], ['foo'] ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/repeatable_any_not_increment_field_names.yml libhtml-formfu-perl-1.00000/t/constraints/repeatable_any_not_increment_field_names.yml --- libhtml-formfu-perl-0.09010/t/constraints/repeatable_any_not_increment_field_names.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/repeatable_any_not_increment_field_names.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- -elements: - - type: Hidden - name: count - - - type: Repeatable - counter_name: count - increment_field_names: 0 - elements: - - name: foo - constraints: - - 'Repeatable::Any' diff -Nru libhtml-formfu-perl-0.09010/t/constraints/required.t libhtml-formfu-perl-1.00000/t/constraints/required.t --- libhtml-formfu-perl-0.09010/t/constraints/required.t 2012-10-03 15:56:01.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/required.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 16; - -use HTML::FormFu; -use lib 't/lib'; -use HTMLFormFu::TestLib; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Required'); - -# Valid -{ - $form->process( { - foo => 'yada', - bar => 'nada', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} - -# Missing - Invalid -{ - $form->process( { foo => 'yada', } ); - - ok( $form->valid('foo'), 'foo value' ); - ok( !$form->valid('bar'), 'bar not valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( !grep { $_ eq 'bar' } $form->valid ); -} - -# Empty string - Invalid -{ - $form->process( { - foo => '', - bar => 2, - } ); - - ok( !$form->valid('foo'), 'foo not valid' ); - ok( $form->valid('bar'), 'bar valid' ); - - ok( !grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} - -# "0" is valid -{ - $form->process( { - foo => 0, - bar => 2, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'foo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/required_file.t libhtml-formfu-perl-1.00000/t/constraints/required_file.t --- libhtml-formfu-perl-0.09010/t/constraints/required_file.t 2012-10-03 15:56:03.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/required_file.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -use strict; -use warnings; - -use Test::More; -use HTML::FormFu; - -eval "use CGI"; -if ($@) { - plan skip_all => 'CGI required'; - exit; -} - -plan tests => 4; - -# Copied from CGI.pm - http://search.cpan.org/perldoc?CGI - -%ENV = ( - %ENV, - 'SCRIPT_NAME' => '/test.cgi', - 'SERVER_NAME' => 'perl.org', - 'HTTP_CONNECTION' => 'TE, close', - 'REQUEST_METHOD' => 'POST', - 'SCRIPT_URI' => 'http://www.perl.org/test.cgi', - 'SCRIPT_FILENAME' => '/home/usr/test.cgi', - 'SERVER_SOFTWARE' => 'Apache/1.3.27 (Unix) ', - 'HTTP_TE' => 'deflate,gzip;q=0.3', - 'QUERY_STRING' => '', - 'REMOTE_PORT' => '1855', - 'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)', - 'SERVER_PORT' => '80', - 'REMOTE_ADDR' => '127.0.0.1', - 'CONTENT_TYPE' => 'multipart/form-data; boundary=xYzZY', - 'SERVER_PROTOCOL' => 'HTTP/1.1', - 'PATH' => '/usr/local/bin:/usr/bin:/bin', - 'REQUEST_URI' => '/test.cgi', - 'GATEWAY_INTERFACE' => 'CGI/1.1', - 'SCRIPT_URL' => '/test.cgi', - 'SERVER_ADDR' => '127.0.0.1', - 'DOCUMENT_ROOT' => '/home/develop', - 'HTTP_HOST' => 'www.perl.org' -); - -my $q; - -{ - my $file = 't/elements/file_post.txt'; - local *STDIN; - open STDIN, - "<", $file - or die "missing test file $file"; - binmode STDIN; - $q = CGI->new; -} - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/required_file.yml'); - -$form->process($q); - -ok( $form->submitted ); - -ok( !$form->has_errors ); - -ok( $form->valid('multiple') ); -ok( $form->valid('hello_world') ); - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/required_file.yml libhtml-formfu-perl-1.00000/t/constraints/required_file.yml --- libhtml-formfu-perl-0.09010/t/constraints/required_file.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/required_file.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- -action: 'http://www.perl.org/test.cgi' - -elements: - - type: File - name: multiple - - - type: File - name: hello_world - -constraints: - - type: Required - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/required_only_on_reps.t libhtml-formfu-perl-1.00000/t/constraints/required_only_on_reps.t --- libhtml-formfu-perl-0.09010/t/constraints/required_only_on_reps.t 2012-10-03 15:56:04.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/required_only_on_reps.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; -use lib 't/lib'; -use HTMLFormFu::TestLib; - -my $form = HTML::FormFu->new; - -$form->load_config_file('t/constraints/required_only_on_reps.yml'); - -# Valid -{ - $form->process( { - foo_1 => 'a', - bar_1 => '', - buz_1 => 'g', - moo_1 => 'j', - foo_2 => '', - bar_2 => 'e', - buz_2 => '', - moo_2 => 'k', - foo_3 => '', - bar_3 => '', - buz_3 => 'i', - moo_3 => 'l', - count => 3, - } ); - - ok( $form->submitted_and_valid ); -} - -# Valid -{ - $form->process( { - foo_1 => 'a', - bar_1 => 'd', - buz_1 => 'g', - moo_1 => 'j', - foo_2 => 'b', - bar_2 => 'e', - buz_2 => 'h', - moo_2 => 'k', - foo_3 => 'c', - bar_3 => 'f', - buz_3 => 'i', - moo_3 => 'l', - count => 3, - } ); - - ok( $form->submitted_and_valid ); -} - -# Missing - Invalid -{ - $form->process( { - foo_1 => '', - bar_1 => '', - buz_1 => '', - moo_1 => '', - foo_2 => '', - bar_2 => '', - buz_2 => '', - moo_2 => 'k', - foo_3 => '', - bar_3 => '', - buz_3 => 'i', - moo_3 => '', - count => 3, - } ); - - ok( !$form->submitted_and_valid ); - - is_deeply( - [ $form->has_errors ], - [ qw/ - foo_1 - buz_1 - moo_1 - bar_2 - moo_3 - / - ] ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/required_only_on_reps.yml libhtml-formfu-perl-1.00000/t/constraints/required_only_on_reps.yml --- libhtml-formfu-perl-0.09010/t/constraints/required_only_on_reps.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/required_only_on_reps.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ ---- -elements: - - type: Hidden - name: count - - - type: Repeatable - counter_name: count - elements: - - name: foo - constraints: - - type: Required - only_on_reps: 1 - - - name: bar - constraints: - - type: Required - only_on_reps: 2 - - - name: buz - constraints: - - type: Required - only_on_reps: [1, 3] - - - name: moo - constraints: - - type: Required diff -Nru libhtml-formfu-perl-0.09010/t/constraints/set.t libhtml-formfu-perl-1.00000/t/constraints/set.t --- libhtml-formfu-perl-0.09010/t/constraints/set.t 2012-10-03 15:56:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/set.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo')->constraint('Set')->set( [qw/ yes no /] ); -$form->element('Text')->name('bar')->constraint('Set')->set( [qw/ yes no /] ); - -# Valid -{ - $form->process( { - foo => 'yes', - bar => 'no', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); -} - -# Invalid -{ - $form->process( { - foo => 'yes', - bar => 'x', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->has_errors('bar'), 'bar has_errors' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/singlevalue.t libhtml-formfu-perl-1.00000/t/constraints/singlevalue.t --- libhtml-formfu-perl-0.09010/t/constraints/singlevalue.t 2012-10-03 15:55:56.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/singlevalue.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); -$form->element('Text')->name('baz'); -$form->element('Text')->name('bif'); -$form->element('Text')->name('bom'); - -$form->constraint('SingleValue'); - -$form->process( { - foo => 1, - bar => '', - baz => [2], - bif => [ 3, 4 ], - } ); - -is_deeply( [ $form->has_errors ], ['bif'] ); - diff -Nru libhtml-formfu-perl-0.09010/t/constraints/word.t libhtml-formfu-perl-1.00000/t/constraints/word.t --- libhtml-formfu-perl-0.09010/t/constraints/word.t 2012-10-03 15:56:09.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/word.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 16; - -use HTML::FormFu; - -my $form = HTML::FormFu->new; - -$form->element('Text')->name('foo'); -$form->element('Text')->name('bar'); - -$form->constraint('Word'); - -# Valid -{ - $form->process( { - foo => 'aaa', - bar => 'bbbbbbb', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'bar valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} - -# [space] - Invalid -{ - $form->process( { - foo => 'a', - bar => 'b c', - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'foo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( !grep { $_ eq 'bar' } $form->valid ); -} - -# [newline] - Invalid -{ - $form->process( { - foo => 'a', - bar => "b\nc", - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( !$form->valid('bar'), 'foo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( !grep { $_ eq 'bar' } $form->valid ); -} - -# "0" is valid -{ - $form->process( { - foo => 0, - bar => 2, - } ); - - ok( $form->valid('foo'), 'foo valid' ); - ok( $form->valid('bar'), 'foo valid' ); - - ok( grep { $_ eq 'foo' } $form->valid ); - ok( grep { $_ eq 'bar' } $form->valid ); -} diff -Nru libhtml-formfu-perl-0.09010/t/constraints/xml.t libhtml-formfu-perl-1.00000/t/constraints/xml.t --- libhtml-formfu-perl-0.09010/t/constraints/xml.t 2012-10-03 15:56:00.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/constraints/xml.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Text')->name('foo'); - -$form->constraint('Required'); -$form->constraint('Regex')->regex(qr/^\d+$/)->message_xml("don't escape "); - -$form->process( { foo => 'a' } ); - -like( $form->get_field('foo'), qr/don't escape / ); diff -Nru libhtml-formfu-perl-0.09010/t/deflators/callback.t libhtml-formfu-perl-1.00000/t/deflators/callback.t --- libhtml-formfu-perl-0.09010/t/deflators/callback.t 2012-10-03 15:55:12.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/callback.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -use strict; -use warnings; -use Test::More tests => 2; - -use HTML::FormFu; -use lib 'lib'; - -my $original_foo = "abc123"; -my $deflated_foo = "ABC123"; - -my $original_bar = "abcdef"; -my $deflated_bar = "ABCdef"; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element( { - name => 'foo', - default => $original_foo, - deflator => { - type => 'Callback', - callback => sub { return uc( $_[0] ) }, - }, - } ); - -$form->element( { - name => 'bar', - default => $original_bar, - deflator => { - type => 'Callback', - callback => 'DeflatorCallback::my_def', - }, - } ); - -$form->process; - -like( $form->get_field('foo'), qr/\Q$deflated_foo/ ); -like( $form->get_field('bar'), qr/\Q$deflated_bar/ ); - -{ - - package DeflatorCallback; - use strict; - use warnings; - - sub my_def { - my ($value) = @_; - - $value =~ tr/abc/ABC/; - - return $value; - } -} diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compounddatetime.t libhtml-formfu-perl-1.00000/t/deflators/compounddatetime.t --- libhtml-formfu-perl-0.09010/t/deflators/compounddatetime.t 2012-10-03 15:55:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compounddatetime.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; -use DateTime; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/deflators/compounddatetime.yml'); - -my $datetime = DateTime->new( - day => '31', - month => '12', - year => '1999', -); - -$form->get_field('dob')->default($datetime); - -my $html = < -
- - - - - -
- -HTML - -is( "$form", $html ); diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compounddatetime.yml libhtml-formfu-perl-1.00000/t/deflators/compounddatetime.yml --- libhtml-formfu-perl-0.09010/t/deflators/compounddatetime.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compounddatetime.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- - -elements: - - type: Multi - name: dob - - elements: - - name: day - - name: month - - name: year - - deflator: - - type: CompoundDateTime diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compounddatetime_field_order.t libhtml-formfu-perl-1.00000/t/deflators/compounddatetime_field_order.t --- libhtml-formfu-perl-0.09010/t/deflators/compounddatetime_field_order.t 2012-10-03 15:55:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compounddatetime_field_order.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; -use DateTime; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/deflators/compounddatetime_field_order.yml'); - -my $datetime = DateTime->new( - day => '31', - month => '12', - year => '1999', -); - -$form->get_field('dob')->default($datetime); - -my $html = < -
- - - - - -
- -HTML - -is( "$form", $html ); diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compounddatetime_field_order.yml libhtml-formfu-perl-1.00000/t/deflators/compounddatetime_field_order.yml --- libhtml-formfu-perl-0.09010/t/deflators/compounddatetime_field_order.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compounddatetime_field_order.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ ---- - -elements: - - type: Multi - name: dob - - elements: - - name: m - - name: d - - name: y - - deflator: - - type: CompoundDateTime - field_order: ['month', 'day', 'year'] diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit.t libhtml-formfu-perl-1.00000/t/deflators/compoundsplit.t --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit.t 2012-10-03 15:55:12.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/deflators/compoundsplit.yml'); - -$form->default_values( { address => '10 Downing Street', } ); - -$form->process; - -my $html = < -
- - - - -
- -HTML - -is( "$form", $html ); diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit.yml libhtml-formfu-perl-1.00000/t/deflators/compoundsplit.yml --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- - -elements: - - type: Multi - name: address - - elements: - - name: number - - name: street - - deflators: - type: CompoundSplit diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_after_submit.t libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_after_submit.t --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_after_submit.t 2012-10-03 15:55:10.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_after_submit.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/deflators/compoundsplit_after_submit.yml'); - -$form->process( { - 'address.number' => '10', - 'address.street' => 'Downing Street', - } ); - -# check Filter::CompoundJoin worked ok - -is( $form->param_value('address'), '10 Downing Street' ); - -my $html = < -
- - - - -
- -HTML - -is( "$form", $html ); diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_after_submit.yml libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_after_submit.yml --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_after_submit.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_after_submit.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ ---- - -elements: - - type: Multi - name: address - - elements: - - name: number - - name: street - - filters: - type: CompoundJoin - - deflators: - type: CompoundSplit diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_field_order.t libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_field_order.t --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_field_order.t 2012-10-03 15:55:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_field_order.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/deflators/compoundsplit_field_order.yml'); - -$form->default_values( { address => '10 Downing Street', } ); - -$form->process; - -my $html = < -
- - - - -
- -HTML - -is( "$form", $html ); diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_field_order.yml libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_field_order.yml --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_field_order.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_field_order.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ ---- - -elements: - - type: Multi - name: address - - elements: - - name: street - - name: number - - deflators: - type: CompoundSplit - field_order: - - number - - street diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_split.t libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_split.t --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_split.t 2012-10-03 15:55:10.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_split.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/deflators/compoundsplit_split.yml'); - -$form->default_values( { sortcode => '01-02-03', } ); - -$form->process; - -my $html = < -
- - - - - -
- -HTML - -is( "$form", $html ); diff -Nru libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_split.yml libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_split.yml --- libhtml-formfu-perl-0.09010/t/deflators/compoundsplit_split.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/compoundsplit_split.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ ---- - -elements: - - type: Multi - name: sortcode - - elements: - - name: p1 - - name: p2 - - name: p3 - - deflators: - type: CompoundSplit - split: '-' diff -Nru libhtml-formfu-perl-0.09010/t/deflators/formatnumber.t libhtml-formfu-perl-1.00000/t/deflators/formatnumber.t --- libhtml-formfu-perl-0.09010/t/deflators/formatnumber.t 2012-10-03 15:55:12.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/formatnumber.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; -use HTML::FormFu; -use Number::Format; - -# This test is pretty hard to write -# you cannot know which locales are installed on a system -# and how the result should look like for every locale -# I simply check here whether the number has been transformed -# in any way. - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/deflators/formatnumber.yml'); - -$form->get_field('foo')->default('10002300.123'); - -{ - $form->process; - - unlike( $form->render, qr/10002300.123/, 'exact number not there' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/deflators/formatnumber.yml libhtml-formfu-perl-1.00000/t/deflators/formatnumber.yml --- libhtml-formfu-perl-0.09010/t/deflators/formatnumber.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/formatnumber.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ ---- -elements: - - name: foo - deflators: - - type: FormatNumber - precision: 8 - trailing_zeroes: 1 diff -Nru libhtml-formfu-perl-0.09010/t/deflators/pathclassfile.t libhtml-formfu-perl-1.00000/t/deflators/pathclassfile.t --- libhtml-formfu-perl-0.09010/t/deflators/pathclassfile.t 2012-10-03 15:55:11.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/deflators/pathclassfile.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 4; -use HTML::FormFu; -use Path::Class::File; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->elements( [ { - type => "Text", - name => "test1", - deflator => { type => "PathClassFile" } - }, - { type => "Text", - name => "test2", - deflator => { type => "PathClassFile", relative => 't' } - }, - { type => "Text", - name => "test3", - deflator => { type => "PathClassFile", absolute => 1 } - }, - { type => "Text", - name => "test4", - deflator => { type => "PathClassFile", basename => 1 } - }, - ] ); - -$form->process; - -my $file = Path::Class::File->new('t/deflators/pathclassfile.t'); - -for ( 1 .. 4 ) { - $form->get_field("test$_")->default($file); -} - -my $value1 = $file->relative; -my $value2 = $file->relative('t'); -my $value3 = $file->absolute; -my $value4 = $file->basename; - -like( $form->get_field('test1'), qr{value="\Q$value1\E"} ); -like( $form->get_field('test2'), qr{value="\Q$value2\E"} ); -like( $form->get_field('test3'), qr{value="\Q$value3\E"} ); -like( $form->get_field('test4'), qr{value="\Q$value4\E"} ); diff -Nru libhtml-formfu-perl-0.09010/t/elements/blank.t libhtml-formfu-perl-1.00000/t/elements/blank.t --- libhtml-formfu-perl-0.09010/t/elements/blank.t 2012-10-03 15:55:43.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/blank.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 8; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Text')->name('foo'); -$form->element('Blank')->name('bar'); - -is( $form->get_field('bar'), "" ); - -is( $form->get_field('bar')->label_tag, "" ); -is( $form->get_field('bar')->field_tag, "" ); - -my $form_xhtml = < -
- -
- -EOF - -is( $form, $form_xhtml ); - -{ - $form->process( { - foo => 'yada', - bar => '23', - } ); - - ok( $form->valid('foo') ); - ok( $form->valid('bar') ); - - is( $form->params->{foo}, 'yada' ); - is( $form->params->{bar}, 23 ); -} diff -Nru libhtml-formfu-perl-0.09010/t/elements/block.t libhtml-formfu-perl-1.00000/t/elements/block.t --- libhtml-formfu-perl-0.09010/t/elements/block.t 2012-10-03 15:55:28.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->auto_fieldset(1); - -my $block = $form->element( { - type => 'Block', - tag => 'span', - content => 'Hello !', - } ); - -$block->element( { name => "foo" } ); - -# because there's a content(), the block's elements should be ignored - -my $block_xhtml = qq{ -Hello <World>! -}; - -is( $block, $block_xhtml ); - -my $form_xhtml = < -
-$block_xhtml -
- -EOF - -is( $form, $form_xhtml ); - diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_auto_block_id.t libhtml-formfu-perl-1.00000/t/elements/block_auto_block_id.t --- libhtml-formfu-perl-0.09010/t/elements/block_auto_block_id.t 2012-10-03 15:55:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_auto_block_id.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_auto_block_id.yml'); - -is( "$form", < -
-Hello -
- -EOF diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_auto_block_id.yml libhtml-formfu-perl-1.00000/t/elements/block_auto_block_id.yml --- libhtml-formfu-perl-0.09010/t/elements/block_auto_block_id.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_auto_block_id.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ ---- -id: 'form' - -elements: - - type: Block - auto_block_id: '%f_block' - content: 'Hello' diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable.t 2012-10-03 15:55:48.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable.yml'); - -my $fs = $form->get_element; -my $repeatable = $fs->get_element; - -{ - my $return = $repeatable->repeat(2); - - ok( scalar @$return == 2 ); - isa_ok( $return->[0], 'HTML::FormFu::Element::Block' ); - isa_ok( $return->[1], 'HTML::FormFu::Element::Block' ); -} - -{ - my $elems = $repeatable->get_elements; - - ok( scalar @$elems == 2 ); - isa_ok( $elems->[0], 'HTML::FormFu::Element::Block' ); - isa_ok( $elems->[1], 'HTML::FormFu::Element::Block' ); -} - -is( $form, < -
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
- -
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable.yml libhtml-formfu-perl-1.00000/t/elements/block_repeatable.yml --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -auto_fieldset: 1 - -elements: - - type: Repeatable - elements: - - name: foo - - name: bar - - type: Submit - name: submit diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_attrs.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable_attrs.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_attrs.t 2012-10-03 15:55:52.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_attrs.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable_attrs.yml'); - -my $fs = $form->get_element; -my $block = $fs->get_element; - -$block->repeat(2); - -is( $form, < -
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
- -
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_attrs.yml libhtml-formfu-perl-1.00000/t/elements/block_repeatable_attrs.yml --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_attrs.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_attrs.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- -auto_fieldset: 1 - -elements: - - type: Repeatable - attrs: - class: repeat - elements: - - name: foo - - name: bar - - type: Submit - name: submit diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_block_id.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_block_id.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_block_id.t 2012-10-03 15:55:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_block_id.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable_auto_block_id.yml'); - -my $repeatable = $form->get_element; - -$repeatable->repeat(2); - -is( $form, < -
- -
- -
-
- -
-
-
-
- -
- -
-
- -
-
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_block_id.yml libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_block_id.yml --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_block_id.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_block_id.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -elements: - - type: Repeatable - elements: - - type: Block - tag: span - auto_block_id: 'inner_%r' - elements: - - name: foo - - name: bar diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_id.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_id.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_id.t 2012-10-03 15:55:49.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_id.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable_auto_id.yml'); - -my $fs = $form->get_element; -my $block = $fs->get_element; - -$block->repeat(2); - -is( $form, < -
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
- -
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_id.yml libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_id.yml --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_auto_id.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_auto_id.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- -auto_fieldset: 1 - -elements: - - type: Repeatable - increment_field_names: 0 - auto_id: "%n_%r" - elements: - - name: foo - - name: bar - - type: Submit - name: submit diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_date.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable_date.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_date.t 2012-10-03 15:55:45.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_date.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable_date.yml'); - -my $fs = $form->get_element; -my $repeatable = $fs->get_element; - -my $return = $repeatable->repeat(1); - -$form->process; - -is( "$form", < -
-
-
- - - - - -
-
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_date.yml libhtml-formfu-perl-1.00000/t/elements/block_repeatable_date.yml --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_date.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_date.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -auto_fieldset: 1 - -elements: - - type: Repeatable - elements: - - name: foo - type: Date - year: - reference: 2008 diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_inc.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable_inc.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_inc.t 2012-10-03 15:55:51.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_inc.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 5; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable_inc.yml'); - -my $fs = $form->get_element; -my $block = $fs->get_element; - -$block->repeat(2); - -is( $form->get_field('foo_1')->original_name, 'foo' ); -is( $form->get_field('bar_1')->original_name, 'bar' ); -is( $form->get_field('foo_2')->original_name, 'foo' ); -is( $form->get_field('bar_2')->original_name, 'bar' ); - -is( $form, < -
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
- -
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_inc.yml libhtml-formfu-perl-1.00000/t/elements/block_repeatable_inc.yml --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_inc.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_inc.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ ---- -auto_fieldset: 1 - -elements: - - type: Repeatable - -# it's now the default behaviour -# increment_field_names: 1 - - elements: - - name: foo - - name: bar - - type: Submit - name: submit diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_multi.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable_multi.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_multi.t 2012-10-03 15:55:37.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_multi.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable_inc.yml'); - -my $fs = $form->get_element; -my $block = $fs->get_element; - -$block->repeat(1); -$block->repeat(1); - -# ensure one 1 was added, total - -my $elems = $block->get_elements; - -ok( scalar @$elems == 1 ); - -is( $form, < -
-
-
- -
-
- -
-
-
- -
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_tag.t libhtml-formfu-perl-1.00000/t/elements/block_repeatable_tag.t --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_tag.t 2012-10-03 15:55:52.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_tag.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/block_repeatable_tag.yml'); - -my $fs = $form->get_element; -my $block = $fs->get_element; - -$block->repeat(2); - -is( $form, < -
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
- -
-
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/block_repeatable_tag.yml libhtml-formfu-perl-1.00000/t/elements/block_repeatable_tag.yml --- libhtml-formfu-perl-0.09010/t/elements/block_repeatable_tag.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/block_repeatable_tag.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- -auto_fieldset: 1 - -elements: - - type: Repeatable - tag: fieldset - elements: - - name: foo - - name: bar - - type: Submit - name: submit diff -Nru libhtml-formfu-perl-0.09010/t/elements/button.t libhtml-formfu-perl-1.00000/t/elements/button.t --- libhtml-formfu-perl-0.09010/t/elements/button.t 2012-10-03 15:55:45.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/button.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -my $field = $form->element('Button')->name('foo'); - -my $field_xhtml = qq{
- -
}; - -is( "$field", $field_xhtml, 'stringified field' ); - -my $form_xhtml = < -$field_xhtml - -EOF - -is( "$form", $form_xhtml, 'stringified form' ); - diff -Nru libhtml-formfu-perl-0.09010/t/elements/button_no_name.t libhtml-formfu-perl-1.00000/t/elements/button_no_name.t --- libhtml-formfu-perl-0.09010/t/elements/button_no_name.t 2012-10-03 15:55:43.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/button_no_name.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -my $field = $form->element('Button'); - -my $field_xhtml = qq{
- -
}; - -is( "$field", $field_xhtml, 'stringified field' ); - diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkbox.t libhtml-formfu-perl-1.00000/t/elements/checkbox.t --- libhtml-formfu-perl-0.09010/t/elements/checkbox.t 2012-10-03 15:55:33.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkbox.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 6; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -my $foo = $form->element('Checkbox')->name('foo')->value('foox'); - -# add more elements to test accessor output -my $bar = $form->element('Checkbox')->name('bar')->value('barx'); -my $moo - = $form->element('Checkbox')->name('moo')->value('moox')->default('moox'); -my $fad - = $form->element('Checkbox')->name('fad')->value('fadx')->default('fadx'); - -my $field_xhtml = qq{
- -
}; - -is( "$foo", $field_xhtml, 'field xhtml' ); - -my $form_xhtml = < -$field_xhtml -
- -
-
- -
-
- -
- -EOF - -is( "$form", $form_xhtml, 'stringified form' ); - -# With mocked basic query -{ - $form->process( { - foo => 'foox', - moo => 'moox', - } ); - - like( "$foo", qr/checked/ ); - unlike( "$bar", qr/checked/ ); - like( "$moo", qr/checked/ ); - unlike( "$fad", qr/checked/ ); -} diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkbox_force_default.t libhtml-formfu-perl-1.00000/t/elements/checkbox_force_default.t --- libhtml-formfu-perl-0.09010/t/elements/checkbox_force_default.t 2012-10-03 15:55:36.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkbox_force_default.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 20; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Checkbox')->name('foo')->value('a')->force_default(1); -$form->element('Checkbox')->name('fox')->value('b')->force_default(1); -$form->element('Checkbox')->name('bar')->value('c')->default('c') - ->force_default(1); -$form->element('Checkbox')->name('bax')->value('d')->default('d') - ->force_default(1); -$form->element('Checkbox')->name('moo')->value('e')->checked('checked') - ->force_default(1); -$form->element('Checkbox')->name('mox')->value('f')->checked('checked') - ->force_default(1); - -$form->process( { - foo => '', - bar => 'z', - } ); - -ok( $form->valid('foo') ); -ok( $form->valid('fox') ); -ok( $form->valid('bar') ); -ok( $form->valid('bax') ); -ok( $form->valid('moo') ); -ok( $form->valid('mox') ); - -is( $form->param('foo'), undef ); -is( $form->param('fox'), undef ); -is( $form->param('bar'), 'c' ); -is( $form->param('bax'), 'd' ); -is( $form->param('moo'), 'e' ); -is( $form->param('mox'), 'f' ); - -like( $form->get_field('foo'), qr/value="a"/ ); -unlike( $form->get_field('foo'), qr/checked/ ); -like( $form->get_field('fox'), qr/value="b"/ ); -unlike( $form->get_field('fox'), qr/checked/ ); -like( $form->get_field('bar'), qr/value="c" [^>] checked="checked"/x ); -like( $form->get_field('bax'), qr/value="d" [^>] checked="checked"/x ); -like( $form->get_field('moo'), qr/value="e" [^>] checked="checked"/x ); -like( $form->get_field('mox'), qr/value="f" [^>] checked="checked"/x ); - diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkbox_retain_default.t libhtml-formfu-perl-1.00000/t/elements/checkbox_retain_default.t --- libhtml-formfu-perl-0.09010/t/elements/checkbox_retain_default.t 2012-10-03 15:55:47.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkbox_retain_default.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 10; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Checkbox')->name('foo')->value('a')->retain_default(1); -$form->element('Checkbox')->name('fox')->value('b')->retain_default(1); -$form->element('Checkbox')->name('bar')->value('c'); - -$form->process( { - foo => '', - bar => '', - } ); - -ok( $form->valid('foo') ); -ok( !$form->valid('fox') ); -ok( $form->valid('bar') ); - -is( $form->param('foo'), '' ); -is( $form->param('fox'), undef ); -is( $form->param('bar'), '' ); - -like( $form->get_field('foo'), qr/value="a" [^>] checked="checked"/x ); -like( $form->get_field('fox'), qr/value="b" [^>] checked="checked"/x ); -like( $form->get_field('bar'), qr/value="c"/ ); -unlike( $form->get_field('bar'), qr/checked/ ); diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkbox_reverse.t libhtml-formfu-perl-1.00000/t/elements/checkbox_reverse.t --- libhtml-formfu-perl-0.09010/t/elements/checkbox_reverse.t 2012-10-03 15:55:27.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkbox_reverse.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/checkbox_reverse.yml'); - -my $form_xhtml = < -
- - -
-
- - -
- -EOF - -is( $form, $form_xhtml ); diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkbox_reverse.yml libhtml-formfu-perl-1.00000/t/elements/checkbox_reverse.yml --- libhtml-formfu-perl-0.09010/t/elements/checkbox_reverse.yml 2011-03-29 15:39:14.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkbox_reverse.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ ---- -elements: - - type: Checkbox - name: foo - label: Foo - - - type: Checkbox - name: bar - label: Bar - reverse_single: 1 diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkboxgroup.t libhtml-formfu-perl-1.00000/t/elements/checkboxgroup.t --- libhtml-formfu-perl-0.09010/t/elements/checkboxgroup.t 2012-10-03 15:55:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkboxgroup.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 5; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -my $field1 = $form->element('Checkboxgroup')->name('foo')->value(2) - ->options( [ [ 1 => 'One' ], [ 2 => 'Two' ] ] ); - -# add element to test non-reversed labels -my $field2 = $form->element('Checkboxgroup')->name('foo2') - ->options( [ [ 'a' => 'A' ], [ 'b' => 'B' ] ] )->reverse_group(0); - -# add more elements to test accessor output -$form->element('Checkboxgroup')->name('foo3')->options( [ - { label => 'Ein', value => 1 }, - { label => 'Zwei', value => 2, attributes => { class => 'foobar' } }, - ] ); -$form->element('Checkboxgroup')->name('bar')->values( [qw/ one two three /] ) - ->value('two')->label('My Bar'); - -my $field1_xhtml = qq{
- - - - - - - - - - -
}; - -is( "$field1", $field1_xhtml, 'basic checkboxgroup' ); - -my $field2_xhtml = qq{
- - - - - - - - - - -
}; - -is( "$field2", $field2_xhtml, 'checkboxgroup with reverse_group off' ); - -my $form_xhtml = < -$field1_xhtml -$field2_xhtml -
- - - - - - - - - - -
-
-My Bar - - - - - - - - - - - - - - -
- -EOF - -is( "$form", $form_xhtml, 'stringified form' ); - -# With mocked basic query -{ - $form->process( { - foo => [ 1, 2, ], - bar => 'three', - } ); - - my $foo_xhtml = qq{
- - - - - - - - - - -
}; - - is( $form->get_field('foo'), $foo_xhtml, 'checkboxgroup after query' ); - - my $bar_xhtml = qq{
-My Bar - - - - - - - - - - - - - - -
}; - - is( $form->get_field('bar'), - $bar_xhtml, 'second checkboxgroup after query' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkboxgroup_attributes_escaped.t libhtml-formfu-perl-1.00000/t/elements/checkboxgroup_attributes_escaped.t --- libhtml-formfu-perl-0.09010/t/elements/checkboxgroup_attributes_escaped.t 2012-10-03 15:55:47.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkboxgroup_attributes_escaped.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/checkboxgroup_attributes_escaped.yml'); -$form->process; - -my $field = $form->get_field('foo'); - -my $html = qq{
- - - - - - - - - - -
}; - -is( "$field", $html ); diff -Nru libhtml-formfu-perl-0.09010/t/elements/checkboxgroup_attributes_escaped.yml libhtml-formfu-perl-1.00000/t/elements/checkboxgroup_attributes_escaped.yml --- libhtml-formfu-perl-0.09010/t/elements/checkboxgroup_attributes_escaped.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/checkboxgroup_attributes_escaped.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ ---- -elements: - - type: Checkboxgroup - name: foo - options: - - value: 1 - label: 'First' - attributes: - myattr: 'escape&attr' - label_attributes: - myattr: 'escape&label' - container_attributes: - myattr: 'escape&container' - - - value: 2 - label: 'Second' - attributes_xml: - myattr: 'noescape&' diff -Nru libhtml-formfu-perl-0.09010/t/elements/combobox.t libhtml-formfu-perl-1.00000/t/elements/combobox.t --- libhtml-formfu-perl-0.09010/t/elements/combobox.t 2012-10-03 15:55:50.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/combobox.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,102 +0,0 @@ -use strict; -use warnings; -use Test::More tests => 9; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/combobox.yml'); - -{ - $form->process; - - is( $form->get_element( { type => 'ComboBox' } ), - qq{
- - - - -
} - ); -} - -{ - $form->get_element( { type => 'ComboBox' } )->default('one'); - $form->process; - - is( $form->get_element( { type => 'ComboBox' } ), - qq{
- - - - -
} - ); -} - -{ - $form->get_element( { type => 'ComboBox' } )->default('four'); - $form->process; - - is( $form->get_element( { type => 'ComboBox' } ), - qq{
- - - - -
} - ); -} - -# valid select value -{ - $form->process( { - combo_select => 'one', - combo_text => '', - } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('combo'), 'one' ); -} - -# valid text value -{ - $form->process( { - combo_select => '', - combo_text => 'four', - } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('combo'), 'four' ); -} - -# valid - text is used in preference to select value -{ - $form->process( { - combo_select => 'one', - combo_text => 'four', - } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('combo'), 'four' ); -} diff -Nru libhtml-formfu-perl-0.09010/t/elements/combobox.yml libhtml-formfu-perl-1.00000/t/elements/combobox.yml --- libhtml-formfu-perl-0.09010/t/elements/combobox.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/combobox.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ ---- -elements: - - type: ComboBox - name: combo - values: - - one - - two - - three diff -Nru libhtml-formfu-perl-0.09010/t/elements/combobox_repeatable.t libhtml-formfu-perl-1.00000/t/elements/combobox_repeatable.t --- libhtml-formfu-perl-0.09010/t/elements/combobox_repeatable.t 2012-10-03 15:55:40.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/combobox_repeatable.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -use strict; -use warnings; -use Test::More tests => 5; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/combobox_repeatable.yml'); - -# repeatable -{ - my $container = $form->get_all_element('container'); - - $form->process( { - count => 3, - combo_1_select => 'one', - combo_2_select => 'two', - combo_3_select => 'three', - } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('combo_1'), 'one' ); - is( $form->param_value('combo_2'), 'two' ); - is( $form->param_value('combo_3'), 'three' ); - is( $form->param_value('combo_3_select'), 'three' ); -} - diff -Nru libhtml-formfu-perl-0.09010/t/elements/combobox_repeatable.yml libhtml-formfu-perl-1.00000/t/elements/combobox_repeatable.yml --- libhtml-formfu-perl-0.09010/t/elements/combobox_repeatable.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/combobox_repeatable.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- -elements: - - type: Repeatable - name: container - counter_name: count - increment_field_names: 1 - elements: - - type: ComboBox - name: combo - values: - - one - - two - - three diff -Nru libhtml-formfu-perl-0.09010/t/elements/combobox_required.t libhtml-formfu-perl-1.00000/t/elements/combobox_required.t --- libhtml-formfu-perl-0.09010/t/elements/combobox_required.t 2012-10-03 15:55:44.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/combobox_required.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -use strict; -use warnings; -use Test::More tests => 6; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/combobox_required.yml'); - -# valid select value -{ - $form->process( { - combo_select => 'one', - combo_text => '', - } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('combo'), 'one' ); -} - -# valid text value -{ - $form->process( { - combo_select => '', - combo_text => 'four', - } ); - - ok( $form->submitted_and_valid ); - - is( $form->param_value('combo'), 'four' ); -} - -# invalid -{ - $form->process( { - combo_select => '', - combo_text => '', - submit => 'Submit Value', - } ); - - ok( !$form->submitted_and_valid ); - - ok( $form->has_errors('combo') ); -} diff -Nru libhtml-formfu-perl-0.09010/t/elements/combobox_required.yml libhtml-formfu-perl-1.00000/t/elements/combobox_required.yml --- libhtml-formfu-perl-0.09010/t/elements/combobox_required.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/combobox_required.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- -elements: - - type: ComboBox - name: combo - values: - - one - - two - - three - constraints: - - Required - - - type: Submit - name: submit diff -Nru libhtml-formfu-perl-0.09010/t/elements/content_button.t libhtml-formfu-perl-1.00000/t/elements/content_button.t --- libhtml-formfu-perl-0.09010/t/elements/content_button.t 2012-10-03 15:55:43.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/content_button.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -my $field = $form->element('ContentButton')->name('foo'); - -# add more elements to test accessor output -$form->element('ContentButton')->name('bar')->content_xml('

button

'); -$form->element('ContentButton')->name('baz')->content('x') - ->field_type('submit'); -$form->element('ContentButton')->name('baf')->field_type('reset'); - -my $field_xhtml = qq{
- -
}; - -is( "$field", $field_xhtml, 'stringified field' ); - -my $form_xhtml = < -$field_xhtml -
- -
-
- -
-
- -
- -EOF - -is( "$form", $form_xhtml, 'stringified form' ); - diff -Nru libhtml-formfu-perl-0.09010/t/elements/date.t libhtml-formfu-perl-1.00000/t/elements/date.t --- libhtml-formfu-perl-0.09010/t/elements/date.t 2012-10-03 15:55:26.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,461 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 11; - -use HTML::FormFu; -use DateTime; - -my $dt = DateTime->new( day => 6, month => 8, year => 2007 ); - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Date')->name('foo')->strftime("%m/%d/%Y") - ->day( { prefix => '-- Day --', } )->month( { - prefix => '-- Month --', - short_names => 1, - } - )->year( { - prefix => '-- Year --', - list => [ 2007 .. 2017 ], - } )->default($dt)->auto_inflate(1)->constraint('Required'); - -$form->element('Date')->name('bar')->default('14-08-2007') - ->year( { list => [ 2007 .. 2017 ] } ); - -$form->process; - -is( "$form", < -
- - - - - -
-
- - - - - -
- -HTML - -$form->process( { - 'foo_day', 30, 'foo_month', 6, 'foo_year', 2007, - 'bar_day', 1, 'bar_month', 7, 'bar_year', 2007, - } ); - -ok( $form->submitted_and_valid ); - -my $foo = $form->param('foo'); -my $bar = $form->param('bar'); - -isa_ok( $foo, 'DateTime' ); -ok( !ref $bar ); - -is( $foo, "06/30/2007" ); -is( $bar, "01-07-2007" ); - -is( "$form", < -
- - - - - -
-
- - - - - -
- -HTML - -# incorrect date - -$form->process( { 'foo_day', 29, 'foo_month', 2, 'foo_year', 2007, } ); - -ok( $form->submitted ); -ok( $form->has_errors ); -ok( !defined $form->params->{foo} ); - -is( "$form", < -
-Invalid date - - - - - -
-
- - - - - -
- -HTML_ERRORS - diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_default.t libhtml-formfu-perl-1.00000/t/elements/date_default.t --- libhtml-formfu-perl-0.09010/t/elements/date_default.t 2012-10-03 15:55:42.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_default.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; -use DateTime; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -my $date = $form->element('Date')->name('foo')->strftime("%m/%d/%Y") - ->year( { reference => 2007 } ); - -$form->process; - -# check that setting default() after calling process() works correctly - -my $dt = DateTime->new( day => 6, month => 8, year => 2007 ); - -$date->default($dt); - -is( "$form", < -
- - - - - -
- -HTML - diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_default_datetime_args.t libhtml-formfu-perl-1.00000/t/elements/date_default_datetime_args.t --- libhtml-formfu-perl-0.09010/t/elements/date_default_datetime_args.t 2012-10-03 15:55:49.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_default_datetime_args.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 3; - -use HTML::FormFu; -use DateTime; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/date_default_datetime_args.yml'); - -$form->process; - -{ - my $parser - = DateTime::Format::Natural->new( time_zone => 'Europe/Berlin', ); - - my $dt = $parser->parse_datetime('now'); - - my $foo = $form->get_field('foo'); - - my $year = $dt->year; - my $year_xhtml - = qq{}; - - cmp_ok( $foo, '=~', $year_xhtml ); - - my $hour = sprintf "%02d", $dt->hour; - my $hour_xhtml - = qq{}; - - cmp_ok( $foo, '=~', $hour_xhtml ); -} - -{ - my $bar = $form->get_field('bar'); - - my $year_xhtml = qq{}; - - cmp_ok( $bar, '=~', $year_xhtml ); -} diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_default_datetime_args.yml libhtml-formfu-perl-1.00000/t/elements/date_default_datetime_args.yml --- libhtml-formfu-perl-0.09010/t/elements/date_default_datetime_args.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_default_datetime_args.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ ---- -elements: - - type: DateTime - name: foo - default_natural: now - default_datetime_args: - set_time_zone: Europe/Berlin - - - type: DateTime - name: bar - year: - reference: 2000 - default_natural: now - default_datetime_args: - set_year: 2001 diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_default_empty.t libhtml-formfu-perl-1.00000/t/elements/date_default_empty.t --- libhtml-formfu-perl-0.09010/t/elements/date_default_empty.t 2012-10-03 15:55:38.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_default_empty.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; -use DateTime; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -# check that calling default('') doesn't cause a fatal error - -my $date = $form->element('Date')->name('foo')->strftime("%m/%d/%Y") - ->year( { reference => 2007 } )->default(''); - -$form->process; - -is( "$form", < -
- - - - - -
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_month_year.t libhtml-formfu-perl-1.00000/t/elements/date_month_year.t --- libhtml-formfu-perl-0.09010/t/elements/date_month_year.t 2012-10-03 15:55:32.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_month_year.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,181 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; - -use HTML::FormFu; -use DateTime; - -my $dt = DateTime->new( month => 8, year => 2007 ); - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Date')->name('foo')->default($dt) - ->field_order( [qw/ month year /] )->strftime('%m/%Y')->month( { - prefix => '-- Month --', - short_names => 1, - } - )->year( { - prefix => '-- Year --', - list => [ 2007 .. 2017 ], - } )->auto_inflate(1)->constraint('Required'); - -$form->element('Date')->name('bar')->default('08-2007') - ->field_order( [qw/ year month /] )->strftime('%m-%Y') - ->year( { list => [ 2007 .. 2017 ] } ); - -$form->process; - -is( "$form", < -
- - - - -
-
- - - - -
- -HTML - -$form->process( - { 'foo_month', 6, 'foo_year', 2007, 'bar_month', 7, 'bar_year', 2007, } ); - -ok( $form->submitted_and_valid ); - -my $foo = $form->param('foo'); -my $bar = $form->param('bar'); - -isa_ok( $foo, 'DateTime' ); -ok( !ref $bar ); - -is( $foo, "06/2007" ); -is( $bar, "07-2007" ); - -is( "$form", < -
- - - - -
-
- - - - -
- -HTML - diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_natural.t libhtml-formfu-perl-1.00000/t/elements/date_natural.t --- libhtml-formfu-perl-0.09010/t/elements/date_natural.t 2012-10-03 15:55:39.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_natural.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 3; - -use HTML::FormFu; -use DateTime; - -{ - my $today = DateTime->today; - my $form = HTML::FormFu->new; - my $e = $form->element('Date'); - $e->name('foo')->default_natural('today'); - - $form->process; - - for (qw( day month year )) { - is( $e->$_->{default}, $today->$_ ); - } -} - diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_order.t libhtml-formfu-perl-1.00000/t/elements/date_order.t --- libhtml-formfu-perl-0.09010/t/elements/date_order.t 2012-10-03 15:55:32.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_order.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,318 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 7; - -use HTML::FormFu; -use DateTime; - -my $dt = DateTime->new( day => 6, month => 8, year => 2007 ); - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->element('Date')->name('foo')->strftime("%m/%d/%Y") - ->field_order( [qw/ month day year /] )->day( { prefix => '-- Day --', } ) - ->month( { - prefix => '-- Month --', - short_names => 1, - } - )->year( { - prefix => '-- Year --', - list => [ 2007 .. 2017 ], - } )->default($dt)->auto_inflate(1)->constraint('Required'); - -$form->element('Date')->name('bar')->default('14-08-2007') - ->field_order( [qw/ year month day /] ) - ->year( { list => [ 2007 .. 2017 ] } ); - -$form->process; - -is( "$form", < -
- - - - - -
-
- - - - - -
- -HTML - -$form->process( { - 'foo_day', 30, 'foo_month', 6, 'foo_year', 2007, - 'bar_day', 1, 'bar_month', 7, 'bar_year', 2007, - } ); - -ok( $form->submitted_and_valid ); - -my $foo = $form->param('foo'); -my $bar = $form->param('bar'); - -isa_ok( $foo, 'DateTime' ); -ok( !ref $bar ); - -is( $foo, "06/30/2007" ); -is( $bar, "01-07-2007" ); - -is( "$form", < -
- - - - - -
-
- - - - - -
- -HTML - diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_order_error.t libhtml-formfu-perl-1.00000/t/elements/date_order_error.t --- libhtml-formfu-perl-0.09010/t/elements/date_order_error.t 2012-10-03 15:55:30.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_order_error.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -{ - my $form = HTML::FormFu->new; - - eval { - my $element = $form->element('Date'); - $element->name('date'); - $element->field_order( [qw/ month day foo /] ); - $form->process; - }; - - ok($@); -} - -{ - my $form = HTML::FormFu->new; - - eval { - my $element = $form->element('Date'); - $element->name('date'); - $form->process; - $element->field_order( [qw/ month month day /] )->value('01-01-2007'); - }; - - ok($@); -} diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_rename.t libhtml-formfu-perl-1.00000/t/elements/date_rename.t --- libhtml-formfu-perl-0.09010/t/elements/date_rename.t 2012-10-03 15:55:27.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_rename.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -my $date = $form->element('Date')->name('foo'); - -$form->process; - -# change name - -$date->name('bar'); - -$form->process; - -like( "$form", qr/name="bar_day"/ ); diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_undef.t libhtml-formfu-perl-1.00000/t/elements/date_undef.t --- libhtml-formfu-perl-0.09010/t/elements/date_undef.t 2012-10-03 15:55:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_undef.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 2; - -use HTML::FormFu; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->populate( { - elements => [ { - type => "Date", - name => "foo", - year => { list => [2009] }, - default => '30-08-2009' - } ] } ); - -$form->process; - -like( $form->render, qr/value="2009" selected="selected"/ ); - -$form->get_field('foo')->default(undef); - -like( $form->render, qr/value="2009">/ ); diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_year_reverse.t libhtml-formfu-perl-1.00000/t/elements/date_year_reverse.t --- libhtml-formfu-perl-0.09010/t/elements/date_year_reverse.t 2012-10-03 15:55:31.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_year_reverse.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 1; - -use HTML::FormFu; -use DateTime; - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/date_year_reverse.yml'); - -my $dt = DateTime->new( day => 6, month => 8, year => 2010 ); - -$form->get_field('foo')->default($dt); - -$form->process; - -is( "$form", < -
- - - - - -
- -HTML diff -Nru libhtml-formfu-perl-0.09010/t/elements/date_year_reverse.yml libhtml-formfu-perl-1.00000/t/elements/date_year_reverse.yml --- libhtml-formfu-perl-0.09010/t/elements/date_year_reverse.yml 2011-03-17 15:52:46.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/date_year_reverse.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ ---- -elements: - - type: Date - name: foo - year: - list: [2009, 2010, 2011] - reverse: 1 diff -Nru libhtml-formfu-perl-0.09010/t/elements/datetime.t libhtml-formfu-perl-1.00000/t/elements/datetime.t --- libhtml-formfu-perl-0.09010/t/elements/datetime.t 2012-10-03 15:55:44.000000000 +0000 +++ libhtml-formfu-perl-1.00000/t/elements/datetime.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,674 +0,0 @@ -use strict; -use warnings; - -use Test::More tests => 16; - -use HTML::FormFu; -use DateTime; - -my $dt = DateTime->new( - day => 6, - month => 8, - year => 2007, - hour => 1, - minute => 0, -); - -my $form = HTML::FormFu->new( - { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); - -$form->load_config_file('t/elements/datetime.yml'); - -$form->get_field('foo')->default($dt); - -$form->process; - -is( "$form", < -
- - - - - - - -
-
- - - - - - - -
- -HTML - -$form->process( { - foo_hour => '00', - foo_minute => '00', - foo_day => 30, - foo_month => 6, - foo_year => 2007, - bar_hour => '01', - bar_minute => '30', - bar_day => 1, - bar_month => 7, - bar_year => 2007, - } ); - -ok( $form->submitted_and_valid ); - -my $foo = $form->param('foo'); -my $bar = $form->param('bar'); - -isa_ok( $foo, 'DateTime' ); -ok( !ref $bar ); - -is( $foo, "06/30/2007 00:00" ); -is( $bar, "01-07-2007 01:30" ); - -like( $form->get_field('foo'), qr/\Q