add alt. hook to PerRequestSchema trait
[catagits/Catalyst-Model-DBIC-Schema.git] / lib / Catalyst / Model / DBIC / Schema.pm
index 59447f6..a1f229e 100644 (file)
@@ -5,7 +5,7 @@ use mro 'c3';
 extends 'Catalyst::Model';
 with 'CatalystX::Component::Traits';
 
-our $VERSION = '0.36';
+our $VERSION = '0.59';
 $VERSION = eval $VERSION;
 
 use namespace::autoclean;
@@ -33,7 +33,7 @@ A typical usage of the helper script would be:
 
     script/myapp_create.pl model FilmDB DBIC::Schema MyApp::Schema::FilmDB \
         create=static dbi:mysql:filmdb dbusername dbpass \
-        quote_char='`' name_sep='.'
+        quote_names=1
 
 If you are unfamiliar with L<DBIx::Class>, see L<DBIx::Class::Manual::Intro>
 first.
@@ -169,13 +169,12 @@ C<Catalyst::Model::> namespace.  This parameter is required.
 
 =head2 connect_info
 
-This is an arrayref of connection parameters, which are specific to your
-C<storage_type> (see your storage type documentation for more details). 
-If you only need one parameter (e.g. the DSN), you can just pass a string 
-instead of an arrayref.
+This is a hashref or arrayref of connection parameters, which are specific to
+your C<storage_type> (see your storage type documentation for more details). If
+you only need one parameter (e.g. the DSN), you can just pass a string.
 
 This is not required if C<schema_class> already has connection information
-defined inside itself (which isn't highly recommended, but can be done)
+defined inside itself (which isn't highly recommended, but can be done.)
 
 For L<DBIx::Class::Storage::DBI>, which is the only supported
 C<storage_type> in L<DBIx::Class> at the time of this writing, the
@@ -220,7 +219,7 @@ Or using L<Config::General>:
             user   postgres
             password ""
             auto_savepoint 1
-           quote_char """
+            quote_names 1
             on_connect_do   some SQL statement
             on_connect_do   another SQL statement
         </connect_info>
@@ -246,7 +245,7 @@ Or using L<YAML>:
           LongReadLen: 1000000
           LongTruncOk: 1
           on_connect_call: 'datetime_setup'
-         quote_char: '"'
+          quote_names: 1
 
 The old arrayref style with hashrefs for L<DBI> then L<DBIx::Class> options is also
 supported:
@@ -301,6 +300,8 @@ Traits that come with the distribution:
 
 =item L<Catalyst::TraitFor::Model::DBIC::Schema::SchemaProxy>
 
+=item L<Catalyst::TraitFor::Model::DBIC::Schema::PerRequestSchema>
+
 =back
 
 =head2 storage_type
@@ -348,6 +349,13 @@ Unresolved arrayref of traits passed in the config.
 
 Traits you used resolved to full class names.
 
+=head1 CONFIGURING YOUR SCHEMA AND RESULTSETS
+
+See the documentation for
+L<Catalyst::TraitFor::Model::DBIC::Schema::SchemaProxy> for instructions on how
+to pass config values from your L<Catalyst> config to your
+L<DBIx::Class::Schema> and/or L<DBIx::Class::ResultSet> classes.
+
 =head1 METHODS
 
 =head2 new
@@ -401,7 +409,8 @@ Shortcut for ->schema->txn_scope_guard
 =head2 storage
 
 Provides an accessor for the connected schema's storage object.
-Used often for debugging and controlling transactions.
+
+See L<DBIx::Class::Storage> and L<DBIx::Class::Storage::DBI>.
 
 =cut
 
@@ -432,6 +441,14 @@ has _default_cursor_class => (
 
 has schema => (is => 'rw', isa => Schema);
 
+my $app_class;
+
+before COMPONENT => sub {
+    $app_class = ref $_[1] || $_[1];
+};
+
+sub app_class { $app_class }
+
 sub BUILD {
     my ($self, $args) = @_;
     my $class = $self->_original_class_name;
@@ -485,6 +502,8 @@ sub txn_do { shift->schema->txn_do(@_); }
 
 sub txn_scope_guard { shift->schema->txn_scope_guard(@_); }
 
+sub storage { shift->schema->storage(@_); }
+
 =head2 setup
 
 Called at C<BUILD> time before configuration, but after L</connect_info> is
@@ -634,6 +653,7 @@ Traits:
 L<Catalyst::TraitFor::Model::DBIC::Schema::Caching>,
 L<Catalyst::TraitFor::Model::DBIC::Schema::Replicated>,
 L<Catalyst::TraitFor::Model::DBIC::Schema::SchemaProxy>,
+L<Catalyst::TraitFor::Model::DBIC::Schema::PerRequestSchema>,
 L<Catalyst::TraitFor::Model::DBIC::Schema::QueryLog>
 
 =head1 AUTHOR
@@ -656,9 +676,11 @@ ozum: Ozum Eldogan C<ozum@ozum.net>
 
 Pavel I. Shaydo C<zwon@trinitum.org>
 
+SineSwiper: Brendan Byrd <byrd.b@insightcom.com>
+
 =head1 COPYRIGHT
 
-Copyright (c) 2006 - 2009
+Copyright (c) 2006 - 2010
 the Catalyst::Model::DBIC::Schema L</AUTHOR> and L</CONTRIBUTORS>
 as listed above.
 
@@ -670,4 +692,4 @@ under the same terms as Perl itself.
 =cut
 
 1;
-# vim:sts=4 sw=4 et:
+# vim:sts=4 sw=4 et tw=80: