+2.37
+ 2012-02-09
+ * (Validate) Make match_2 work in the javascript layer (as shown in perldoc)
+ * (Validate) Add int, uint, and num types with range checking on int and uint
+ * (Validate) Allow for custom => sub { my ($k, $v) = @_; die "Always fail\n" } to pass the result of the failure via the value of die.
+ * (Validate) Allow for custom_js:function (args) { throw "Always fail ("+args.value+")" } which passes the error message of the test as the fail message
+ * (Validate) Allow for type, enum, and equals to short circuit (don't run match, compare, length, or custom checks if type fails)
+ * (App) Fix the test suite to not require installation of CGI
+ * (App) Add CGI::Ex::App::Constants module supporting constants as a source of documentation
+ * (App) Allow for access to constants via use CGI::Ex::App qw(:App); or use MyApp qw(:App);
+
+2.36
+ 2010-06-10
+ * (Auth) Make delete_cookie always delete, even for session Apps.
+
+2.35
+ 2010-05-24
+ * (Auth) More robust cookie reading and writing and deleting.
+ * Workaround CGI::Cookie->parse weird empty cookie implementation.
+ * (Auth) Allow cookie_domain to be modified more gracefully.
+ * (Auth) Consider case with multiple cookies for the same name.
+
+2.34
+ 2010-04-23
+ * (Auth) Don't attempted to decode base64 armor unless use_base64
+
+2.33
+ 2010-04-01
+ * (Auth) Allow for custom form user vs valid cookie check
+
+2.32
+ 2010-02-25
+ * (Validate) Allow for default to be an arrayref
+
+2.31
+ 2010-02-24
+ * (Auth) allow for secure flag via cookie_secure
+ * Allow validate.js to use change and blur on individual elements
+ * Allow validate.js to not strip trailing whitespace on change
+ * (Validate) Allow more items in local parts
+ * (Ex) Make sure make_form doesn't die on non-arrayref keys
+
+2.27
+ 2008-09-15
+ * (App) Fix morph history during errors or other direct morph calls
+ * (App) Allow for step=foo/bar to look for file foo/bar.html
+ * (App) Allow for step=foo/bar to use internal name of foo__bar
+ * (App) Allow for step=foo/bar to morph to package App::Foo::Bar
+ * (Validate) Added the set_all_hook and clear_all_hook in validate.js
+ * (Validate) Streamline validate
+ * (Validate) Added generate_form to Validate
+ * (App) Added hooks in App to generate_form
+ * (Validate) Allow for "error" parameter in validation that is the general error message
+ * (Auth) Allow passing filename in Auth login_header, login_form, login_script and login_footer
+ * (Auth) Allow verify_token to be easily overridable
+ * (Auth) Allow passing cookie_domain, cookie_path, cookie_no_expires (force session cookie) in Auth for much more granular control
+ * (Auth) Allow for passing user without password to verify user matches a previously set cookie
+ * (App) Remove allow_nested_morph since allow_morph is more than capable of filling this role
+ * (App) Allow step name to be "jumped" to even if not in the path
+ * (App) Make jump unmorph if in the middle of lineage, deprecates some early morph cases.
+ * (Auth) Don't blank out form user field on failure (fixed bug in Auth login_hash_common)
+ * (App) Cleanup run_hook_as
+ * (App) Allow path_info_map to have second argument be a code ref that is passed form and matches
+ * (Validate) validate.js updates to make in sync more with Validate.pm (such as fields and order are synonymous)
+ * (Validate) Make validation names prettier by default
+
+2.26
+ 2008-07-21
+ * (App) Error handling bug again (accept refs in $@ again)
+
+2.25
+ 2008-07-08
+ * (Validate) Fix bugs in was_valid checking of Validate
+ * (JSONDump) Quote more keys in JSONDump
+ * (App) Allow for passing a coderef instead of the step name to run_hook
+ * (App) Handle fatal errors more gracefully
+ * (App) Make morph and unmorph calls be hooks
+ * (App) Allow allow_morph to return 2 (which requires a morph)
+ * (App) Add run_hook_as functionality
+
2.24
2008-02-26
* Allow for smith.name