Add TUWF 1.2

This commit is contained in:
Yorhel 2018-02-18 12:13:06 +01:00
parent 54947f15c2
commit 2192e68775
8 changed files with 58 additions and 13 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
*.gz *.gz
*.zip *.zip
download/doc

View file

@ -57,10 +57,11 @@ L<Puppy Linux|http://www.murga-linux.com/puppy/viewtopic.php?t=35024> -
L<Solaris|http://www.opencsw.org/packages/ncdu> - L<Solaris|http://www.opencsw.org/packages/ncdu> -
L<Slackware|http://slackbuilds.org/repository/14.2/system/ncdu/> - L<Slackware|http://slackbuilds.org/repository/14.2/system/ncdu/> -
L<Slax Linux|http://www.slax.org/modules.php?detail=ncdu> - L<Slax Linux|http://www.slax.org/modules.php?detail=ncdu> -
L<Ubuntu|http://packages.ubuntu.com/search?searchon=sourcenames&keywords=ncdu> L<Ubuntu|http://packages.ubuntu.com/search?searchon=sourcenames&keywords=ncdu> -
L<Void Linux|https://www.voidlinux.eu/packages/>
Packages for CentOS, RHEL and (open)SUSE can be found on the Packages for RHEL and (open)SUSE can be found on the
L<Open Build Service|https://build.opensuse.org/package/show?package=ncdu&project=utilities>. L<Open Build Service|https://software.opensuse.org//download.html?project=utilities&package=ncdu>.
Packages for NetBSD, DragonFlyBSD, MirBSD and others can be found on Packages for NetBSD, DragonFlyBSD, MirBSD and others can be found on
L<pkgsrc|http://pkgsrc.se/sysutils/ncdu>. L<pkgsrc|http://pkgsrc.se/sysutils/ncdu>.

View file

@ -9,26 +9,24 @@ websites, it is also perfectly suited for small single-file websites.
=over =over
=item * Very small, and no extra modules required, =item * Very small, and no extra modules required for the base functionality,
=item * Easy URI-to-function mapping using regular expressions, =item * Easy built-in routing,
=item * Handy form validation functions, =item * Handy form validation functions,
=item * Easy XML/XHTML output generation functions, =item * Easy XML/HTML generation,
=item * Response buffering and output compression, =item * Response buffering and output compression,
=item * Easy access to GET/POST data and cookies, =item * Easy access to request data,
=item * Support for CGI and FastCGI - optimized for FastCGI, =item * Support for CGI, FastCGI and a built-in web server,
=item * Uses UTF-8 for all text, =item * Uses UTF-8 for all text,
=item * Convenient SQL execution functions and correct transaction handling, =item * Convenient SQL execution functions and correct transaction handling,
=item * Promotes code re-use,
=item * Open source (duh!) and available under a liberal MIT license. =item * Open source (duh!) and available under a liberal MIT license.
=back =back
@ -39,7 +37,7 @@ information and details.
=head2 Download =head2 Download
B<Latest packaged version:> 1.1 ([dllink TUWF-1.1.tar.gz download] B<Latest packaged version:> 1.2 ([dllink TUWF-1.2.tar.gz download]
- L<CPAN mirror|http://search.cpan.org/dist/TUWF/>) - L<CPAN mirror|http://search.cpan.org/dist/TUWF/>)
TUWF is also available on a git repository at L<https://g.blicky.net/tuwf.git/>. TUWF is also available on a git repository at L<https://g.blicky.net/tuwf.git/>.

View file

@ -1,3 +1,27 @@
1.2 - 2018-02-18
- Add tuwf() exported function as alias to $self or $TUWF::OBJ
- Add TUWF::get/put/post/etc() as better alternative to TUWF::register()
- Add TUWF::hook() as better alternative to (pre|post)_request_handler
- Add capture() to access route captures
- Add standandlone HTTP dev server (requires HTTP::Server::Simple)
- Add pass() and done() methods to prematurely abort the current handler
- Add 'import_modules' setting
- TUWF::Request: Add reqJSON()
- TUWF::Request: Disallow control characters in HTTP request data
- TUWF::Response: Add resJSON()
- TUWF::Response: Add resBinary()
- TUWF::Response: Add resFile() + mime_types/mime_default settings
- TUWF::Response: Allow setting headers before resRedirect()
- TUWF::Response: resRedirect() now sets a relative 'Location' HTTP header
- TUWF::DB: Add DB query logging and profiling to non-TUWF database functions
- TUWF::DB: Add dbVal()
- TUWF::XML: Add functional-style DSL
- TUWF::XML: Add HTML5 support
- TUWF::XML: Add different naming convention support
- TUWF::XML: Add 'mkclass' utility function
- Improved error pages
- Various documentation improvements
1.1 - 2017-11-26 1.1 - 2017-11-26
- Disallow exclamation mark in email address validation - Disallow exclamation mark in email address validation
- Add reqProtocol() method - Add reqProtocol() method

View file

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEdEYNMrgIEOupr6LpYjlMaYwnOfoFAlqJW1IACgkQYjlMaYwn
OfoX8xAAtvV3oCpZqDEEJl50MJTy8dncFo3nMxKfD7xbsv4pKbPh6sj3kEd+PcdM
kbQxECdKZbNx8LgtjW7jNwIsU6SoEV4WZUWN3dZiVEGr+qF5Gc9101M1c5z99BPU
D+2QjjbcHB1MepcRaKe76eT1+KLm/nA5OqfNgQ1z626r31JriB4d+Ppd8GlDfCDq
UALjjv0qzwVEr4YBdeXClDYJ1vorEGoOyt/gqBuged86NDaeyqkZ2c/2y2HeB8If
B2PCZbYx7DFAcOz7XSJuVkeHLUvOlK3zknWMZXXeK01ev+evuVgGwe8dktQGL01P
dRl+vpJi++eFhJ57zwXYvAFlW9KWuor3YnPJms2eOZAZyHKc2WXjN581YT/Xt1s1
+r5qndZXUfgrk8tUANRKff5oaZ9xwoZ1XqBu3M3Dqrtl2RCj3TLg8KXuh19Sy0KQ
ijz1/7ZlIRXVAo+mqmb2ZE8OfqXrGRwXdCWJTZ9LsHnkY+kPfB8FdoUP93vrkV7Z
1Fu0T2Et7UWKj6Xr4qyBf/CjJZK9cy1EXfnrKVJQa5YkRVqQbnnzKFI5gv7U+GgO
hJG4Tr84bv3xJEGtcMyMrgnAcag8+7KZYiM2yd/fp7wUtxs1BJczyxevVhWMKcSM
dNsVm76AF8vsC7CCOOCXJZ9w4DfDyEWkyV4dKbFk60hkslj7BnI=
=YQqj
-----END PGP SIGNATURE-----

View file

@ -0,0 +1 @@
5028482611a415c22993adab05b9698e TUWF-1.2.tar.gz

View file

@ -0,0 +1 @@
3b336c065e9f8a37b2f387f9ff645c2ab2da5485 TUWF-1.2.tar.gz

View file

@ -12,6 +12,7 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; }
my @changes = ( my @changes = (
[ '2018-02-18', '/tuwf', 'TUWF 1.2 released' ],
[ '2018-01-29', '/ncdu', 'ncdu 1.13 released' ], [ '2018-01-29', '/ncdu', 'ncdu 1.13 released' ],
[ '2018-01-24', '/nginx-confgen', 'nginx-confgen 1.1 released' ], [ '2018-01-24', '/nginx-confgen', 'nginx-confgen 1.1 released' ],
[ '2018-01-19', '/nginx-confgen', 'New project: nginx-confgen' ], [ '2018-01-19', '/nginx-confgen', 'New project: nginx-confgen' ],
@ -117,7 +118,7 @@ TUWF::register(
qr{nginx-confgen/man} => sub { podpage(shift, 'nginx-confgen-man', 'nginx-confgen', 'man', 'The nginx-confgen(1) Man Page', 1) }, qr{nginx-confgen/man} => sub { podpage(shift, 'nginx-confgen-man', 'nginx-confgen', 'man', 'The nginx-confgen(1) Man Page', 1) },
qr{nginx-confgen/changes} => sub { changelog(shift, 'nginx-confgen-changelog', undef, 'nginx-confgen', 'changes', 'nginx-confgen Changelog', 1) }, qr{nginx-confgen/changes} => sub { changelog(shift, 'nginx-confgen-changelog', undef, 'nginx-confgen', 'changes', 'nginx-confgen Changelog', 1) },
qr{tuwf} => sub { podpage(shift, 'tuwf', 'tuwf', '', 'The Ultimate Website Framework') }, qr{tuwf} => sub { podpage(shift, 'tuwf', 'tuwf', '', 'The Ultimate Website Framework') },
qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual, qr{tuwf/man(?:/(db|intro|misc|request|response|xml))?} => \&tuwfmanual,
qr{tuwf/changes} => sub { changelog(shift, 'tuwf-changelog', 'TUWF', 'tuwf', 'changes', 'TUWF Changelog') }, qr{tuwf/changes} => sub { changelog(shift, 'tuwf-changelog', 'TUWF', 'tuwf', 'changes', 'TUWF Changelog') },
qr{ylib} => sub { podpage(shift, 'ylib/README.pod', 'ylib', '', 'Ylib') }, qr{ylib} => sub { podpage(shift, 'ylib/README.pod', 'ylib', '', 'Ylib') },
qr{yxml} => sub { podpage(shift, 'yxml', 'yxml', '', 'Yxml - A small, fast and correct* XML parser') }, qr{yxml} => sub { podpage(shift, 'yxml', 'yxml', '', 'Yxml - A small, fast and correct* XML parser') },
@ -202,7 +203,7 @@ sub tuwfmanual {
$mod .= '/'.($mod{$man} || ucfirst $man) if $man; $mod .= '/'.($mod{$man} || ucfirst $man) if $man;
(my $pm = $mod) =~ s/\//::/; (my $pm = $mod) =~ s/\//::/;
$s->htmlHeader(title => $pm.' Documentation', page => 'tuwf', sec => 'man', sec2 => $man); $s->htmlHeader(title => $pm.' Documentation', page => 'tuwf', sec => 'man', sec2 => $man);
(my $f = $INC{"$mod.pm"}) =~ s/\.pm$/.pod/; (my $f = $INC{"TUWF.pm"}) =~ s/TUWF\.pm$/$mod.pod/;
$s->htmlPOD($f, 1); $s->htmlPOD($f, 1);
$s->htmlFooter; $s->htmlFooter;
} }
@ -414,6 +415,7 @@ sub htmlPOD {
$p->{podhtml_LOT} = { $p->{podhtml_LOT} = {
'TUWF' => '/tuwf/man', 'TUWF' => '/tuwf/man',
'TUWF::DB' => '/tuwf/man/db', 'TUWF::DB' => '/tuwf/man/db',
'TUWF::Intro' => '/tuwf/man/intro',
'TUWF::Misc' => '/tuwf/man/misc', 'TUWF::Misc' => '/tuwf/man/misc',
'TUWF::Request' => '/tuwf/man/request', 'TUWF::Request' => '/tuwf/man/request',
'TUWF::Response' => '/tuwf/man/response', 'TUWF::Response' => '/tuwf/man/response',
@ -550,6 +552,7 @@ sub htmlMenu {
$m->('/tuwf/man', 'Manual', $o{sec} eq 'man', sub { $m->('/tuwf/man', 'Manual', $o{sec} eq 'man', sub {
$m->('/tuwf/man', 'Main', $o{sec} eq 'man' && !$o{sec2}); $m->('/tuwf/man', 'Main', $o{sec} eq 'man' && !$o{sec2});
$m->('/tuwf/man/db', '::DB', $o{sec} eq 'man' && $o{sec2} eq 'db'); $m->('/tuwf/man/db', '::DB', $o{sec} eq 'man' && $o{sec2} eq 'db');
$m->('/tuwf/man/intro', '::Intro', $o{sec} eq 'man' && $o{sec2} eq 'intro');
$m->('/tuwf/man/misc', '::Misc', $o{sec} eq 'man' && $o{sec2} eq 'misc'); $m->('/tuwf/man/misc', '::Misc', $o{sec} eq 'man' && $o{sec2} eq 'misc');
$m->('/tuwf/man/request', '::Request', $o{sec} eq 'man' && $o{sec2} eq 'request'); $m->('/tuwf/man/request', '::Request', $o{sec} eq 'man' && $o{sec2} eq 'request');
$m->('/tuwf/man/response', '::Response', $o{sec} eq 'man' && $o{sec2} eq 'response'); $m->('/tuwf/man/response', '::Response', $o{sec} eq 'man' && $o{sec2} eq 'response');