[Jifty-commit] r1015 - in jifty/branches/jifty-jsan: . lib lib/Jifty/Action/Devel lib/Jifty/Model lib/Jifty/Script lib/Jifty/Upgrade lib/Jifty/Web lib/Jifty/Web/Form t t/TestApp/lib/TestApp t/TestApp/lib/TestApp/Action t/TestApp/t

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Sat May 6 18:05:53 EDT 2006


Author: trs
Date: Sat May  6 18:05:50 2006
New Revision: 1015

Added:
   jifty/branches/jifty-jsan/t/01-version_checks.t
   jifty/branches/jifty-jsan/t/TestApp/lib/TestApp/Action/DoSomething.pm
   jifty/branches/jifty-jsan/t/TestApp/t/05-actions-before-redirect.pm
Modified:
   jifty/branches/jifty-jsan/   (props changed)
   jifty/branches/jifty-jsan/AUTHORS
   jifty/branches/jifty-jsan/Changelog
   jifty/branches/jifty-jsan/MANIFEST
   jifty/branches/jifty-jsan/SIGNATURE
   jifty/branches/jifty-jsan/lib/Jifty.pm
   jifty/branches/jifty-jsan/lib/Jifty/Action/Devel/FileEditor.pm
   jifty/branches/jifty-jsan/lib/Jifty/Handle.pm
   jifty/branches/jifty-jsan/lib/Jifty/JSON.pm
   jifty/branches/jifty-jsan/lib/Jifty/Model/Metadata.pm
   jifty/branches/jifty-jsan/lib/Jifty/Model/Session.pm
   jifty/branches/jifty-jsan/lib/Jifty/Object.pm
   jifty/branches/jifty-jsan/lib/Jifty/Request.pm
   jifty/branches/jifty-jsan/lib/Jifty/Script/Action.pm
   jifty/branches/jifty-jsan/lib/Jifty/Script/App.pm
   jifty/branches/jifty-jsan/lib/Jifty/Script/Model.pm
   jifty/branches/jifty-jsan/lib/Jifty/Script/Schema.pm
   jifty/branches/jifty-jsan/lib/Jifty/Upgrade.pm
   jifty/branches/jifty-jsan/lib/Jifty/Upgrade/Internal.pm
   jifty/branches/jifty-jsan/lib/Jifty/Util.pm
   jifty/branches/jifty-jsan/lib/Jifty/Web.pm
   jifty/branches/jifty-jsan/lib/Jifty/Web/Form.pm
   jifty/branches/jifty-jsan/lib/Jifty/Web/Form/Field.pm
   jifty/branches/jifty-jsan/lib/Jifty/Web/PageRegion.pm
   jifty/branches/jifty-jsan/lib/Jifty/Web/Session.pm
   jifty/branches/jifty-jsan/lib/Jifty/YAML.pm
   jifty/branches/jifty-jsan/t/TestApp/lib/TestApp/Dispatcher.pm

Log:
 r10303 at zot (orig r983):  ewilhelm | 2006-05-04 00:10:21 -0400
  r917 at mjolnir:  ewilhelm | 2006-05-03 20:28:05 -0700
  t/01-version_checks.t - failing test for Randal's CPAN.pm complaint
 
 r10304 at zot (orig r984):  ewilhelm | 2006-05-04 00:10:28 -0400
  r918 at mjolnir:  ewilhelm | 2006-05-03 20:52:39 -0700
  t/01-version_checks.t - actually fails, tests everything
 
 r10305 at zot (orig r985):  ewilhelm | 2006-05-04 00:10:34 -0400
  r919 at mjolnir:  ewilhelm | 2006-05-03 21:07:40 -0700
  t/01-version_checks.t - fixed to run under test harness
 
 r10306 at zot (orig r986):  ewilhelm | 2006-05-04 00:10:40 -0400
  r920 at mjolnir:  ewilhelm | 2006-05-03 21:09:08 -0700
  lib/Jifty/JSON.pm - fix for CPAN.pm/MM complaints
  lib/Jifty/YAML.pm - fix for CPAN.pm/MM complaints
    * ->VERSION() tip by audreyt
 
 r10309 at zot (orig r989):  alexmv | 2006-05-04 16:24:50 -0400
  r12821 at zoq-fot-pik:  chmrr | 2006-05-04 16:22:27 -0400
   * Redirects in 'before' in the dispatcher should keep track of unrun
  actions
 
 r10310 at zot (orig r990):  alexmv | 2006-05-04 16:25:00 -0400
  r12829 at zoq-fot-pik:  chmrr | 2006-05-04 16:24:18 -0400
   * Rename 'key' to 'data_key'
 
 r10311 at zot (orig r991):  jesse | 2006-05-04 23:44:29 -0400
  r13245 at hualien:  jesse | 2006-05-04 23:43:02 -0400
  Dobrica Pavlinusic caught a logic error in our upgrade code.
 
 r10312 at zot (orig r992):  autrijus | 2006-05-05 00:20:57 -0400
 * Jifty is now ported to Win32 (tested with ActivePerl 5.8.8.817).
 
 * Unified nonportable _mkpath into Jifty::Util::make_path,
   which now uses File::Path::mkpath underneath.
 
 * On application creation, make bin/jifty.bat as well as bin/jifty.
 
 * Changed nonportable use of splitdir() to File::Basename's
   basename() and dirname().
 
 * Jifty::Handle: correct "jifty schema --setup" sequence so
   it can create tables from nonexisting databases.
 r10313 at zot (orig r993):  nelhage | 2006-05-05 12:35:05 -0400
 Fixing a documentation bug in Jifty::Web::PageRegion
 r10314 at zot (orig r994):  nelhage | 2006-05-05 12:38:18 -0400
 Adding myself to AUTHORS
 r10315 at zot (orig r995):  jesse | 2006-05-05 14:56:06 -0400
  r13254 at hualien:  jesse | 2006-05-05 14:55:45 -0400
  * Jifty 2006-05-05
 
 r10331 at zot (orig r1011):  ewilhelm | 2006-05-06 00:02:20 -0400
  r957 at mjolnir:  ewilhelm | 2006-05-05 20:49:34 -0700
  lib/Jifty/Web/Form.pm - just trailing whitespace cleanup
 
 r10332 at zot (orig r1012):  ewilhelm | 2006-05-06 00:02:29 -0400
  r960 at mjolnir:  ewilhelm | 2006-05-05 21:01:58 -0700
  lib/Jifty/Object.pm - removed incorrect '=for' directive
  lib/Jifty/Web/Form/Field.pm - removed incorrect '=for' directive
  lib/Jifty/Web/Form.pm - removed incorrect '=for' directive
  
 
 r10334 at zot (orig r1014):  alexmv | 2006-05-06 16:05:14 -0400
  r12858 at zoq-fot-pik:  chmrr | 2006-05-06 16:04:13 -0400
   * Be a little more explicit about SQLite's limitation, and a possible
     (painful) workaround
 


Modified: jifty/branches/jifty-jsan/AUTHORS
==============================================================================
--- jifty/branches/jifty-jsan/AUTHORS	(original)
+++ jifty/branches/jifty-jsan/AUTHORS	Sat May  6 18:05:50 2006
@@ -6,3 +6,4 @@
 Kevin Riggle <kevinr at bestpractical.com>
 Audrey Tang <audreyt at audreyt.org>
 Eric Wilhelm <ewilhelm at cpan.org>
+Nelson Elhage <nelhage at mit.edu>

Modified: jifty/branches/jifty-jsan/Changelog
==============================================================================
--- jifty/branches/jifty-jsan/Changelog	(original)
+++ jifty/branches/jifty-jsan/Changelog	Sat May  6 18:05:50 2006
@@ -1,12 +1,23 @@
-SVN revision r932
+0.60505 - Cinco de Jifty! (5 May 2006)
+
+  * Native support for times and timezones.
+
+  * Bug fixes (Many contributors)
+
+  * Documentation updates (Many contributors)
+
+  * Win32 Support (Audrey Tang)
+
+  * New Session layer based on Jifty instead of Apache::Session.
+    Designed for AJAX and Continations (alexmv)
+
+  * Jifty internal metadata store (The begining of an internal configuration
+    management system (alexmv)
 
   * Form fields no longer automatically insert the field name by itself
     as a class.  Instead, the class has changed to "argument-<fieldname>"
 	to avoid conflicts with generic class names (such as date).
 
-
-SVN revision r809
-
   * Move allow and deny'ing of actions into Jifty::API; this breaks
     backwards compatibility.
 

Modified: jifty/branches/jifty-jsan/MANIFEST
==============================================================================
--- jifty/branches/jifty-jsan/MANIFEST	(original)
+++ jifty/branches/jifty-jsan/MANIFEST	Sat May  6 18:05:50 2006
@@ -73,7 +73,6 @@
 lib/Jifty/Manual/Tutorial_ja.pod
 lib/Jifty/Mason/Halo.pm
 lib/Jifty/Model/Metadata.pm
-lib/Jifty/Model/Schema.pm
 lib/Jifty/Model/Session.pm
 lib/Jifty/Notification.pm
 lib/Jifty/Object.pm
@@ -229,9 +228,9 @@
 SIGNATURE
 t/00-load.t
 t/01-dependencies.t
+t/01-version_checks.t
 t/02-connect.t
 t/03-form-protocol.t
-t/04-sessions.t
 t/05-dispatcher.t
 t/06-forms.t
 t/07-limit-actions.t
@@ -262,6 +261,7 @@
 t/Mapper/t/01-raw-api.t
 t/Mapper/t/02-api.t
 t/TestApp/bin/jifty
+t/TestApp/lib/TestApp/Action/DoSomething.pm
 t/TestApp/lib/TestApp/Dispatcher.pm
 t/TestApp/lib/TestApp/Model/User.pm
 t/TestApp/share/web/static/images/pony.jpg
@@ -274,3 +274,4 @@
 t/TestApp/t/02-dispatch.t
 t/TestApp/t/03-static.t
 t/TestApp/t/04-sessions.t
+t/TestApp/t/05-actions-before-redirect.pm

Modified: jifty/branches/jifty-jsan/SIGNATURE
==============================================================================
--- jifty/branches/jifty-jsan/SIGNATURE	(original)
+++ jifty/branches/jifty-jsan/SIGNATURE	Sat May  6 18:05:50 2006
@@ -1,12 +1,12 @@
 This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.50.
+signed via the Module::Signature module, version 0.41.
 
 To verify the content in this distribution, first make sure you have
 Module::Signature installed, then type:
 
     % cpansign -v
 
-It will check each file's integrity, as well as the signature's
+It would check each file's integrity, as well as the signature's
 validity.  If "==> Signature verified OK! <==" is not displayed,
 the distribution may already have been compromised, and you should
 not run its Makefile.PL or Build.PL.
@@ -14,113 +14,142 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 4ea0f60c656fb4c5bc5b9cf8ba8d4814cbd167eb Changelog
-SHA1 2adf1ae86cefb6b416e4cf97d976d4b99b20f266 MANIFEST
-SHA1 cf0158eb3e2f9316214f1b2c4cf8439c5f7d4d27 MANIFEST.SKIP
-SHA1 267d3cca7d14841dfb69daf07d47d07f7c747cea META.yml
-SHA1 ab10507f2993f48506ddedaaa968957479cc9624 Makefile.PL
+SHA1 c671b21c022dd6c6f5447da308915d55cf299cb0 AUTHORS
+SHA1 294d7494dc273ed9b208e9f99c12af2c71641dd2 Changelog
+SHA1 f9aa96ce70078a5d1a938b07746e6de6728dab39 MANIFEST
+SHA1 3ad8481344a1d0ce2dc5726c1db8bea1917402de MANIFEST.SKIP
+SHA1 53976013485232bf38442c996cf25d3d09cc9203 META.yml
+SHA1 aa819a51c57165f0b77326becd675e73c94b098c Makefile.PL
 SHA1 e395a2eabaf8faf8266dedc664c1eb52c6c589cf README
 SHA1 aaf8f7a1025fc97077072672f325e2a5f3c03a41 bin/build_par
 SHA1 b8033f506649985b6244c7c61462aae54a212c89 bin/jifty
 SHA1 309338abe024f34d6c8629645e5ff8487e2d75f2 bin/service
+SHA1 543a2677f66d3c8ca671b790509b6c1721ac6270 bin/xgettext
 SHA1 b8bb315ef8fbdd2f069b6339ad0461b5d933d7da doc/ajax-upgraded-links
+SHA1 a0d03921821ca39ea461f1f9fa812fdbb5f501a0 doc/building_a_par
+SHA1 20e10cd0ef04ed61f2c6975caaf70f6cdfd0f657 doc/client_side_continuations
+SHA1 a78a22aa4be910be14347278720e196137819d55 doc/command_naming
+SHA1 69cafeee7cc90aabb0ae8cf1e9c695794a54c9a6 doc/edit-in-place
+SHA1 1825dbdbb540ee2d4c9f3fd0e4dbd830e631ed0d doc/packaging
+SHA1 3ec038720e82a1297a3a5db6a0e1b24fe0aa13c2 doc/plugin-requirements
+SHA1 3de2d7f062e78fc8b543f6b93e79852274c6c657 doc/plugin-syntax
+SHA1 d489ea6ef3df6fd121dd021caa4d4c162a2cf883 doc/talks/blogdemo.png
+SHA1 d3664832060c2b7dbf3067f1073e0483304862c4 doc/talks/component-tree.png
+SHA1 1d8ffbd9f5745536319dc0003698d9e57774ecbb doc/talks/edit.png
+SHA1 adcec9e9e718cbda196d0a6c4a2583d216de0ab6 doc/talks/error.png
 SHA1 ffef83cca518e43707febc9304a5683926013319 doc/talks/euroscon.css
+SHA1 3b5c622e6a9cdaa5b81665dd47291b668e2cddbb doc/talks/halo-overview.png
+SHA1 650f029db7ab0c1fcba16625bbdef274d3c03d7c doc/talks/halo.png
+SHA1 bd3c19e906807a3f5b1aa75931710b22fce672f0 doc/talks/new-entry.png
 SHA1 42eb797f2b0063b01764fd9d1a7aced2836f7388 doc/talks/npw2005.xul
 SHA1 67f41db40d62b81d71cb60c542695e0d7e6d393d doc/talks/pony.jpg
 SHA1 e29c31fecdc7227dc0864eeba7c5ddeb8dd92608 doc/talks/pony.png
-SHA1 7bfc26238b68334d65994f7740648fd21908a0ab doc/talks/takahashi.css
-SHA1 37bc57bb92f9cd1bf29fa55e8b99a0d16a1c8de0 doc/talks/takahashi.js
-SHA1 a39d38460e349d409152fe8243b40bb17f370b7e doc/talks/yapc.asia.2005.xul
-SHA1 4ffd9ac7a10b2220d525390a96877410644b5bee inc/Module/AutoInstall.pm
-SHA1 b81fb744b1848c519a311f099e9cdeec5e1009b3 inc/Module/Install.pm
-SHA1 74ad6befe1544f3546b0b9daba54a6cf46113093 inc/Module/Install/AutoInstall.pm
-SHA1 8b46d13d1ff59859fdd5d19c2d552a889d850bfb inc/Module/Install/Base.pm
-SHA1 39f57464c9e7ed3d59e5876f7a08cd7b1483214d inc/Module/Install/Can.pm
-SHA1 c350e913f6e47ac194d63abb3a2fa44f36f70b6b inc/Module/Install/Fetch.pm
-SHA1 0e45206911c595654540d7acf20916e6793cae21 inc/Module/Install/Include.pm
-SHA1 45e05cf9f3be0a4cea1e99ae19c212eb4e592d2e inc/Module/Install/Makefile.pm
-SHA1 f1920c46754df7c8e796788e32c3359110edba31 inc/Module/Install/Metadata.pm
-SHA1 935c3ed52932520eec3d13ca97a15db5433a1f4c inc/Module/Install/Scripts.pm
-SHA1 cc535258199bc434661e655ba6e1f3611a8fb01e inc/Module/Install/Share.pm
-SHA1 015eb205275b6c2bab96e5a70f1135cfe09bf770 inc/Module/Install/Win32.pm
-SHA1 71363bcf5547cbce17c5b19b6db00d7483154a4b inc/Module/Install/WriteAll.pm
+SHA1 f07f99206d95a6093bb982b513d1099fd73bffe9 doc/talks/takahashi.css
+SHA1 694ea3fb3d4ddd8a0de192dcdda324f9423da4c9 doc/talks/takahashi.js
+SHA1 109e87541d601c1be1d2042c6ab9d2952a94d36b doc/talks/yapc.asia.2006.xul
+SHA1 7d6cffbb4f916bfaba69540329cb7d7f67d12f25 etc/config.yml
+SHA1 0bb5ddbe64424d40536acdee2f09e853ab39087d inc/Module/AutoInstall.pm
+SHA1 e7688055bf405375921ea837273d8bdc68803efb inc/Module/Install.pm
+SHA1 4fad9a959426996f62d0e4e972cf09e3a0cf8c0c inc/Module/Install/AutoInstall.pm
+SHA1 e5b3215acb96829f2142dcfce736c1b6484fbc08 inc/Module/Install/Base.pm
+SHA1 07c44e137098675ea35a5d537df1e4af098382d9 inc/Module/Install/Can.pm
+SHA1 8f691f8e451ba687551fa836e8d75c4d514241e5 inc/Module/Install/Fetch.pm
+SHA1 0db6efc5925b96e1ea3b8bc46c3ecdb14660ae82 inc/Module/Install/Include.pm
+SHA1 81b798c6ca71d1b665a470fb49d32105084ac389 inc/Module/Install/Makefile.pm
+SHA1 c8c9737da19baa15ffa7d9d5037913f64b592189 inc/Module/Install/Metadata.pm
+SHA1 267e57a7b78351d5fa424fc4b8c595025a89305d inc/Module/Install/Scripts.pm
+SHA1 79b7956437c9f27ec9c664dc8a82ec1501124968 inc/Module/Install/Share.pm
+SHA1 b97304e2a5c405d950eeaa4afd09c6b5507571c3 inc/Module/Install/Win32.pm
+SHA1 73a588d58f7ad0a6a9ed0ea80c48fa12f234a02c inc/Module/Install/WriteAll.pm
 SHA1 c17e8f3cf8ebe1eb4929fd2bd2fd530a9de1abd0 lib/Email/Send/Jifty/Test.pm
-SHA1 28d87afe246ba1ef39ce813260e99cd8120107b4 lib/Jifty.pm
-SHA1 2b94964b3188f628c92f96c8425b5e1b05f9a8d9 lib/Jifty/Action.pm
-SHA1 7abe89ca0f1d6d2f0705fc202e7d3a1162ba22ef lib/Jifty/Action/Autocomplete.pm
-SHA1 14425db755bcec2bdc62ad0508bd0d642f8e8bfb lib/Jifty/Action/Devel/FileEditor.pm
-SHA1 5b510cf1c4e29db56767b12d89073fcbc9481867 lib/Jifty/Action/Record.pm
+SHA1 540a762bf7267ef70642fb1fa423071cbea54e21 lib/Jifty.pm
+SHA1 7716980f6d6e5a7bd348a35e604db63ff09cd282 lib/Jifty/API.pm
+SHA1 fb4e3976d963b9ef667eb8e6fadb85f0ff3f3dd8 lib/Jifty/Action.pm
+SHA1 a6d9d87b4fa06cfab36f249a67946b45669dcee7 lib/Jifty/Action/Autocomplete.pm
+SHA1 273f9734f5d87144992c82a65264cbe2fc106df4 lib/Jifty/Action/Devel/FileEditor.pm
+SHA1 3ea0ae82d0409a307325aee1e20b02dd830814f5 lib/Jifty/Action/Record.pm
 SHA1 c12f5b92b58561cf2443d1a8361c2f37f23fe103 lib/Jifty/Action/Record/Create.pm
 SHA1 fb09c0e8ac8eae4c5351ff1ea6902226eda24d03 lib/Jifty/Action/Record/Delete.pm
-SHA1 b9f92708f650134dcd19abf82461a81ac420e336 lib/Jifty/Action/Record/Update.pm
+SHA1 74b83e1b8ad2a3317054df95d49e0ff791e4cb72 lib/Jifty/Action/Record/Update.pm
 SHA1 c99a798acc9c65baf4e750a70487c192980e0c54 lib/Jifty/Action/Redirect.pm
 SHA1 cf349fcfe9ee28216eae2213ab0016ceaffaf2a7 lib/Jifty/Bootstrap.pm
-SHA1 7c9d1178d047c2a01c9f895ee36ed53edaf8c01a lib/Jifty/ClassLoader.pm
-SHA1 55b6524826031554733caecbf06a03b9f96fa4c4 lib/Jifty/Collection.pm
-SHA1 6825e6d728f1e76e30aaef7a43406a2b58f97b3c lib/Jifty/Config.pm
-SHA1 47f68c9e8dfd321af39f6e3d19c11dcae8b06f01 lib/Jifty/Continuation.pm
-SHA1 d8594abd1fd8a86070b759d26399c05728bda1e7 lib/Jifty/CurrentUser.pm
-SHA1 cc8c23a176139b121aad23ca20ee3e3c5055652f lib/Jifty/Dispatcher.pm
-SHA1 2024445d2f5d50dbe9b3fad967632fe59650e6e0 lib/Jifty/Everything.pm
-SHA1 b8b128d1dee013d407b25767c6c5ecfb8171db6b lib/Jifty/Handle.pm
-SHA1 c5bd9e5750ae34d988db5116e73176ae580f2449 lib/Jifty/Handler.pm
-SHA1 07d3edc644df8d2ec733281ab6e8bdd391caf9c3 lib/Jifty/Handler/Static.pm
-SHA1 f182af7dba4e4547084a87a7f0baa7e48e0b0a44 lib/Jifty/I18N.pm
-SHA1 7bda19b3be748f71161a8dadf4ad3b01e74509fb lib/Jifty/JSON.pm
-SHA1 ee57daba96d20893d2427c01eb6aaa790bde7156 lib/Jifty/LetMe.pm
-SHA1 d1dd367ac021f8e3873b499eb6734e7e91f926c6 lib/Jifty/Logger.pm
+SHA1 b52b97b6b1125ecb4d9c24eb7aea90723455da6c lib/Jifty/ClassLoader.pm
+SHA1 8b4824481d003c667434223ba1432e18422431e7 lib/Jifty/Collection.pm
+SHA1 54adff0e3cbeab9d549a99c2ecd00da495bf52cc lib/Jifty/Config.pm
+SHA1 e0ad0ee8962dbbd9e0011b3d4d964a6dff8abd01 lib/Jifty/Continuation.pm
+SHA1 15970f85b57eab885568a71f164dc627c791287c lib/Jifty/CurrentUser.pm
+SHA1 45c5eccef86323d9a20859f593a32338df666ad6 lib/Jifty/DateTime.pm
+SHA1 57f7b2aadae19d2c7ab70e208e9037d4b1ebb022 lib/Jifty/Dispatcher.pm
+SHA1 2d7f540cfe1d082cd1eb555b4f5a19ead0fef348 lib/Jifty/Everything.pm
+SHA1 f4285964bfa60f300d7f572868af745737396320 lib/Jifty/Handle.pm
+SHA1 e8ec6d5eb6642df537c0094edd4216d97ad9fc31 lib/Jifty/Handler.pm
+SHA1 505a1879c31617a834d67e9a35a23222f1a6a621 lib/Jifty/I18N.pm
+SHA1 db36e9299112e1796c3044390ffe452751f675b0 lib/Jifty/JSON.pm
+SHA1 22da0646b92c179f1dca36baf3b8165e823d63a9 lib/Jifty/LetMe.pm
+SHA1 9aa7f692abdd3d8054fae66e57d0f602f347fff0 lib/Jifty/Logger.pm
 SHA1 c2ef5f9cfac7a0adff5c492bfdd005d42e489173 lib/Jifty/Manual/AccessControl.pod
 SHA1 f9f8e7616fcb97cd96ec905832a1a700ddb93235 lib/Jifty/Manual/Glossary.pod
-SHA1 fc957aa6cd22e057326e8a216fa8d2b9da3df526 lib/Jifty/Manual/ObjectModel.pod
-SHA1 c3e07ae492a1a2e95cf9dc23bc90231c8b137827 lib/Jifty/Manual/Tutorial.pod
+SHA1 1204d70c868084ac3114fae277e98a756f83f819 lib/Jifty/Manual/ObjectModel.pod
+SHA1 30539b2898854ff58afc22d3f4e9b12c70d2e901 lib/Jifty/Manual/Tutorial.pod
 SHA1 45f95f61826365d39a5eab2cc119967273d17077 lib/Jifty/Manual/Tutorial_ja.pod
 SHA1 40ce802da439c57a69446b12f254ff8145942794 lib/Jifty/Mason/Halo.pm
-SHA1 d009301a0a91c51a535fc706921bbeb764258852 lib/Jifty/MasonHandler.pm
-SHA1 0b179b3c0c01d59bc41d8d3c0a8120fc3b15554c lib/Jifty/Model/Schema.pm
-SHA1 22ab3ec11ce5cf299a993e8ebb605644a2c83e6c lib/Jifty/Notification.pm
-SHA1 26b4d91bdcfc4ca1a8a403eb2d17aec3b6d94f4c lib/Jifty/Object.pm
-SHA1 e0b80a2b94dd94793806852209e31aa9e806ce5c lib/Jifty/Record.pm
-SHA1 8f5c2a1c67dd7b1c326a9599e33d535c7dfc2179 lib/Jifty/Request.pm
+SHA1 809ace5bafff5ad2461d5495464863ba808dfd19 lib/Jifty/Model/Metadata.pm
+SHA1 36de25464ae4eb07675f453cc590b634c6ff5a37 lib/Jifty/Model/Session.pm
+SHA1 c32efef334d710b29dfbc28a600ef041c20feb55 lib/Jifty/Notification.pm
+SHA1 5d8c61b520e0a214c48cf6ce5cc1cce0bfc18498 lib/Jifty/Object.pm
+SHA1 2bf9dfd52536d9e374ab635d0e9145d855b9c802 lib/Jifty/Record.pm
+SHA1 545a5cab5814e0fd6610b7ec1b395190701dc170 lib/Jifty/Request.pm
 SHA1 f1a4b69c889b5d71b9ec63b809b2901506ee53e7 lib/Jifty/Request/Mapper.pm
-SHA1 8f9d2e7a93d94e9f9f2deab51096e409279a28ca lib/Jifty/Response.pm
-SHA1 5a9411a2180f6f41c0d94130b0e1d887981dd6c6 lib/Jifty/Result.pm
+SHA1 beaafa6a15b0da57b1bf546b40810c1b0fc27c19 lib/Jifty/Response.pm
+SHA1 008bc2cb27e6f3f6f3b5f1b1817c8f2a9aa20bd5 lib/Jifty/Result.pm
 SHA1 44466e45b0bf67fd0dd63e76f310acbdd27532b2 lib/Jifty/RightsFrom.pm
-SHA1 a1a5208a23faa7e62592eb48193914339c782531 lib/Jifty/Script.pm
-SHA1 5a43993da3b3ee701631d31256169bc04abd4ca0 lib/Jifty/Script/Action.pm
-SHA1 45abb466fd1570a4ddfe8716b6f057c98d562faa lib/Jifty/Script/App.pm
-SHA1 0bc172f882facfa110f834bc555ad9a695c8b2d9 lib/Jifty/Script/FastCGI.pm
-SHA1 a9143c05b3e31df932b9f457da16f95cf86e935d lib/Jifty/Script/Help.pm
-SHA1 b1ae97d3b31659ac92649f667caeae256bd82124 lib/Jifty/Script/Model.pm
-SHA1 0ee2886615210f1955a764bad4a8ec81de3b1328 lib/Jifty/Script/Schema.pm
-SHA1 fb8a385e8bc074445cf6c3e1286817d506f65aca lib/Jifty/Script/Server.pm
-SHA1 3adca0bd19c8575e8f95b34e5d3e1a904ad8ad52 lib/Jifty/Server.pm
-SHA1 94d52caa00eba059123c8abdd634750400d8b4a3 lib/Jifty/Test.pm
-SHA1 d80b250461515c856540048c24aca9fc7e453467 lib/Jifty/Test/WWW/Mechanize.pm
-SHA1 6b0aafbcba17e28e4d0e71c2b1c2092b541a6fd3 lib/Jifty/Upgrade.pm
-SHA1 6ce0fa38d02b02a717f795ac4358bc48e39ab582 lib/Jifty/Util.pm
-SHA1 921f9894c0d2d06861ef00e592b80182508733d1 lib/Jifty/Web.pm
-SHA1 bb4de30c907f068d2458518d315206dba18d9c23 lib/Jifty/Web/Form.pm
-SHA1 0957f296841597fdc77aeca768c418432b5ca7aa lib/Jifty/Web/Form/Clickable.pm
-SHA1 f18339637084b183af381f79b3fc8020b2275ac0 lib/Jifty/Web/Form/Element.pm
-SHA1 424f0dfeff8710515033cfeb03e5a8825bf5fd42 lib/Jifty/Web/Form/Field.pm
-SHA1 870c649d0f7bda9b182ff2c7207106a9647ce5df lib/Jifty/Web/Form/Field/Button.pm
-SHA1 36487dc0448d07a0c4d435bd43f31058e79143a6 lib/Jifty/Web/Form/Field/Checkbox.pm
+SHA1 0306af64a6289796db4b5ff2b8c5e7c23506a9e3 lib/Jifty/Script.pm
+SHA1 8717170bc50a1a5a1a2ed7cc3db845fa83e1a1e7 lib/Jifty/Script/Action.pm
+SHA1 cc832d70b473fc72ec3d4d29a926a36df056fdc6 lib/Jifty/Script/App.pm
+SHA1 29d13e52fe20d59515cb06fb30c38d111a407255 lib/Jifty/Script/FastCGI.pm
+SHA1 e25a259fc9fd3183a7981236f428f54ac4c4f49e lib/Jifty/Script/Help.pm
+SHA1 5ff6b511456d4fc5ea4c9d2139f01b92f558f5cc lib/Jifty/Script/Model.pm
+SHA1 4268d0e323c346773bc8f700c4b61abe9b608507 lib/Jifty/Script/Po.pm
+SHA1 4c1dd92fe12322db280dec84cf58e6e2a6f458c1 lib/Jifty/Script/Schema.pm
+SHA1 e39ef348a0b44c2e61a9029ba6451db0ad203fbb lib/Jifty/Script/Server.pm
+SHA1 b2b0a6023d94fc265921711e8e916f5a42ebeb23 lib/Jifty/Server.pm
+SHA1 6d339d87ba1f06fe9d8f852758259debb2410af5 lib/Jifty/Test.pm
+SHA1 1c227c39f3d5ba712b476466776049ff1ef790f5 lib/Jifty/Test/WWW/Mechanize.pm
+SHA1 5173f96ed2149c567a89947d4fe7af1942a361c2 lib/Jifty/Upgrade.pm
+SHA1 ee051e7ba367a79e6a10c3ba03c0657c80d02f17 lib/Jifty/Upgrade/Internal.pm
+SHA1 c31c8615eb8750933ad013caabe930d21a585479 lib/Jifty/Util.pm
+SHA1 55054be7348627f8c69f1edf3f0dfb7e7f4c4601 lib/Jifty/View/Mason/Handler.pm
+SHA1 e28c7337d93241f3ddc21740fb42a9aacbb32b6d lib/Jifty/View/Static/Handler.pm
+SHA1 b3a941af74599aa12e6dc18e6bf86fb5360b9a47 lib/Jifty/Web.pm
+SHA1 cec24f331a68394da33ce993d0f790f306240ea8 lib/Jifty/Web/Form.pm
+SHA1 0c9eb63024532f3e0ea15fe1904a3752adf7d10a lib/Jifty/Web/Form/Clickable.pm
+SHA1 362586699428578fd083e8d8128eb21b64a6c73c lib/Jifty/Web/Form/Element.pm
+SHA1 634eb327055bfc444f9a17d3502903197b9bbd66 lib/Jifty/Web/Form/Field.pm
+SHA1 c7c3c09acbba5139d6b01c99f255bcc3648a9838 lib/Jifty/Web/Form/Field/Button.pm
+SHA1 25794637f8ff0c36abb0c78254403b871e88069b lib/Jifty/Web/Form/Field/Checkbox.pm
 SHA1 9066ed3c620aa331451f4ac7045e66a3dee164e1 lib/Jifty/Web/Form/Field/Combobox.pm
 SHA1 cc86a97a80c6c9e22183a099979a712a3900a39a lib/Jifty/Web/Form/Field/Date.pm
 SHA1 e2db0ce71a56f59e8154a8af8187fab198c01fe7 lib/Jifty/Web/Form/Field/Hidden.pm
 SHA1 811f0cc04cd29dbd9060aed64c11776810160a6d lib/Jifty/Web/Form/Field/InlineButton.pm
 SHA1 959d0d0aa47541e59552a0b9fccfdb8f6b775ebd lib/Jifty/Web/Form/Field/Password.pm
 SHA1 d1c07c9d73324548820e6b10dd1bfca3244351cb lib/Jifty/Web/Form/Field/Radio.pm
+SHA1 5e6d07f48f59a7b2106a8f22ead83263368b26ad lib/Jifty/Web/Form/Field/ResetButton.pm
 SHA1 5e9ce28ff4d82d2d060bc9c4a7fb394a23284278 lib/Jifty/Web/Form/Field/Select.pm
 SHA1 5586d4fdda6b5b8e6014750d5b912be898b18465 lib/Jifty/Web/Form/Field/Text.pm
 SHA1 bb397fc6092ddb8196342e80a4148d07fcd037b0 lib/Jifty/Web/Form/Field/Textarea.pm
 SHA1 2548412d5bfbd08050d53ab5c58e0d962d4b2448 lib/Jifty/Web/Form/Field/Unrendered.pm
 SHA1 e37541952c969f2e74f942782d483de75e9265f9 lib/Jifty/Web/Form/Field/Upload.pm
-SHA1 0b9a7bb812ab1404413bba6fd199b0a1d1df5719 lib/Jifty/Web/Form/Link.pm
-SHA1 5f059c04c299a8f0f5177cb9b4fc01fb1536ee9f lib/Jifty/Web/Menu.pm
-SHA1 8c77eb3424b348af9af8bfac6789bb8a6c4e266f lib/Jifty/Web/PageRegion.pm
-SHA1 5b145f3a5aeb77619c661d0205a2037cb5c36a7e lib/Jifty/Web/Session.pm
-SHA1 cacb17a819f6cbed6967106d276dbac4dab9cbb5 lib/Jifty/YAML.pm
+SHA1 90a1c275378dffdb9c8a067ad4d99e5226e7b516 lib/Jifty/Web/Form/Link.pm
+SHA1 d4cf8068b8267566c28f3afb39701b74f046c050 lib/Jifty/Web/Menu.pm
+SHA1 31b03d0a7258168725af0c4cc1a6b003ca4d79df lib/Jifty/Web/PageRegion.pm
+SHA1 5738d6b35dfc7db50fc77b24e589d82f7303dc7c lib/Jifty/Web/Session.pm
+SHA1 9c58de075537515722cfbeb06e89a5a1dde34307 lib/Jifty/YAML.pm
+SHA1 2c5d29ea2981cc759cc5f5b27cf7c536d4ea9384 share/dtd/xhtml-lat1.ent
+SHA1 62229286e03ec35c922c8a7f9f3bb68412a78a55 share/dtd/xhtml-special.ent
+SHA1 e7749f99989ec8a9608f6cfbd41a5e5dddc18aec share/dtd/xhtml-symbol.ent
+SHA1 b4a6d708f6b55a48526e9483c718f2ed820df75c share/dtd/xhtml1-strict.dtd
+SHA1 ddf4a9e74074ad5df970f33a969c6a0fcbcb180c share/po/en.po
+SHA1 b65b002b9c7e5326823324c154cd2b3fc4f02b91 share/po/ja.po
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 share/web/static/css/app-base.css
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 share/web/static/css/app.css
 SHA1 5f569fc23eb815ee6f6d086aa6df87f6c38952d3 share/web/static/css/autohandler
@@ -137,44 +166,39 @@
 SHA1 67f41db40d62b81d71cb60c542695e0d7e6d393d share/web/static/images/pony.jpg
 SHA1 757e85619231e57be461e54982877457e0fbf6fc share/web/static/images/silk/calendar.png
 SHA1 6c4fa706e4937c931df3a27baaf2f02b966d0a92 share/web/static/js/app_behaviour.js
-SHA1 845c312261e0de2afdc7460e7c466b6fb960047b share/web/static/js/behaviour.js
+SHA1 2a6ec627df2601bd446152659cd0f907bb9eb55b share/web/static/js/behaviour.js
 SHA1 002299f9a7c667e43a662022bcc1ccaa036d0a79 share/web/static/js/bps_util.js
 SHA1 e9f9931abe8ddf86cf5cfddd1f0e963bb5bf0ccb share/web/static/js/combobox.js
 SHA1 d542a217ef9c527340d25bfffbccce27927d1259 share/web/static/js/dom-drag.js
 SHA1 a1d2c6292d656c275383b97aad6ca913b8a1b031 share/web/static/js/halo.js
-SHA1 0c1a1f04a0b677208c8b5b02f0f69984ef5b2bc0 share/web/static/js/ie7/README.txt
 SHA1 71e1661fe67650ac99e18ed916b6346973bf6b8a share/web/static/js/ie7/blank.gif
 SHA1 2d5c41c6b48c63e32e4107a06a5a50bc289609d5 share/web/static/js/ie7/ie7-base64.php
-SHA1 9ea5449d635d0100d8ec70ccf4cc54fbae5bbc25 share/web/static/js/ie7/ie7-content.htc
-SHA1 0e233c8ffb0936ccfc4e64e9cac770f73dd20113 share/web/static/js/ie7/ie7-core.js
-SHA1 bc5fd11d2aedf4f48f321f5ad850a18ce9470e1b share/web/static/js/ie7/ie7-css-strict.js
-SHA1 4dd06dc9ae0c64b7e14c747a224f0a3e3cca0f06 share/web/static/js/ie7/ie7-css2-selectors.js
-SHA1 90e6a8b5b50d6c19d17980a514b36af7656c6cde share/web/static/js/ie7/ie7-css3-selectors.js
-SHA1 a9dc95bc8586ad2e35734dbba47ffbcc6593c01b share/web/static/js/ie7/ie7-dhtml.js
-SHA1 836ae9c9927f5279db16d2a081ddb0c2048b7b11 share/web/static/js/ie7/ie7-dynamic-attributes.js
-SHA1 125350aa5e4256e94262a7efcb0551fee10fcbd3 share/web/static/js/ie7/ie7-fixed.js
-SHA1 72cce7aa33a95a5c4946a43dd9195034454ee1fa share/web/static/js/ie7/ie7-graphics.js
-SHA1 6cbaf2d306a50d5729c7204052d4737c6a03e501 share/web/static/js/ie7/ie7-html4.js
-SHA1 364ed019e7b2903eef23180897ee9dc6e2b0c164 share/web/static/js/ie7/ie7-ie5.js
-SHA1 a7d470dd888f73647d9d35b6a3b9c79ce00a6790 share/web/static/js/ie7/ie7-layout.js
-SHA1 58391b064893b1ab948aeb90dd78ec82cafc8447 share/web/static/js/ie7/ie7-load.htc
-SHA1 a8f4918198136fe86f9449cf6ca52c7ae197aaac share/web/static/js/ie7/ie7-object.htc
-SHA1 69580d73d0eabd711a9d52db879056e89a1f2b8f share/web/static/js/ie7/ie7-overflow.js
-SHA1 dc2fbd29b4a1aff364ff081f9eab85b9fcba85fd share/web/static/js/ie7/ie7-quirks.js
-SHA1 8c63ee84a8006c8642c5ea592ddd9235d1dc5924 share/web/static/js/ie7/ie7-recalc.js
-SHA1 9140ede8d2b92ae5c7a9bf67ab0668cfc4d6ed66 share/web/static/js/ie7/ie7-server.css
+SHA1 a813c91f960494a28c0792479bd446d9008764a2 share/web/static/js/ie7/ie7-content.htc
+SHA1 281007f811b6d46c7e299253d38dab6912630b66 share/web/static/js/ie7/ie7-core.js
+SHA1 c05eff3600e488b3639e8341cd426d5ffb58567b share/web/static/js/ie7/ie7-css-strict.js
+SHA1 d812da6b2d9a7c06c2264d561ae78d0fb3ca6b77 share/web/static/js/ie7/ie7-css2-selectors.js
+SHA1 e9158a23ccfc0b21673fef174afab519936c84de share/web/static/js/ie7/ie7-css3-selectors.js
+SHA1 1b2e95d42e38a5497193b37a0001672b0df10228 share/web/static/js/ie7/ie7-dhtml.js
+SHA1 2493ddbb7c9bcb03b9367a973b5de0dbbe940138 share/web/static/js/ie7/ie7-dynamic-attributes.js
+SHA1 c1719bbf030d7d005cdca53e24b34592ec3f4c75 share/web/static/js/ie7/ie7-fixed.js
+SHA1 09d6abf099f37debc752de278fbb9993f3fa4927 share/web/static/js/ie7/ie7-graphics.js
+SHA1 6b6aa72e8b39eda677cc5f4c1a8ee991c0218cb3 share/web/static/js/ie7/ie7-html4.js
+SHA1 ea82e0dcbd4715e93341f6844ccf42482b59a9e4 share/web/static/js/ie7/ie7-ie5.js
+SHA1 d89de0d352bbf9decd4d8d423ebac475b93f58e8 share/web/static/js/ie7/ie7-layout.js
+SHA1 20552483c8be4fc534ef8f8c03ce53f227e77f68 share/web/static/js/ie7/ie7-load.htc
+SHA1 ff59176d4ff80a7ab812ad86e5f745d8e956e577 share/web/static/js/ie7/ie7-object.htc
+SHA1 600dafb6b828072b2a154ad24dc74c1324cda130 share/web/static/js/ie7/ie7-overflow.js
+SHA1 3718dddea978e323ef86d2395aa37e9636ed53b7 share/web/static/js/ie7/ie7-quirks.js
+SHA1 d2f58711c9025bcf75a5ccea8a35c1dadb36fe97 share/web/static/js/ie7/ie7-recalc.js
 SHA1 d5b2889dd4fbdafe9ea3ce056595f3ac816276ba share/web/static/js/ie7/ie7-squish.js
-SHA1 c4457d8332262a6a608235b2fec294a0aab5ec17 share/web/static/js/ie7/ie7-standard-p.js
-SHA1 368d7e4a1823022f5054bcce56cbe111696654fb share/web/static/js/ie7/ie7-xml-extras.js
-SHA1 2e40e350058dc2891024b5002d0a5426f9d75da1 share/web/static/js/ie7/ie7.gif
-SHA1 774dba43b648140ab52b35ea2e38a3d9860bbdc2 share/web/static/js/ie7/test-trans.png
-SHA1 592f93648a53bd35cc709a2fd2188d54831483c9 share/web/static/js/ie7/test.html
-SHA1 156a7bb60ca33a462d2be977a2a3ddf12786c2f5 share/web/static/js/jifty.js
+SHA1 78b0e7ff680b8be91ebaf91ff5758435c5138c1c share/web/static/js/ie7/ie7-standard-p.js
+SHA1 a393b8d06cdf6afec444c6708b72ce4a081bc04b share/web/static/js/ie7/ie7-xml-extras.js
+SHA1 8db9110c0c11bee44f14f6108e3bd2e7b9345583 share/web/static/js/jifty.js
 SHA1 d6c17ef3717315c08659082144a2caf2e970b23d share/web/static/js/jsTrace.js
 SHA1 f15b0364f99d2e4c1af795c82883f89b9eaca9b2 share/web/static/js/json.js
 SHA1 bbc99bc8e6a9e0bc674efad95447ff1d7587e163 share/web/static/js/key_bindings.js
 SHA1 2f42c248378e4d748a7bbbf5b755f7642f221c43 share/web/static/js/prototype.js
-SHA1 1337313bf9f71a984317637485896f78cff32084 share/web/static/js/rico.js
+SHA1 fdc0ca851a37f7f55fd39b753d7eb1303dffd81b share/web/static/js/rico.js
 SHA1 164bc59cf75fe943edc80da65b19246fc9b9643e share/web/static/js/scriptaculous/builder.js
 SHA1 72542d2ad932833226780c239157a2e56264df1f share/web/static/js/scriptaculous/controls.js
 SHA1 28f001d3c48395daf0de22876a70d918db3a461e share/web/static/js/scriptaculous/dragdrop.js
@@ -182,86 +206,94 @@
 SHA1 914db330c7fe585dfeddce713558f04328fb51db share/web/static/js/scriptaculous/scriptaculous.js
 SHA1 cc2e31820eed69ae87b1b2befa50e8c4a8519342 share/web/static/js/scriptaculous/slider.js
 SHA1 6b42a40cac7d45f9fd6665e18c4e494704eff9e3 share/web/static/js/scriptaculous/unittest.js
-SHA1 efe4519111834e26e4634ca24ae8568119aba050 share/web/templates/__jifty/admin/_elements/nav
+SHA1 8e9492cde2256a31e02bc9f453f280daf301d039 share/web/templates/__jifty/admin/_elements/nav
+SHA1 0a362343ac62b44343ae26168e99612e23286880 share/web/templates/__jifty/admin/action/dhandler
 SHA1 1b55e3945405d09df59f0a40182f06f8f59a2e97 share/web/templates/__jifty/admin/autohandler
-SHA1 d3d6dbe901127dc06c350f3a5ca829756b719c87 share/web/templates/__jifty/admin/dhandler
 SHA1 69fb26d6edb033e220c0f9cbc1e2421d094c8cab share/web/templates/__jifty/admin/fragments/list/list
 SHA1 c8e0ac157175aa3e745af061aee7dd14ed38cbde share/web/templates/__jifty/admin/fragments/list/new_item
 SHA1 46be2b7f5debf56ef932f4a976cc962605c5429a share/web/templates/__jifty/admin/fragments/list/update
 SHA1 681c916ba7e51379fc701f4687ed984e79009ea4 share/web/templates/__jifty/admin/fragments/list/view
-SHA1 be764534ec5976f4bb9cb80169968b7007305432 share/web/templates/__jifty/admin/index.html
+SHA1 2fb6023a1b15ecb26460df3518a5284d5ae58ec8 share/web/templates/__jifty/admin/index.html
+SHA1 c78d4b3267acdf98a39c864fd0a1b4fbdc4d390c share/web/templates/__jifty/admin/model/dhandler
 SHA1 808a0cb0a8503d8e61d3ea7e4428588934083916 share/web/templates/__jifty/autocomplete.xml
-SHA1 0c9636949493b638c344d2c8f362295f122fe414 share/web/templates/__jifty/edit_file
-SHA1 686865991dfe411b7363eb924db353d2801ce537 share/web/templates/__jifty/error/dhandler
-SHA1 92b3a9d2549e74a25ec224b7faed1978c0713f8d share/web/templates/__jifty/halo
+SHA1 28c985c1308364b28ba03d121eef7937a6bd316f share/web/templates/__jifty/edit_file
+SHA1 f85d8cae8a2df3ee51b868a744a9e9af21925e0c share/web/templates/__jifty/error/_elements/error_text
+SHA1 e2d761b0b92f818eb2bbb91a15cef0a2471d2245 share/web/templates/__jifty/error/_elements/wrapper
+SHA1 0cf3e3f2f8447ea5f66fd22d325c578448129718 share/web/templates/__jifty/error/dhandler
+SHA1 78e1e0af483fa3bdac2de4e5a9d82486d67b8537 share/web/templates/__jifty/error/error.css
+SHA1 b76f6531c6b186a17bf86dee34916c7f63874324 share/web/templates/__jifty/error/mason_internal_error
+SHA1 0e0996f23048448689a97ed7c3537e923b70f7b6 share/web/templates/__jifty/halo
 SHA1 6a50927b6d7c7f5f2048a691299585cb2dd05677 share/web/templates/__jifty/online_docs/autohandler
-SHA1 3765d42571c6aa4d60016025742a34dfc873fa5e share/web/templates/__jifty/online_docs/content.html
-SHA1 3785e861c10973d5abc364595f2d356d57ec6b05 share/web/templates/__jifty/online_docs/index.html
-SHA1 5c559a6d32bb97a663fc5ffeb8117aa92378cac1 share/web/templates/__jifty/online_docs/toc.html
+SHA1 4ead9f70154dcd357746c9682a7a0e0ad5848a7b share/web/templates/__jifty/online_docs/content.html
+SHA1 bd81ff4e458c5e1a76c131dce40ffd71fd6a76f7 share/web/templates/__jifty/online_docs/index.html
+SHA1 630b516dede6767e8185de8211e6affd7b564cfe share/web/templates/__jifty/online_docs/toc.html
 SHA1 c23efed647cd94d2f49330bb4a7c5924549c7e62 share/web/templates/__jifty/validator.xml
 SHA1 301a3eeb0805592eee24a5427f436a4741f2aa35 share/web/templates/__jifty/webservices/xml
-SHA1 a0088d6079b90c1fcd4e0b4a1b4b04cc94d08951 share/web/templates/__jifty/webservices/yaml
-SHA1 06960a34fa4fd6b64759cb043113c37e52ce6a71 share/web/templates/_elements/header
+SHA1 c7384fcdf1ee7a3e347388c6619f6aa2f297656e share/web/templates/__jifty/webservices/yaml
+SHA1 f6331eec9e76687922ac05b0cf77081e5afce3d1 share/web/templates/_elements/header
 SHA1 d698194f3ec03043cec0c3c994f17b91a41ac6ea share/web/templates/_elements/javascript
-SHA1 3fbb49a3e7d1e4f0011f85e2ce23b2a99ba6629f share/web/templates/_elements/menu
+SHA1 47013856b16511bcdf3e0b6d3c5d67491a041351 share/web/templates/_elements/menu
 SHA1 4da6700ff1fdc390436ff05906f4df979c44d572 share/web/templates/_elements/nav
 SHA1 b74c8647eb89e1e189d3cefbbfae51da608edcff share/web/templates/_elements/page_nav
-SHA1 c1e70aaf5615e50751ec44536b43c03ad5c01985 share/web/templates/_elements/sidebar
-SHA1 dcfef9e55a0eecc8c65b2e9b0448519814ee73ae share/web/templates/_elements/wrapper
+SHA1 ed970d60b8f273e71302697733b81c66e14831ab share/web/templates/_elements/sidebar
+SHA1 17b431c9605140ea22330f8862579dbccb2b8380 share/web/templates/_elements/wrapper
 SHA1 35adfc3fd3cbf1c2c3310dd2c2a7eb7317495ced share/web/templates/autohandler
-SHA1 f70312104d1d411eaaa1d96d1cf8ff1a7a515c07 share/web/templates/dhandler
-SHA1 611da981cc31d051000b76b84f2a8250ed26f6dc share/web/templates/helpers/calendar.html
-SHA1 89bbc7042ac1843eff85612c9742e337e5f71b70 share/web/templates/index.html
+SHA1 106fc0286e2aff5a01d9a623c37fc807451f2037 share/web/templates/dhandler
+SHA1 b9d730f675335894e36b780202e1afbe98b2985f share/web/templates/helpers/calendar.html
+SHA1 1bd17a07884f71740a048c41b67ac9b06915bf76 share/web/templates/index.html
 SHA1 76ec5be5f10be9402d1df4a1a2dee831ed8bff1a t/00-load.t
-SHA1 2e8659a197b7b983202a1edc5bdd78bbe86fd75b t/01-dependencies.t
+SHA1 10a25db715aa311234862b2337f31e19ad81f4cf t/01-dependencies.t
+SHA1 ac0fd98e8fc5d5b11d880dee8098e06e7ba587de t/01-version_checks.t
 SHA1 fc52f8d8fde7fd7dc6d2bd6e77a6ce8f6e89029e t/02-connect.t
 SHA1 055ff56a703e3fab96b0ab981069764c9360b474 t/03-form-protocol.t
-SHA1 98f8a2f37e3e07e35cc62622660eadf165e693fd t/04-sessions.t
 SHA1 cde30bf929bda18b9b41e287596887e0598dee59 t/05-dispatcher.t
 SHA1 acc343a5359eda7ce3765b16a70a6906a625ab38 t/06-forms.t
-SHA1 6dd00d92053b21c3c010d721d907b8c93b9817e6 t/07-limit-actions.t
-SHA1 b5cb07c1a06f1719adf35cbb3c573ad0e96908d4 t/99-pod-coverage.t
+SHA1 fb94cd822bc3e8e40c955a0488bcd1fed8d4f2a4 t/07-limit-actions.t
+SHA1 59c44900b1cb957d262f96363ceff21b46e0d598 t/99-pod-coverage.t
 SHA1 bb0da54f2b3f2d7955baa41ee458cb3d1887f475 t/99-pod.t
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 t/Continuations/bin/jifty
 SHA1 69d51b37601c4fc51b989234f96611357d96c137 t/Continuations/lib/Continuations/Action/CrossBridge.pm
 SHA1 01ebcf50d361afff117bfbb14125470da3010f90 t/Continuations/lib/Continuations/Action/GetGrail.pm
+SHA1 904ccf244ddafa2cf756e2de1f251b0962399750 t/Continuations/share/web/templates/autohandler
+SHA1 3b7dfa8465eba725b1322a16c89e86db5aeda1e0 t/Continuations/share/web/templates/black-knight-color.html
+SHA1 33dec4df44d11fb3c62a83a2bbb9e21b82942a35 t/Continuations/share/web/templates/black-knight-name.html
+SHA1 3b57df6661dd414469de257a9229b0c64a86f028 t/Continuations/share/web/templates/black-knight-quest.html
+SHA1 b69550b92c17e7749ca64b299e7e15bcd8596eae t/Continuations/share/web/templates/black-knight.html
+SHA1 a57494ba5021699868a520313332b08eee3bb1e9 t/Continuations/share/web/templates/help-help.html
+SHA1 6831427bd1a041b49a320d60ef7baf2e2e62be1a t/Continuations/share/web/templates/index-help.html
+SHA1 1e07e30d85ae2a6a21fd7ae3375b449486f8b2a4 t/Continuations/share/web/templates/index.html
 SHA1 233ce8afb5de542506f03195f0d905f97d96324a t/Continuations/t/00-prototype.t
 SHA1 322a73bd71463fff6171168cf2ea13b3237e8306 t/Continuations/t/01-raw-api.t
 SHA1 5220780feaa3fc9a432e0a2043cc07a1c6d198ec t/Continuations/t/02-api.t
 SHA1 37fa61497ffea2011ae176a2237dad18a8fc3aec t/Continuations/t/03-gc.t
-SHA1 58ebfefee30417e877c863ef988ed7d24cb88989 t/Continuations/web/templates/autohandler
-SHA1 3b7dfa8465eba725b1322a16c89e86db5aeda1e0 t/Continuations/web/templates/black-knight-color.html
-SHA1 33dec4df44d11fb3c62a83a2bbb9e21b82942a35 t/Continuations/web/templates/black-knight-name.html
-SHA1 3b57df6661dd414469de257a9229b0c64a86f028 t/Continuations/web/templates/black-knight-quest.html
-SHA1 b69550b92c17e7749ca64b299e7e15bcd8596eae t/Continuations/web/templates/black-knight.html
-SHA1 a57494ba5021699868a520313332b08eee3bb1e9 t/Continuations/web/templates/help-help.html
-SHA1 6831427bd1a041b49a320d60ef7baf2e2e62be1a t/Continuations/web/templates/index-help.html
-SHA1 1e07e30d85ae2a6a21fd7ae3375b449486f8b2a4 t/Continuations/web/templates/index.html
 SHA1 29a9d0b63d274805fe33c3123faf1a5f871a0e24 t/Jifty.pm
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 t/Mapper/bin/jifty
 SHA1 da400e1042a4c521197a8a49b854dc077243af6b t/Mapper/lib/Mapper/Action/CrossBridge.pm
 SHA1 6bee8bba7db76902f300f69bbc7ffbd045380074 t/Mapper/lib/Mapper/Action/GetGrail.pm
+SHA1 904ccf244ddafa2cf756e2de1f251b0962399750 t/Mapper/share/web/templates/autohandler
+SHA1 14a865ad9c903f69dffa595c463f343dd29f62e2 t/Mapper/share/web/templates/index.html
 SHA1 7ef92738118be1ae4bf958babec0ba0882ff1ecc t/Mapper/t/00-prototype.t
-SHA1 c58bd660ceeabb3c4bc684e96156cb8e624cb67c t/Mapper/t/01-raw-api.t
+SHA1 b596b8dda89532884eebd5b692bbd6298bbd21f1 t/Mapper/t/01-raw-api.t
 SHA1 05cab3dccff05395659b5b16724ad75476d90db9 t/Mapper/t/02-api.t
-SHA1 58ebfefee30417e877c863ef988ed7d24cb88989 t/Mapper/web/templates/autohandler
-SHA1 14a865ad9c903f69dffa595c463f343dd29f62e2 t/Mapper/web/templates/index.html
 SHA1 b8033f506649985b6244c7c61462aae54a212c89 t/TestApp/bin/jifty
-SHA1 16f80a99e260b911df1fcbbaf9be891561123872 t/TestApp/lib/TestApp/Dispatcher.pm
+SHA1 f7227a05f9dba7147cc9a497bd196993d60589ea t/TestApp/lib/TestApp/Action/DoSomething.pm
+SHA1 802334e8157cdda70a1f6675aa58ac029e2234e9 t/TestApp/lib/TestApp/Dispatcher.pm
 SHA1 8cc5115b8497be8772ba553d6f8d5e6e76283edd t/TestApp/lib/TestApp/Model/User.pm
+SHA1 67f41db40d62b81d71cb60c542695e0d7e6d393d t/TestApp/share/web/static/images/pony.jpg
+SHA1 a2e7bf8d2d52bbaf360af24b4ffc00c68d7e31f2 t/TestApp/share/web/templates/dispatch/basic
+SHA1 d1e244371109ce216bfd6b9ac03374737461577c t/TestApp/share/web/templates/dispatch/basic-show
+SHA1 c5bcab69d7c4e7ed05962ca8e160a3116ec4263d t/TestApp/share/web/templates/index.html
 SHA1 d21256a0b0b25ffc5ccc549bc1e6839694ac2921 t/TestApp/t/00-model-User.t
 SHA1 fc82fe131a569aacf7d886265617a13bcb4dd4d8 t/TestApp/t/00-prototype.t
 SHA1 23fc2f1a93c3243ed86891f29dc080facf1430cc t/TestApp/t/01-config.t
 SHA1 7ee50f1358dcedb7a4ec6b2336b423dbfd345461 t/TestApp/t/02-dispatch.t
 SHA1 37501cb9ad895131f10abe23b832f9bababd5fe4 t/TestApp/t/03-static.t
-SHA1 67f41db40d62b81d71cb60c542695e0d7e6d393d t/TestApp/web/static/images/pony.jpg
-SHA1 e3e6417e20600991c3b58cd1858125bc5e4c4ff0 t/TestApp/web/templates/dispatch/basic
-SHA1 b9924aea8caff2581372194d11eebac02e7ec081 t/TestApp/web/templates/dispatch/basic-show
-SHA1 c5bcab69d7c4e7ed05962ca8e160a3116ec4263d t/TestApp/web/templates/index.html
+SHA1 212fe99dac8967a6feb0725d0e4b102b9a1b0c39 t/TestApp/t/04-sessions.t
+SHA1 2f5dd61abd226ed559cecafa4f4817240f98c29a t/TestApp/t/05-actions-before-redirect.pm
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.1 (GNU/Linux)
+Version: GnuPG v1.4.2.2 (GNU/Linux)
 
-iD8DBQFEIIXkEi9d9xCOQEYRAvJDAKCfqKWr7g672sC+oFGO0sEE1KfTsQCeMvXz
-VirYJDaIGX1PbmVrPCbK0Nk=
-=xyxb
+iD8DBQFEW58uEi9d9xCOQEYRAnduAJ48/4YvmCiKosdVALI9ciN2k3ND0ACghf6u
+R4DHRm0Msch/QIlVAamTVRY=
+=3Dxb
 -----END PGP SIGNATURE-----

Modified: jifty/branches/jifty-jsan/lib/Jifty.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty.pm	Sat May  6 18:05:50 2006
@@ -5,7 +5,7 @@
 use encoding 'utf8';
 # Work around the fact that Time::Local caches thing on first require
 BEGIN { local $ENV{'TZ'} = "GMT";  require Time::Local;}
-our $VERSION = '0.60428';
+our $VERSION = '0.60505';
 
 =head1 NAME
 

Modified: jifty/branches/jifty-jsan/lib/Jifty/Action/Devel/FileEditor.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Action/Devel/FileEditor.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Action/Devel/FileEditor.pm	Sat May  6 18:05:50 2006
@@ -2,6 +2,7 @@
 
 use base qw/Jifty::Action/;
 use File::Spec;
+use File::Basename ();
 
 
 =head1 NAME
@@ -161,9 +162,9 @@
 sub take_action {
     my $self = shift;
     my $dest  = $self->{'write_to'};
-    my @dirs = File::Spec->splitdir( $dest );
-    pop @dirs; # discard filename. we only want to make the directory ;)
-    Jifty::Util->make_path( File::Spec->catdir(@dirs));
+
+    # discard filename. we only want to make the directory ;)
+    Jifty::Util->make_path( File::Basename::dirname( $dest ) );
     my $writehandle = IO::File->new();
 
     my $content = $self->argument_value('content');

Modified: jifty/branches/jifty-jsan/lib/Jifty/Handle.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Handle.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Handle.pm	Sat May  6 18:05:50 2006
@@ -108,8 +108,8 @@
         my $dbv  = Jifty::Model::Metadata->load("application_db_version");
         my $appv = Jifty->config->framework('Database')->{'Version'};
 
-        # Backwards compatibility -- it used to be in _db_version
         if ( not defined $dbv ) {
+            # First layer of backwards compatibility -- it used to be in _db_version
             my @v;
             eval {
                 local $SIG{__WARN__} = sub { };
@@ -118,6 +118,14 @@
             };
             $dbv = join( ".", @v ) if @v == 3;
         }
+        if ( not defined $dbv ) {
+            # It was also called the 'key' column, not the data_key column
+            eval {
+                local $SIG{__WARN__} = sub { };
+                $dbv = Jifty->handle->fetch_result(
+                    "SELECT value FROM _jifty_metadata WHERE key = 'application_db_version'");
+            } or undef($dbv);
+        }
 
         die
             "Application schema has no version in the database; perhaps you need to run this:\n"

Modified: jifty/branches/jifty-jsan/lib/Jifty/JSON.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/JSON.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/JSON.pm	Sat May  6 18:05:50 2006
@@ -29,7 +29,7 @@
     local $@;
     no strict 'refs';
     no warnings 'once';
-    if (eval { require JSON::Syck; $JSON::Syck::VERSION >= 0.05 }) {
+    if (eval { require JSON::Syck; JSON::Syck->VERSION(0.05) }) {
         *jsonToObj = *_jsonToObj_syck;
         *objToJson = *_objToJson_syck;
     }

Modified: jifty/branches/jifty-jsan/lib/Jifty/Model/Metadata.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Model/Metadata.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Model/Metadata.pm	Sat May  6 18:05:50 2006
@@ -22,8 +22,8 @@
 package Jifty::Model::Metadata::Schema;
 use Jifty::DBI::Schema;
 
-column key   => type is 'text';
-column value => type is 'text';
+column data_key => type is 'text';
+column value    => type is 'text';
 
 package Jifty::Model::Metadata;
 use version;
@@ -66,7 +66,7 @@
     # here, right now.
     eval {
         local $SIG{__WARN__} = sub { };
-        $self->load_by_cols( key => $key );
+        $self->load_by_cols( data_key => $key );
     };
     return undef unless $self->id;
     return $self->value;
@@ -85,11 +85,11 @@
         unless ref $self;
 
     my ( $key, $value ) = @_;
-    $self->load_by_cols( key => $key );
+    $self->load_by_cols( data_key => $key );
     if ( $self->id ) {
         $self->set_value($value);
     } else {
-        $self->create( key => $key, value => $value );
+        $self->create( data_key => $key, value => $value );
     }
 }
 

Modified: jifty/branches/jifty-jsan/lib/Jifty/Model/Session.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Model/Session.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Model/Session.pm	Sat May  6 18:05:50 2006
@@ -18,7 +18,7 @@
 use Jifty::DBI::Schema;
 
 column session_id => type is 'varchar(32)';
-column key => type is 'text';
+column data_key => type is 'text';
 column value => type is 'blob',
   filters are 'Jifty::DBI::Filter::Storable';
 column created => type is 'timestamp',

Modified: jifty/branches/jifty-jsan/lib/Jifty/Object.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Object.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Object.pm	Sat May  6 18:05:50 2006
@@ -35,7 +35,7 @@
     return($self->{'_current_user'});
 }
 
-=for private _get_current_user
+=head2 PRIVATE _get_current_user
 
 Takes the ARGS paramhash passed to _init.
      Find the current user. First, try to see if it's explicit.

Modified: jifty/branches/jifty-jsan/lib/Jifty/Request.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Request.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Request.pm	Sat May  6 18:05:50 2006
@@ -713,7 +713,7 @@
 
 package Jifty::Request::Action;
 use base 'Class::Accessor::Fast';
-__PACKAGE__->mk_accessors( qw/moniker arguments class order active modified/);
+__PACKAGE__->mk_accessors( qw/moniker arguments class order active modified has_run/);
 
 =head2 Jifty::Request::Action
 
@@ -731,6 +731,8 @@
 
 =head3 active [BOOLEAN]
 
+=head3 has_run [BOOLEAN]
+
 =cut
 
 sub argument {

Modified: jifty/branches/jifty-jsan/lib/Jifty/Script/Action.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Script/Action.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Script/Action.pm	Sat May  6 18:05:50 2006
@@ -137,17 +137,6 @@
                  );
 }
 
-sub _mkpath {
-    my $self = shift;
-    my @parts = File::Spec->splitdir( shift );
-    for (0..$#parts) {
-        my $path = File::Spec->catdir(@parts[0..$_]);
-        next if -e $path and -d $path;
-        print("Creating directory $path\n");
-        mkdir $path or die "Can't create $path: $!";
-    }
-}
-
 sub _write {
     my $self = shift;
     my %files = (@_);
@@ -156,7 +145,7 @@
         my ($volume, $dir, $file) = File::Spec->splitpath($path);
 
         # Make sure the directories we need are there
-        $self->_mkpath($dir);
+        Jifty::Util::make_path($dir);
 
         # If it already exists, bail
         if (-e $path and not $self->{force}) {

Modified: jifty/branches/jifty-jsan/lib/Jifty/Script/App.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Script/App.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Script/App.pm	Sat May  6 18:05:50 2006
@@ -7,6 +7,7 @@
 use File::Copy;
 use Jifty::Config;
 use Jifty::YAML;
+use File::Basename;
 
 __PACKAGE__->mk_accessors(qw/prefix dist_name mod_name/);
 
@@ -67,10 +68,18 @@
 sub _install_jifty_binary {
     my $self = shift;
     my $prefix = $self->prefix;
+    my $basename = basename($0);
+
     # Copy our running copy of 'jifty' to bin/jifty
-    copy($0, "$prefix/bin/jifty");
+    copy($0, "$prefix/bin/$basename");
     # Mark it executable
-    chmod(0555, "$prefix/bin/jifty");
+    chmod(0555, "$prefix/bin/$basename");
+
+    # Do the same for .bat if we are on a DOSish platform
+    if (-e "$0.bat") {
+        copy("$0.bat", "$prefix/bin/$basename.bat");
+        chmod(0555, "$prefix/bin/$basename.bat");
+    }
 }
 
 

Modified: jifty/branches/jifty-jsan/lib/Jifty/Script/Model.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Script/Model.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Script/Model.pm	Sat May  6 18:05:50 2006
@@ -140,17 +140,6 @@
                  );
 }
 
-sub _mkpath {
-    my $self = shift;
-    my @parts = File::Spec->splitdir( shift );
-    for (0..$#parts) {
-        my $path = File::Spec->catdir(@parts[0..$_]);
-        next if -e $path and -d $path;
-        print("Creating directory $path\n");
-        mkdir $path or die "Can't create $path: $!";
-    }
-} 
-
 sub _write {
     my $self = shift;
     my %files = (@_);
@@ -159,7 +148,7 @@
         my ($volume, $dir, $file) = File::Spec->splitpath($path);
 
         # Make sure the directories we need are there
-        $self->_mkpath($dir);
+	Jifty::Util::make_path($dir);
 
         # If it already exists, bail
         if (-e $path and not $self->{force}) {

Modified: jifty/branches/jifty-jsan/lib/Jifty/Script/Schema.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Script/Schema.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Script/Schema.pm	Sat May  6 18:05:50 2006
@@ -144,13 +144,14 @@
             logger_component => 'SchemaTool',
         );
     };
+    
     if ( $@ =~ /doesn't match (application schema|running jifty) version/i) {
         # We found an out-of-date DB.  Upgrade it
         $self->{setup_tables} = 1;
     } elsif ( $@ =~ /no version in the database/i ) {
         # No version table.  Assume the DB is empty.
         $self->{create_all_tables} = 1;
-    } elsif ( $@ =~ /database .*? does not exist/i ) {
+    } elsif ( $@ =~ /database .*? does not exist/i or $@ =~ /unknown database/) {
         # No database exists; we'll need to make one and fill it up
         $self->{create_database}   = 1;
         $self->{create_all_tables} = 1;
@@ -250,7 +251,18 @@
 
 sub upgrade_jifty_tables {
     my $self = shift;
-    my $dbv  = version->new( Jifty::Model::Metadata->load( 'jifty_db_version' ) || '0.60426' );
+    my $dbv  = Jifty::Model::Metadata->load( 'jifty_db_version' );
+    unless ($dbv) {
+        # Backwards combatibility -- it usd to be 'key' not 'data_key';
+        eval {
+            local $SIG{__WARN__} = sub { };
+            $dbv = Jifty->handle->fetch_result(
+                "SELECT value FROM _jifty_metadata WHERE key = 'jifty_db_version'");
+        };
+    }
+    $dbv ||= '0.60426';
+    $dbv = version->new($dbv);
+
     my $appv = version->new( $Jifty::VERSION );
 
     $self->upgrade_tables( "Jifty" => $dbv, $appv, "Jifty::Upgrade::Internal" );

Modified: jifty/branches/jifty-jsan/lib/Jifty/Upgrade.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Upgrade.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Upgrade.pm	Sat May  6 18:05:50 2006
@@ -16,7 +16,7 @@
 
 use base qw/Jifty::Object Exporter/;
 use vars qw/%UPGRADES @EXPORT/;
- at EXPORT = qw/since/;
+ at EXPORT = qw/since rename/;
 
 =head2 since I<VERSION> I<SUB>
 
@@ -59,9 +59,44 @@
 =cut
 
 sub upgrade_to {
-  my $class = shift;
-  my $version = shift;
-  return $UPGRADES{$class}{$version} || sub {};
+    my $class = shift;
+    my $version = shift;
+    return $UPGRADES{$class}{$version} || sub {};
+}
+
+=head2 rename table => CLASS, [column => COLUMN,] to => NAME
+
+Used in upgrade subroutines, this executes the necessary SQL to rename
+the table, or column in the table, to a new name.
+
+=cut
+
+sub rename {
+    my (%args) = @_;
+
+    $args{table} ||= $args{in};
+    die "Must provide a table to rename" unless $args{table};
+
+    Jifty::Util->require($args{table});
+    $args{table} = $args{table}->table;
+
+    if ($args{column}) {
+        my $driver = Jifty->config->framework('Database')->{'Driver'};
+        if ($driver eq "SQLite") {
+            # It's possible to work around this, but it's a PITA that
+            # I haven't figured out all of the details of.  It
+            # involves creating a temporary table that's a duplicate
+            # of the current table, copying the data over, dropping
+            # the original table, recreating it with the column
+            # renamed, transferring the data back, and then dropping
+            # the temporary table.  Painful enough for ya?
+            die "SQLite does not support renaming columns in tables.  We are sad!";
+        } else {
+            Jifty->handle->simple_query("ALTER TABLE $args{table} RENAME $args{column} TO $args{to}");
+        }
+    } else {
+        Jifty->handle->simple_query("ALTER TABLE $args{table} RENAME TO $args{to}");
+    }
 }
 
 1;

Modified: jifty/branches/jifty-jsan/lib/Jifty/Upgrade/Internal.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Upgrade/Internal.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Upgrade/Internal.pm	Sat May  6 18:05:50 2006
@@ -20,4 +20,9 @@
     Jifty::Model::Metadata->store( application_db_version => version->new(join'.', at v));
 };
 
+since '0.60504' => sub {
+    rename column => 'key', in => 'Jifty::Model::Session',  to => 'data_key';
+    rename column => 'key', in => 'Jifty::Model::Metadata', to => 'data_key';
+};
+
 1;

Modified: jifty/branches/jifty-jsan/lib/Jifty/Util.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Util.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Util.pm	Sat May  6 18:05:50 2006
@@ -14,8 +14,10 @@
 
 use Jifty;
 use File::Spec;
+use File::Path;
 use File::ShareDir;
 use UNIVERSAL::require;
+use ExtUtils::MakeMaker ();
 use Cwd ();
 
 # Trivial memoization to ward off evil Cwd calls.
@@ -112,7 +114,7 @@
         while (@root) {
             my $try = File::Spec->catdir( @root, "bin", "jifty" );
             if (    -e $try
-                and -x $try
+                and (-x $try or MM->maybe_command($try))
                 and $try ne "/usr/bin/jifty"
                 and $try ne "/usr/local/bin/jifty" )
             {
@@ -158,17 +160,7 @@
 sub make_path {
     my $self = shift;
     my $whole_path = shift;
-    my @dirs = File::Spec->splitdir( $whole_path );
-    my $path ='';
-    foreach my $dir ( @dirs) {
-        $path = File::Spec->catdir($path, $dir);
-        if (-d $path) { next }
-        if (-w $path) { die "$path not writable"; }
-        
-        
-        mkdir($path) || die "Couldn't create directory $path: $!";
-    }
-
+    File::Path::mkpath([$whole_path]);
 }
 
 =head2 require PATH

Modified: jifty/branches/jifty-jsan/lib/Jifty/Web.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Web.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Web.pm	Sat May  6 18:05:50 2006
@@ -262,6 +262,7 @@
 
             $self->log->debug("Running action.");
             eval { $action->run; };
+            $request_action->has_run(1);
 
             if ( my $err = $@ ) {
                 # poor man's exception propagation
@@ -491,13 +492,25 @@
     my $self = shift;
     my $page = shift || $self->next_page;
 
+    my @unrun = grep {not $_->has_run} Jifty->web->request->actions;
+
     if (   $self->response->results
-        or $self->request->state_variables )
+        or $self->request->state_variables
+        or @unrun )
     {
         my $request = Jifty::Request->new();
         $request->path($page);
         $request->add_state_variable( key => $_->key, value => $_->value )
           for $self->request->state_variables;
+        for (@unrun) {
+            $request->add_action(
+                moniker   => $_->moniker,
+                class     => $_->class,
+                order     => $_->order,
+                active    => $_->active,
+                arguments => $_->arguments,
+            );
+        }
         my $cont = Jifty::Continuation->new(
             request  => $request,
             response => $self->response,

Modified: jifty/branches/jifty-jsan/lib/Jifty/Web/Form.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Web/Form.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Web/Form.pm	Sat May  6 18:05:50 2006
@@ -1,6 +1,6 @@
 use warnings;
 use strict;
- 
+
 package Jifty::Web::Form;
 
 use base qw/Jifty::Object Class::Accessor::Fast/;
@@ -9,11 +9,11 @@
 
 =head2 new ARGS
 
-Creates a new L<Jifty::Web::Form>.  Arguments: 
+Creates a new L<Jifty::Web::Form>.  Arguments:
 
 =over
-   
-=item  name 
+
+=item  name
 
 =back
 
@@ -33,9 +33,9 @@
     return $self;
 }
 
-=for private _init
+=head2 PRIVATE _init
 
-Reinitialize this form. 
+Reinitialize this form.
 
 =over
 
@@ -77,9 +77,9 @@
 
 =head2 is_open [BOOL]
 
-This accessor returns true if Jifty is currently in the middle of rendering a form 
-(if it's printed a <form> but not yet printed a </form> tag.) Use this in your 
-components to decide whether to open a form or not if you might be called from a 
+This accessor returns true if Jifty is currently in the middle of rendering a form
+(if it's printed a <form> but not yet printed a </form> tag.) Use this in your
+components to decide whether to open a form or not if you might be called from a
 template that opened the form for you.
 
 =cut
@@ -97,7 +97,7 @@
 sub add_action {
     my $self = shift;
     $self->register_action(Jifty->web->new_action(@_));
-} 
+}
 
 
 
@@ -162,7 +162,7 @@
     Jifty->web->out($form_start);
     $self->is_open(1);
     '';
-} 
+}
 
 =head2 submit MESSAGE, [PARAMETERS]
 
@@ -175,14 +175,14 @@
 
 sub submit {
     my $self = shift;
-    
+
     my $button = Jifty::Web::Form::Clickable->new(submit => undef, @_)->generate;
-    Jifty->web->out(qq{<span class="submit_button">}); 
+    Jifty->web->out(qq{<span class="submit_button">});
     $button->render_widget;
     Jifty->web->out(qq{</span>});
 
     return '';
-} 
+}
 
 =head2 end
 
@@ -208,16 +208,16 @@
 
     Jifty->web->out( qq!</form>\n! );
     $self->is_open(0);
-    # Clear out all the registered actions and the name 
+    # Clear out all the registered actions and the name
     $self->_init();
 
     '';
-} 
+}
 
 
 =head2 print_action_registration MONIKER
 
-Print out the action registration goo for this action _right now_, unless we've already done so. 
+Print out the action registration goo for this action _right now_, unless we've already done so.
 
 =cut
 
@@ -225,7 +225,7 @@
 sub print_action_registration {
     my $self = shift;
     my $moniker = shift;
-  
+
 
     my $action = $self->has_action($moniker);
     return unless ($action);
@@ -252,7 +252,7 @@
 
     my %vars = Jifty->web->state_variables;
     for (keys %vars) {
-        Jifty->web->out( qq{<input type="hidden" name="} 
+        Jifty->web->out( qq{<input type="hidden" name="}
                 . $_
                 . qq{" value="}
                 . $vars{$_}

Modified: jifty/branches/jifty-jsan/lib/Jifty/Web/Form/Field.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Web/Form/Field.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Web/Form/Field.pm	Sat May  6 18:05:50 2006
@@ -1,4 +1,4 @@
-=for properties
+=begin properties
 
 constructor
 canonicalizer
@@ -15,6 +15,7 @@
 length
 mandatory
 
+=end properties
 
 =cut
 

Modified: jifty/branches/jifty-jsan/lib/Jifty/Web/PageRegion.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Web/PageRegion.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Web/PageRegion.pm	Sat May  6 18:05:50 2006
@@ -47,7 +47,7 @@
 
 A boolean; whether or not the region, when rendered, will include the
 HTML region preamble that makes Javascript aware of its presence.
-Defaults to false, as this is usually handled by Mason components.
+Defaults to true.
 
 =back
 

Modified: jifty/branches/jifty-jsan/lib/Jifty/Web/Session.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/Web/Session.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/Web/Session.pm	Sat May  6 18:05:50 2006
@@ -113,7 +113,7 @@
     $setting->load_by_cols(
         session_id => $self->id,
         key_type   => $key_type,
-        key        => $key
+        data_key   => $key
     );
     return $setting->value;
 }
@@ -139,7 +139,7 @@
     $setting->load_by_cols(
         session_id => $self->id,
         key_type   => $key_type,
-        key        => $key
+        data_key   => $key
     );
     if ( $setting->id ) {
         $setting->set_value($value);
@@ -147,7 +147,7 @@
         $setting->create(
             session_id => $self->id,
             key_type   => $key_type,
-            key        => $key,
+            data_key   => $key,
             value      => $value
         );
     }
@@ -171,7 +171,7 @@
     $setting->load_by_cols(
         session_id => $self->id,
         key_type   => $key_type,
-        key        => $key
+        data_key   => $key
     );
     $setting->delete if $setting->id;
 }

Modified: jifty/branches/jifty-jsan/lib/Jifty/YAML.pm
==============================================================================
--- jifty/branches/jifty-jsan/lib/Jifty/YAML.pm	(original)
+++ jifty/branches/jifty-jsan/lib/Jifty/YAML.pm	Sat May  6 18:05:50 2006
@@ -19,7 +19,7 @@
     no strict 'refs';
     no warnings 'once';
 
-    if ( eval { require YAML::Syck; $YAML::Syck::VERSION >= 0.27 } ) {
+    if ( eval { require YAML::Syck; $YAML::Syck->VERSION(0.27) } ) {
         *Load     = *YAML::Syck::Load;
 
         # XXX Force non-Syck Dump until it can handle dumping circular

Added: jifty/branches/jifty-jsan/t/01-version_checks.t
==============================================================================
--- (empty file)
+++ jifty/branches/jifty-jsan/t/01-version_checks.t	Sat May  6 18:05:50 2006
@@ -0,0 +1,44 @@
+#!/usr/bin/perl -w
+use strict;
+use Test::More qw(no_plan);
+
+# by Eric Wilhelm in response to Randal Schwartz pointing out that
+# CPAN.pm chokes on the VERSION >... construct
+# I dare not mention it here.
+
+use ExtUtils::MakeMaker;
+use_ok('Jifty::Everything');
+
+# XXX there may be a more cross-platform and harness-friendly way to say
+# this.  Tricky bit is that the harness absolutifies the lib paths or
+# plans to chdir() somewhere.
+
+# just look for Jifty.pm
+my $dir = $INC{'Jifty.pm'};
+$dir =~ s/Jifty\.pm$//;
+my @files = grep({$_ =~ m/^$dir/} map({$INC{$_}} grep(/^Jifty\//, keys(%INC))));
+ok(scalar(@files));
+
+foreach my $file (@files) {
+	# Gah! parse_version complains on stderr!
+	my ($e, @a) = error_catch(sub {MM->parse_version($file)});
+	ok(($e || '') eq '', $file) or warn "$e ";
+}
+
+# runs subroutine reference, looking for error message $look in STDERR
+# and runs tests based on $name
+#   ($errs, @ans) = error_catch(sub {$this->test()});
+#
+sub error_catch {
+	my ($sub) = @_;
+	my $TO_ERR;
+	open($TO_ERR, '<&STDERR');
+	close(STDERR);
+	my $catch;
+	open(STDERR, '>', \$catch);
+	my @ans = $sub->();
+	open(STDERR, ">&", $TO_ERR);
+	close($TO_ERR);
+	return($catch, @ans);
+} # end subroutine error_catch definition
+########################################################################

Added: jifty/branches/jifty-jsan/t/TestApp/lib/TestApp/Action/DoSomething.pm
==============================================================================
--- (empty file)
+++ jifty/branches/jifty-jsan/t/TestApp/lib/TestApp/Action/DoSomething.pm	Sat May  6 18:05:50 2006
@@ -0,0 +1,11 @@
+package TestApp::Action::DoSomething;
+
+use base qw/Jifty::Action/;
+
+sub take_action {
+    my $self = shift;
+
+    $self->result->message("Something happened!");
+}
+
+1;

Modified: jifty/branches/jifty-jsan/t/TestApp/lib/TestApp/Dispatcher.pm
==============================================================================
--- jifty/branches/jifty-jsan/t/TestApp/lib/TestApp/Dispatcher.pm	(original)
+++ jifty/branches/jifty-jsan/t/TestApp/lib/TestApp/Dispatcher.pm	Sat May  6 18:05:50 2006
@@ -1,6 +1,16 @@
 package TestApp::Dispatcher;
 use Jifty::Dispatcher -base;
 
+before '/redirect' => run {
+    Jifty->web->request->add_action(
+        moniker => 'thing',
+        class   => 'DoSomething',
+    );
+    redirect '/index.html';
+};
+
+
+
 on '/dispatch/' => run {
     dispatch "/dispatch/basic";
 };

Added: jifty/branches/jifty-jsan/t/TestApp/t/05-actions-before-redirect.pm
==============================================================================
--- (empty file)
+++ jifty/branches/jifty-jsan/t/TestApp/t/05-actions-before-redirect.pm	Sat May  6 18:05:50 2006
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+=head1 DESCRIPTION
+
+If we do a redirect in a 'before' in the dispatcher, actions should
+still get run.
+
+=cut
+
+BEGIN {chdir "t/TestApp"}
+use lib '../../lib';
+use Jifty::Test tests => 6;
+use Jifty::Test::WWW::Mechanize;
+
+my $server  = Jifty::Test->make_server;
+
+isa_ok($server, 'Jifty::Server');
+
+my $URL     = $server->started_ok;
+my $mech    = Jifty::Test::WWW::Mechanize->new();
+
+$mech->get_ok("$URL/redirect", "Got redirect");
+like($mech->uri, qr|/index.html|, "At index");
+ok($mech->continuation,"We have a continuation");
+$mech->content_like(qr/Something happened/, "Action ran");
+
+1;
+


More information about the Jifty-commit mailing list