]> git.decadent.org.uk Git - maypole.git/commitdiff
Wrote up Changes. Added wishlist.txt - start of a list of tasks for 2.11, 2.12, 3.0
authorDavid Baird <cpan.zerofive@googlemail.com>
Mon, 7 Nov 2005 21:03:03 +0000 (21:03 +0000)
committerDavid Baird <cpan.zerofive@googlemail.com>
Mon, 7 Nov 2005 21:03:03 +0000 (21:03 +0000)
git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@418 48953598-375a-da11-a14b-00016c27c3ee

Changes
MANIFEST
lib/Maypole.pm
lib/Maypole/View/TT.pm
wishlist.txt [new file with mode: 0644]

diff --git a/Changes b/Changes
index d1d17691bb65df29c97aac90d849b3b5e7eaddeb..e7b6d378c873e579bd447b30bdd68ab33ad94e47 100644 (file)
--- a/Changes
+++ b/Changes
@@ -3,27 +3,59 @@ For information about current developments and future releases, see:
     http://maypole.perl.org/?TheRoadmap
 
 2.11 
-    Fix to documentation for CGI::Maypole (bug 7263)
+
+Deprecated:
+    Directly accessing the attributes of the request object, or the parameters 
+    in $r->params, or anything else, is DEPRECATED and likely to break in future 
+    releases. 
+
+Incompatible API changes:
+    Maypole:
+        - is_applicable() renamed to is_model_applicable(), and returns boolean 
+            instead of a status code. Old-style is_applicable() will still work, 
+           but issues a warning.
+
+API additions and enhancements:
+    Maypole::Application:
+       -Init flag (wishlist 14123)
+    Maypole::Headers:
+       add() alias to push() (wishlist 14142)
+    Maypole:
+        - empty session() attribute, and get_session() method added.
+        - get_session() now called during handler_guts() before authenticate()
+        - new preprocess_path() method added and called by parse_path(), 
+           parse_path() will leave any properties set by preprocess_path() in 
+           place
+        - start_request_hook() added
+       - setup() split into setup(), setup_model(), and load_model_subclass()
+        - added new path processing methods for ssl and default table/action
+       - added make_path() and make_uri()
+
+Bug fixes:
     Fix to cgi_maypole.t (bug 11346)
     Fix to TT error reporting (bug 13991)
     Template xhtml validation (bug 13975)
-    Simplified Net::Amazon example (bug 14073)
     Apache2 fix in Apache::MVC (bug 13888)
-    Inheritance cleanup (bug 14120)
-    Improved Template error reporting (14133)
-    Maypole::Session::generate_unique_id() now returns the id (bug 14124)
-    Implement -Init flag in Mp::Application (wishlist 14123)
-    add() alias to push() in Mp::Headers (wishlist 14142)
     Fixed inheritance issues in Mp::Application - Mp::App now manipulates the caller's 
         @ISA directly, and doesn't inject itself into the chain (bugs 12923 & 14120)
-    Added new path processing methods for ssl and default table/action
+    Improved Template error reporting (14133)
+    Maypole::Session::generate_unique_id() now returns the id (bug 14124)
     Moved ar accessor to Apache::MVC (bug 14014)
     Refactored core to support further development in 2.11 and onwards
     Fixed related_class method (bug 14566)
-    Empty session attribute, and get_session method added to Maypole.pm
-    get_session now called during handler_guts before authenticate
-    new preprocess_path method added and called by parse_path, parse_path will leave any 
-       properties set by preprocess_path in place
+    Added a cgi() attribute in Maypole::CGI
+
+Documentation:
+    Fix to documentation for CGI::Maypole (bug 7263)
+    Simplified Net::Amazon example (bug 14073)
+    Numerous major and minor updates to docs, plus:
+        - renamed Maypole::Manual::Request to Maypole::Manual::Cookbook
+       - added Maypole::Manual::Install, with material removed from 
+           Maypole::Manual::About
+       - added Maypole::Manual::Inheritance
+       - added Maypole::Manual::Terminology
+
+
 
 2.10 Tue 19 Jul 2005
     Multiple Template Paths added ( http://rt.cpan.org/NoAuth/Bug.html?id=13447 )
index ad265bdddf68527dc269beca69486285f06f04cc..710334927f29ed6efd46202f579a0dc5c9a0e150 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -12,11 +12,13 @@ lib/Maypole/Headers.pm
 lib/Maypole/Session.pm
 lib/Maypole/Manual.pod
 lib/Maypole/Manual/About.pod
+lib/Maypole/Manual/Install.pod
 lib/Maypole/Manual/Beer.pod
 lib/Maypole/Manual/BuySpy.pod
 lib/Maypole/Manual/Flox.pod
 lib/Maypole/Manual/Model.pod
-lib/Maypole/Manual/Request.pod
+lib/Maypole/Manual/Cookbook.pod
+lib/Maypole/Manual/Inheritance.pod
 lib/Maypole/Manual/StandardTemplates.pod
 lib/Maypole/Manual/View.pod
 lib/Maypole/Manual/Workflow.pod
index c31798d62ada1b0555a8cb338babed145df71232..b84360cc0262e9e4e77dc6ebf41b05f8d876fccc 100644 (file)
@@ -76,8 +76,8 @@ application. This is the C<BeerDB> package used as an example in the manual.
 
 This needs to first use L<Maypole::Application> which will make your package
 inherit from the appropriate platform driver such as C<Apache::MVC> or
-C<CGI::Maypole>. Then, the driver calls C<setup>.  This sets up the model classes and
-configures your application. The default model class for Maypole uses
+C<CGI::Maypole>. Then, the driver calls C<setup>. This sets up the model classes
+and configures your application. The default model class for Maypole uses
 L<Class::DBI> to map a database to classes, but this can be changed by altering
 configuration (B<before> calling setup.)
 
index 1ea4a8efb663a8717c65331c9ae80445c2a0c9c9..6f9fbc6bbc7115278c717983066e403670c7c9aa 100644 (file)
@@ -58,9 +58,9 @@ Maypole::View::TT - A Template Toolkit view class for Maypole
 
 =head1 DESCRIPTION
 
-This is the default view class for Maypole; it uses the Template Toolkit to
-fill in templates with the objects produced by Maypole's model classes.  Please
-see the L<Maypole manual|Maypole::Manual>, and in particular, the
+This is the default view class for Maypole; it uses the Template Toolkit to fill
+in templates with the objects produced by Maypole's model classes. Please see
+the L<Maypole manual|Maypole::Manual>, and in particular, the
 L<view|Maypole::Manual::View> chapter for the template variables available and
 for a refresher on how template components are resolved.
 
@@ -78,7 +78,8 @@ Processes the template and sets the output. See L<Maypole::View::Base>
 
 =head1 TEMPLATE TOOLKIT INTRODUCTION
 
-The Template Toolkit uses it's own mini language described in L<Template::Manual::Directives>.
+The Template Toolkit uses it's own mini language described in
+L<Template::Manual::Directives>.
 
 A simple example would be :
 
@@ -94,18 +95,22 @@ enclose more details of ...
 
 =back
 
-TT uses '[%' and '%]' (by default) to delimit directives within a template, and the simple directives
-above just display the value of variable named within those delimiters -- [% title %] will be replaced
-inline with the value of the 'title' variable passed in the 'stash' to the template when it is processed.
+TT uses '[%' and '%]' (by default) to delimit directives within a template, and
+the simple directives above just display the value of variable named within
+those delimiters -- [% title %] will be replaced inline with the value of the
+'title' variable passed in the 'stash' to the template when it is processed.
 
-You can access nested data through the dot ('.') operator, which will dereference array or hash elements,
-but can also be used to call methods on objects, i.e. '[% name.salutation("Dear %s,") %]'. The other main
-operator is underscore ('_'), which will concatonate strings or variables.
+You can access nested data through the dot ('.') operator, which will
+dereference array or hash elements, but can also be used to call methods on
+objects, i.e. '[% name.salutation("Dear %s,") %]'. The other main operator is
+underscore ('_'), which will concatonate strings or variables.
 
-The value returned by a directive replaces the directive inline when the template is processes, you can also
-SET a value which will not return anything, or CALL a method or operation which will also not return anything.
+The value returned by a directive replaces the directive inline when the
+template is processes, you can also SET a value which will not return anything,
+or CALL a method or operation which will also not return anything.
 
-You can specify expressions using the logical (and, or, not, ?:) and mathematic operators (+ - * / % mod div).
+You can specify expressions using the logical (and, or, not, ?:) and mathematic
+operators (+ - * / % mod div).
 
 =over 4
 
@@ -117,13 +122,15 @@ You can specify expressions using the logical (and, or, not, ?:) and mathematic
 
 =back
 
-TT allows you to include or re-use templates through it's INCLUDE, PROCESS and INSERT directives, which
-are fairly self explainatory. You can also re-use parts of template with the BLOCK or MACRO directives.
+TT allows you to include or re-use templates through it's INCLUDE, PROCESS and
+INSERT directives, which are fairly self explainatory. You can also re-use parts
+of template with the BLOCK or MACRO directives.
 
-Conditional and Looping constructs are simple and powerful, and TT provides an inbuilt iterator and helper
-functions and classes that make life sweet.
+Conditional and Looping constructs are simple and powerful, and TT provides an
+inbuilt iterator and helper functions and classes that make life sweet.
 
-Conditional directives are IF, UNLESS, ELSIF, ELSE and behave as they would in perl :
+Conditional directives are IF, UNLESS, ELSIF, ELSE and behave as they would in
+perl :
 
 =over 4
 
@@ -141,7 +148,8 @@ Conditional directives are IF, UNLESS, ELSIF, ELSE and behave as they would in p
 
 Looping directives are FOREACH, LAST and BREAK.
 
-FOREACH loops through a HASH or ARRAY processing the enclosed block for each element.
+FOREACH loops through a HASH or ARRAY processing the enclosed block for each
+element.
 
 Looping through an array
 
@@ -163,10 +171,10 @@ Looping through an array of hashes
 
 The LAST and BREAK directive can be used to exit the loop.
 
-The FOREACH directive is implemented using the Template::Iterator module.  A reference
-to the iterator object for a FOREACH directive is implicitly available in the 'loop' variable.
-The loop iterator object provides a selection of methods including size(), max(), first(), last(),
-count(), etc
+The FOREACH directive is implemented using the Template::Iterator module. A
+reference to the iterator object for a FOREACH directive is implicitly available
+in the 'loop' variable. The loop iterator object provides a selection of methods
+including size(), max(), first(), last(), count(), etc
 
 =over 4
 
@@ -180,33 +188,38 @@ count(), etc
 
 See Template::Iterator for further details on looping and the Iterator.
 
-You might notice the minus ('-') operator in the example above, it is used to remove a newline
-before or after a directive so that you can layout the Template logic as above but the resulting
-output will look exactly how you require it.
+You might notice the minus ('-') operator in the example above, it is used to
+remove a newline before or after a directive so that you can layout the Template
+logic as above but the resulting output will look exactly how you require it.
 
-You will also frequently see comments and multi-line directives, # at the start of a directive
-marks it as a comment, i.e. '[%# this is a comment %]'. A multiline directive looks like :
+You will also frequently see comments and multi-line directives, # at the start
+of a directive marks it as a comment, i.e. '[%# this is a comment %]'. A
+multiline directive looks like :
 
  [% do.this;
     do.that;
     do.the_other %]
 
-You can see that lines are terminated with a semi-colon (';') unless the delimter ('%]') closes the directive.
+You can see that lines are terminated with a semi-colon (';') unless the
+delimter ('%]') closes the directive.
 
-For full details of the Template Toolkit see Template::Manual and Template::Manual::Directives, you can
-also check the website, mailing list or the Template Toolkit book published by O Reilly.
+For full details of the Template Toolkit see Template::Manual and
+Template::Manual::Directives, you can also check the website, mailing list or
+the Template Toolkit book published by O Reilly.
 
 =head1 TEMPLATE PLUGINS, FILTERS AND MACROS
 
-The Template Toolkit has a popular and powerful selection of Plugins and Filters.
+The Template Toolkit has a popular and powerful selection of Plugins and
+Filters.
 
-TT Plugins provide additional functionality within Templates, from accessing CGI and
-databases directly, handling paging or simple integration with Class::DBI (for those
-rare occasions where you don't actually need Maypole). See L<Template::Manual::Plugins>.
+TT Plugins provide additional functionality within Templates, from accessing CGI
+and databases directly, handling paging or simple integration with Class::DBI
+(for those rare occasions where you don't actually need Maypole). See
+L<Template::Manual::Plugins>.
 
 One plugin that is indispensible when using Maypole and the Template View is
-C<Template::Plugin::Class> -- This allows you to import and use any class installed
-within a template. For example :
+C<Template::Plugin::Class> -- This allows you to import and use any class
+installed within a template. For example :
 
 =over 4
 
@@ -215,22 +228,24 @@ within a template. For example :
 
 =back
 
-Would do the equivilent of 'use Foo; Foo->bar;' in perl. See L<Template::Plugin::Class>
-for details.
+Would do the equivilent of 'use Foo; Foo->bar;' in perl. See
+L<Template::Plugin::Class> for details.
 
-TT Filters process strings or blocks within a template, allowing you to truncate,
-format, escape or encode trivially. A useful selection is included with Template Toolkit
-and they can also be found on CPAN or can be written easily.
-See L<Template::Manual::Filters>.
+TT Filters process strings or blocks within a template, allowing you to
+truncate, format, escape or encode trivially. A useful selection is included
+with Template Toolkit and they can also be found on CPAN or can be written
+easily. See L<Template::Manual::Filters>.
 
-TT Macros allow you to reuse small blocks of content, directives, etc. The MACRO directive
-allows you to define a directive or directive block which is then evaluated each time the
-macro is called. Macros can be passed named parameters when called.
+TT Macros allow you to reuse small blocks of content, directives, etc. The MACRO
+directive allows you to define a directive or directive block which is then
+evaluated each time the macro is called. Macros can be passed named parameters
+when called.
 
-Once a MACRO is defined within a template or 'include'd template it can be used as if it
-were a native TT directive. Maypole provides a selection of powerful and useful macros
-in the templates/ directory of the package and these are used in the beerdb and default
-templates. See the MACRO section of the L<Template::Manual::Directives> documentation.
+Once a MACRO is defined within a template or 'include'd template it can be used
+as if it were a native TT directive. Maypole provides a selection of powerful
+and useful macros in the templates/ directory of the package and these are used
+in the beerdb and default templates. See the MACRO section of the
+L<Template::Manual::Directives> documentation.
 
 =head1 MAYPOLE MACROS AND FILTERS
 
diff --git a/wishlist.txt b/wishlist.txt
new file mode 100644 (file)
index 0000000..21cdea9
--- /dev/null
@@ -0,0 +1,30 @@
+2.12/3.0 wishlist\r
+=================\r
+\r
+Not for inclusion in the MANIFEST. \r
+\r
+2.11\r
+====\r
+Fix factory roots, document and explain behaviour\r
+send_output() should return a status code\r
+Move template test out of process() and into handler_guts() - maybe\r
+Fix bug 14570 - returning error codes breaks CGI::Maypole\r
+Write Maypole::Manual::Exceptions\r
+\r
+2.12\r
+====\r
+Maypole::instance()\r
+Better plugin architecture, for models and bits of models. \r
+Investigate problems reported with adopt() - rt 15598\r
+\r
+3.0\r
+====\r
+encapsulate all request data in HTTP::Request object, and all response data \r
+in HTTP::Response object\r
+\r
+add email handling - like Rails - via model plugins\r
+\r
+add validation layer, or just an API\r
+\r
+killer apps: SVN model; mitiki; Pet Shop;\r
+\r