getting the docs in shape
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Delta.pod
index e1d89c6..76d8cf7 100755 (executable)
@@ -7,6 +7,53 @@ Catalyst::Delta - Overview of changes between versions of Catalyst
 This is an overview of the user-visible changes to Catalyst between major
 Catalyst releases.
 
+=head2 VERSION 5.90090+
+
+=head2 Type constraints on Args and CaptureArgs.
+
+You may now use a type constraint (using L<Moose>, L<MooseX::Types> or preferably
+L<Type::Tiny> in your Args or CaptureArgs action attributes.  This can be used
+to restrict the value of the Arg.  For example:
+
+    sub myaction :Local Args(Int) { ... }
+
+Would match '.../myaction/5' but not '.../myaction/string'.
+
+When an action (or action chain) has Args (or CaptureArgs) that declare type constraints
+your arguments to $c->uri_for(...) must match those constraints.
+
+See L<Catalyst::RouteMatching> for more.
+
+=head2 Move CatalystX::InjectComponent into core
+
+L<Catalyst::Utils> has a new method 'inject_component' which works the same as the method of
+the same name in L<CatalystX::InjectComponent>.
+
+=head2 inject_components
+
+New configuration key allows you to inject components directly into your application without
+any subclasses.  For example:
+
+    MyApp->config({
+      inject_components => {
+        'Controller::Err' => { from_component => 'Local::Controller::Errors' },
+        'Model::Zoo' => { from_component => 'Local::Model::Foo' },
+        'Model::Foo' => { from_component => 'Local::Model::Foo', roles => ['TestRole'] },
+      },
+      'Controller::Err' => { a => 100, b=>200, namespace=>'error' },
+      'Model::Zoo' => { a => 2 },
+      'Model::Foo' => { a => 100 },
+    });
+
+Injected components are useful to reduce the ammount of nearly empty boilerplate classes
+you might have, particularly when first starting an application.
+
+=head2 Component setup changes.
+
+Previously you could not depend on an application scoped component doing setup_components
+since components were setup 'in order'.  Now all components are first registered and then
+setup, so you can now reliably use any component doing setup_components.
+
 =head2 VERSION 5.90080+
 
 The biggest change in this release is that UTF8 encoding is now enabled by
@@ -19,6 +66,8 @@ If this change causes you trouble, you can disable it:
 
     __PACKAGE__->config(encoding=>undef);
 
+For further information, please see L<Catalyst::UTF8>
+
 But please report bugs.  You will find that a number of common Views have been
 updated for this release (such as L<Catalyst::View::TT>).  In all cases that the
 author is aware of these updates were to fix test cases only.  You shouldn't