]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Config.pm
Maypole-2.11.tar.gz
[maypole.git] / lib / Maypole / Config.pm
index b8202cf4d4b49260faf97418477809742265a23c..040a4c8e8baa0975d9a3bffcebca788a57655e01 100644 (file)
@@ -1,23 +1,21 @@
 package Maypole::Config;
-use base qw(Class::Accessor);
+use base qw(Class::Accessor::Fast);
 use attributes ();
-#use overload
-#    '""' => sub { shift->stringify_self};
+
 use strict;
 use warnings;
 
+our $VERSION = "1." . sprintf "%04d", q$Rev: 334 $ =~ /: (\d+)/;
+
 # Public accessors.
 __PACKAGE__->mk_accessors(
-    qw( view uri_base template_root model loader display_tables ok_tables
-      rows_per_page dsn user pass opts)
-      );
+     qw( view view_options uri_base template_root template_extension model
+         loader display_tables ok_tables rows_per_page dsn user pass opts
+         application_name)
+);
 
 # Should only be modified by model.
-    __PACKAGE__->mk_ro_accessors( qw(
-         classes
-         tables
-         table_to_class
-    ) );
+__PACKAGE__->mk_ro_accessors(qw( classes tables));
 
 1;
 
@@ -29,32 +27,119 @@ Maypole::Config - Maypole Configuration Class
 
 This class stores all configuration data for your Maypole application.
 
-=head2 view
+=head1 METHODS
+
+=head2 View related
+
+=head3 application_name
+
+This should be a string containing your application's name.
+
+Optional. Is used in the factory templates.
+
+=head3 rows_per_page
+
+This is the number of rows your application should display per page.
+
+Optional.
+
+=head3 tables
+
+Contains a list of all tables, if supported by model.
+
+=head3 template_extension
+
+Optional template file extension.
+
+=head3 template_root
+
+This is where your application can find its templates.
+
+=head3 uri_base
+
+This is the URI base that should be prepended to your application when Maypole
+makes URLs.
+
+=head3 view
+
+The name of the view class for your Maypole Application. Defaults to
+"Maypole::View::TT".
+
+=head3 view_options
+
+A hash of configuration options for the view class. Consult the documentation
+for your chosen view class for information on available configuration options.
+
+=head2 Model-Related
+
+=head3 classes
+
+This config variable contains a list of your view classes. This is set
+up by the
+model class, and should not be changed in the view or the config.
+
+=head3 display_tables
+
+This is a list of the tables that are public to your Maypole 
+application. Defaults to all the tables in the database.
+
+=head3 dsn
+
+The DSN to your database. Follows standard DBD syntax.
+
+=head3 loader
+
+This is the loader object (n.b. an instance, not a class name). It's set
+up by the CDBI model to an instance of "Class::DBI::Loader" if it's not
+initialized before calling setup().
+
+=head3 model
+
+The name of the model class for your Maypole Application. Defaults to
+"Maypole::Model::CDBI".
+
+=head3 ok_tables
+
+This is a hash of the public tables. It is populated automatically by 
+Maypole from the list in display_tables and should not be changed.
+
+=head3 pass
+
+Password for database user.
+
+=head3 opts
+
+Other options to the DBI connect call.
+
+=head3 user
+
+Username to log into the database with.
+
+=head2 Adding additional configuration data
 
-The view class for your Maypole Application. Defaults to "Maypole::View::TT"
+If your modules need to store additional configuration data for their 
+own use or to make available to templates, add a line like this to your 
+module:
 
-=head2 display_tables 
+   Maypole::Config->mk_accessors(qw(variable or variables));
 
-=head2 ok_tables
+Care is needed to avoid conflicting variable names.
 
-=head2 model
+=head1 SEE ALSO
 
-=head2 loader
+L<Maypole>
 
-=head2 uri_base 
+=head1 AUTHOR
 
-=head2 classes
-=head2 rows_per_page
+Sebastian Riedel, C<sri@oook.de>
 
-=head2 dsn
+=head1 AUTHOR EMERITUS
 
-=head2 user
+Simon Cozens, C<simon@cpan.org>
 
-=head2 pass
+=head1 LICENSE
 
-=head2 opts
+You may distribute this code under the same terms as Perl itself.
 
-+head2 table_to_root
+=cut
 
-=head2 template_root