[Catalyst-commits] r11004 - in tags: . Catalyst-Model-DBIC-Schema
Catalyst-Model-DBIC-Schema/0.12 Catalyst-Model-DBIC-Schema/0.12/lib
Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst
Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper
Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model
Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC
Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model
Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC
Catalyst-Model-DBIC-Schema/0.12/t Catalyst-Model-DBIC-Schema/0.16
Catalyst-Model-DBIC-Schema/0.16/lib
Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst
Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper
Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model
Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC
Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model
Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC
Catalyst-Model-DBIC-Schema/0.16/t Catalyst-Model-DBIC-Schema/0.17_01
Catalyst-Model-DBIC-Schema/0.17_01/lib
Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst
Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper
Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model
Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC
Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model
Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC
Catalyst-Model-DBIC-Schema/0.17_01/t Catalyst-Model-DBIC-Schema/0.18
Catalyst-Model-DBIC-Schema/0.18/lib
Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst
Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper
Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model
Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC
Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model
Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC
Catalyst-Model-DBIC-Schema/0.18/t Catalyst-Model-DBIC-Schema/0.20
Catalyst-Model-DBIC-Schema/0.20/lib
Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst
Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper
Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model
Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC
Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model
Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC
Catalyst-Model-DBIC-Schema/0.20/t
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Wed Jul 29 22:06:10 GMT 2009
Author: t0m
Date: 2009-07-29 22:06:07 +0000 (Wed, 29 Jul 2009)
New Revision: 11004
Added:
tags/Catalyst-Model-DBIC-Schema/
tags/Catalyst-Model-DBIC-Schema/0.12/
tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.12/Changes
tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.12/lib/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.12/t/
tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.16/
tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.16/Changes
tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.16/lib/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.16/t/
tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/
tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes
tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.18/
tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.18/Changes
tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.18/lib/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.18/t/
tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.20/
tags/Catalyst-Model-DBIC-Schema/0.20/Changes
tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.20/README
tags/Catalyst-Model-DBIC-Schema/0.20/lib/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.20/t/
tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t
Removed:
tags/Catalyst-Model-DBIC-Schema/0.12/
tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.12/Changes
tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.12/lib/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.12/t/
tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.16/
tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.16/Changes
tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.16/lib/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.16/t/
tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/
tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes
tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.18/
tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL
tags/Catalyst-Model-DBIC-Schema/0.18/Changes
tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.18/lib/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.18/t/
tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t
tags/Catalyst-Model-DBIC-Schema/0.20/
tags/Catalyst-Model-DBIC-Schema/0.20/Changes
tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP
tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL
tags/Catalyst-Model-DBIC-Schema/0.20/README
tags/Catalyst-Model-DBIC-Schema/0.20/lib/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/
tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm
tags/Catalyst-Model-DBIC-Schema/0.20/t/
tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t
tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t
Log:
Bah, unfuck tags directory - I failed up update so never saw the delete. I also lose. Whoever ports to git is gonna have to do some fun grafting :/ Reverse merge as per r10999
Copied: tags/Catalyst-Model-DBIC-Schema (from rev 10972, tags/Catalyst-Model-DBIC-Schema)
Copied: tags/Catalyst-Model-DBIC-Schema/0.12 (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,24 +0,0 @@
-use strict;
-use Module::Build;
-
-my %arguments = (
- license => 'perl',
- module_name => 'Catalyst::Model::DBIC::Schema',
- requires => {
- 'DBIx::Class' => 0.05007,
- 'Catalyst' => 5.64,
- 'UNIVERSAL::require' => 0.10,
- 'Class::Data::Accessor' => 0.02,
- 'Class::Accessor::Fast' => 0.22,
- },
- recommends => {
- 'DBIx::Class::Schema::Loader' => '0.02007',
- },
- build_requires => {
- 'Test::More' => 0.32,
- },
- create_makefile_pl => 'passthrough',
- create_readme => 1,
-);
-
-Module::Build->new(%arguments)->create_build_script;
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,24 @@
+use strict;
+use Module::Build;
+
+my %arguments = (
+ license => 'perl',
+ module_name => 'Catalyst::Model::DBIC::Schema',
+ requires => {
+ 'DBIx::Class' => 0.05007,
+ 'Catalyst' => 5.64,
+ 'UNIVERSAL::require' => 0.10,
+ 'Class::Data::Accessor' => 0.02,
+ 'Class::Accessor::Fast' => 0.22,
+ },
+ recommends => {
+ 'DBIx::Class::Schema::Loader' => '0.02007',
+ },
+ build_requires => {
+ 'Test::More' => 0.32,
+ },
+ create_makefile_pl => 'passthrough',
+ create_readme => 1,
+);
+
+Module::Build->new(%arguments)->create_build_script;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/Changes
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/Changes 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,41 +0,0 @@
-Revision history for Perl extension Catalyst::Model::DBIC::Schema
-
-0.12
- - SYNOPSIS improved substantially to help newbies get started
-
-0.11 Sun Mar 26 17:22:31 UTC 2006
- - Removed on_connect_do config setting (it was only out
- in public for 4 days...).
- - Support for on_connect_do and sql_maker options as part
- of connect_info
-
-0.10 Wed Mar 22 07:06:02 UTC 2006
- - Added on_connect_do config setting
- - Added convenience method for ->schema->storage from paulm
-
-0.08 Tue Feb 28 00:04:16 UTC 2006
- - Bumped D::C::Schema::Loader recommendation to 0.02003
- (should have been done last release)
- - Removed the ->require stuff added in 0.07, it doesn't
- do what it is supposed to do. For now, users can layer
- at the Schema::Loader level rather than at Model.
-
-0.07 Sun Feb 19 21:50:18 UTC 2006
- - bugfix for ::SchemaLoader::Foo password argument, and
- switch to connect_info argument of new Schema::Loader
- - Added ->require for source classes, so that you can
- layer in lib/MyApp/Model/Foo/Bar.pm on top of the
- generated MyApp::Model::Foo::Bar.
-
-0.06 Sat Feb 18 19:05:17 UTC 2006
- - Fix simple pod-related bug introduced in last rev
- - Added optional test that uses the helpers
-
-0.05 Fri Feb 17 20:52:21 UTC 2006
- - Stop showing the template pod in pod tools and cpan,
- per Gavin's email.
- - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
- subtle issues under mod_perl engines.
-
-0.04 Mon Feb 13 04:22:49 UTC 2006
- - First public release
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/Changes (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/Changes)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/Changes (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,41 @@
+Revision history for Perl extension Catalyst::Model::DBIC::Schema
+
+0.12
+ - SYNOPSIS improved substantially to help newbies get started
+
+0.11 Sun Mar 26 17:22:31 UTC 2006
+ - Removed on_connect_do config setting (it was only out
+ in public for 4 days...).
+ - Support for on_connect_do and sql_maker options as part
+ of connect_info
+
+0.10 Wed Mar 22 07:06:02 UTC 2006
+ - Added on_connect_do config setting
+ - Added convenience method for ->schema->storage from paulm
+
+0.08 Tue Feb 28 00:04:16 UTC 2006
+ - Bumped D::C::Schema::Loader recommendation to 0.02003
+ (should have been done last release)
+ - Removed the ->require stuff added in 0.07, it doesn't
+ do what it is supposed to do. For now, users can layer
+ at the Schema::Loader level rather than at Model.
+
+0.07 Sun Feb 19 21:50:18 UTC 2006
+ - bugfix for ::SchemaLoader::Foo password argument, and
+ switch to connect_info argument of new Schema::Loader
+ - Added ->require for source classes, so that you can
+ layer in lib/MyApp/Model/Foo/Bar.pm on top of the
+ generated MyApp::Model::Foo::Bar.
+
+0.06 Sat Feb 18 19:05:17 UTC 2006
+ - Fix simple pod-related bug introduced in last rev
+ - Added optional test that uses the helpers
+
+0.05 Fri Feb 17 20:52:21 UTC 2006
+ - Stop showing the template pod in pod tools and cpan,
+ per Gavin's email.
+ - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
+ subtle issues under mod_perl engines.
+
+0.04 Mon Feb 13 04:22:49 UTC 2006
+ - First public release
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,28 +0,0 @@
-# Avoid version control files.
-\bRCS\b
-\bCVS\b
-,v$
-\B\.svn\b
-
-# Avoid Makemaker generated and utility files.
-\bMakefile$
-\bblib
-\bMakeMaker-\d
-\bpm_to_blib$
-\bblibdirs$
-^MANIFEST\.SKIP$
-
-# Avoid Module::Build generated and utility files.
-\bBuild$
-\b_build
-
-# Avoid temp and backup files.
-~$
-\.tmp$
-\.old$
-\.bak$
-\#$
-\b\.#
-
-# avoid dist files
-\.tar\.gz$
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,28 @@
+# Avoid version control files.
+\bRCS\b
+\bCVS\b
+,v$
+\B\.svn\b
+
+# Avoid Makemaker generated and utility files.
+\bMakefile$
+\bblib
+\bMakeMaker-\d
+\bpm_to_blib$
+\bblibdirs$
+^MANIFEST\.SKIP$
+
+# Avoid Module::Build generated and utility files.
+\bBuild$
+\b_build
+
+# Avoid temp and backup files.
+~$
+\.tmp$
+\.old$
+\.bak$
+\#$
+\b\.#
+
+# avoid dist files
+\.tar\.gz$
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,31 +0,0 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.03
-
- unless (eval "use Module::Build::Compat 0.02; 1" ) {
- print "This module requires Module::Build to install itself.\n";
-
- require ExtUtils::MakeMaker;
- my $yn = ExtUtils::MakeMaker::prompt
- (' Install Module::Build now from CPAN?', 'y');
-
- unless ($yn =~ /^y/i) {
- die " *** Cannot install without Module::Build. Exiting ...\n";
- }
-
- require Cwd;
- require File::Spec;
- require CPAN;
-
- # Save this 'cause CPAN will chdir all over the place.
- my $cwd = Cwd::cwd();
- my $makefile = File::Spec->rel2abs($0);
-
- CPAN::Shell->install('Module::Build::Compat')
- or die " *** Cannot install without Module::Build. Exiting ...\n";
-
- chdir $cwd or die "Cannot chdir() back to $cwd: $!";
- }
- eval "use Module::Build::Compat 0.02; 1" or die $@;
- use lib '_build/lib';
- Module::Build::Compat->run_build_pl(args => \@ARGV);
- require Module::Build;
- Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,31 @@
+# Note: this file was auto-generated by Module::Build::Compat version 0.03
+
+ unless (eval "use Module::Build::Compat 0.02; 1" ) {
+ print "This module requires Module::Build to install itself.\n";
+
+ require ExtUtils::MakeMaker;
+ my $yn = ExtUtils::MakeMaker::prompt
+ (' Install Module::Build now from CPAN?', 'y');
+
+ unless ($yn =~ /^y/i) {
+ die " *** Cannot install without Module::Build. Exiting ...\n";
+ }
+
+ require Cwd;
+ require File::Spec;
+ require CPAN;
+
+ # Save this 'cause CPAN will chdir all over the place.
+ my $cwd = Cwd::cwd();
+ my $makefile = File::Spec->rel2abs($0);
+
+ CPAN::Shell->install('Module::Build::Compat')
+ or die " *** Cannot install without Module::Build. Exiting ...\n";
+
+ chdir $cwd or die "Cannot chdir() back to $cwd: $!";
+ }
+ eval "use Module::Build::Compat 0.02; 1" or die $@;
+ use lib '_build/lib';
+ Module::Build::Compat->run_build_pl(args => \@ARGV);
+ require Module::Build;
+ Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib)
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst)
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper)
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,126 +0,0 @@
-package Catalyst::Helper::Model::DBIC::Schema;
-
-use strict;
-use warnings;
-use Carp;
-
-=head1 NAME
-
-Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
-
-=head1 SYNOPSIS
-
- script/create.pl model Foo DBIC::Schema Foo::SchemaClass [ connect_info arguments ]
-
- Where:
- Foo is the short name for the Model class being generated
- Foo::SchemaClass is the fully qualified classname of your Schema,
- which isa DBIx::Class::Schema defined elsewhere.
- connect_info arguments are the same as what DBIx::Class::Schema::connect
- expects, and are storage_type-specific. For DBI-based storage, these
- arguments are the dsn, username, password, and connect options,
- respectively.
-
-=head1 TYPICAL EXAMPLES
-
- script/myapp_create.pl model Foo DBIC::Schema FooSchema dbi:mysql:foodb myuname mypass '{ AutoCommit => 1 }'
-
- # -or, if the schema already has connection info and you want to re-use that:
- script/myapp_create.pl model Foo DBIC::Schema FooSchema
-
-=head1 DESCRIPTION
-
-Helper for the DBIC Schema Models.
-
-=head2 METHODS
-
-=head3 mk_compclass
-
-=cut
-
-sub mk_compclass {
- my ( $self, $helper, $schema_class, @connect_info) = @_;
-
- $helper->{schema_class} = $schema_class || '';
-
- if(@connect_info) {
- $helper->{setup_connect_info} = 1;
- for(@connect_info) {
- $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
- }
- $helper->{connect_info} = \@connect_info;
- }
-
- my $file = $helper->{file};
- $helper->render_file( 'compclass', $file );
-}
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>,
-L<Catalyst::Helper::Model::DBIC::SchemaLoader>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__DATA__
-
-=begin pod_to_ignore
-
-__compclass__
-package [% class %];
-
-use strict;
-use base 'Catalyst::Model::DBIC::Schema';
-
-__PACKAGE__->config(
- schema_class => '[% schema_class %]',
- [% IF setup_connect_info %]connect_info => [
- [% FOREACH arg = connect_info %][% arg %],
- [% END %]
- ],[% END %]
-);
-
-=head1 NAME
-
-[% class %] - Catalyst DBIC Schema Model
-
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-L<Catalyst::Model::DBIC::Schema> Model using schema
-L<[% schema_class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,126 @@
+package Catalyst::Helper::Model::DBIC::Schema;
+
+use strict;
+use warnings;
+use Carp;
+
+=head1 NAME
+
+Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
+
+=head1 SYNOPSIS
+
+ script/create.pl model Foo DBIC::Schema Foo::SchemaClass [ connect_info arguments ]
+
+ Where:
+ Foo is the short name for the Model class being generated
+ Foo::SchemaClass is the fully qualified classname of your Schema,
+ which isa DBIx::Class::Schema defined elsewhere.
+ connect_info arguments are the same as what DBIx::Class::Schema::connect
+ expects, and are storage_type-specific. For DBI-based storage, these
+ arguments are the dsn, username, password, and connect options,
+ respectively.
+
+=head1 TYPICAL EXAMPLES
+
+ script/myapp_create.pl model Foo DBIC::Schema FooSchema dbi:mysql:foodb myuname mypass '{ AutoCommit => 1 }'
+
+ # -or, if the schema already has connection info and you want to re-use that:
+ script/myapp_create.pl model Foo DBIC::Schema FooSchema
+
+=head1 DESCRIPTION
+
+Helper for the DBIC Schema Models.
+
+=head2 METHODS
+
+=head3 mk_compclass
+
+=cut
+
+sub mk_compclass {
+ my ( $self, $helper, $schema_class, @connect_info) = @_;
+
+ $helper->{schema_class} = $schema_class || '';
+
+ if(@connect_info) {
+ $helper->{setup_connect_info} = 1;
+ for(@connect_info) {
+ $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
+ }
+ $helper->{connect_info} = \@connect_info;
+ }
+
+ my $file = $helper->{file};
+ $helper->render_file( 'compclass', $file );
+}
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::SchemaLoader>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__DATA__
+
+=begin pod_to_ignore
+
+__compclass__
+package [% class %];
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+ schema_class => '[% schema_class %]',
+ [% IF setup_connect_info %]connect_info => [
+ [% FOREACH arg = connect_info %][% arg %],
+ [% END %]
+ ],[% END %]
+);
+
+=head1 NAME
+
+[% class %] - Catalyst DBIC Schema Model
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using schema
+L<[% schema_class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,177 +0,0 @@
-package Catalyst::Helper::Model::DBIC::SchemaLoader;
-
-use strict;
-use warnings;
-use Carp;
-
-=head1 NAME
-
-Catalyst::Helper::Model::DBIC::SchemaLoader - Helper for AutoLoaded DBIC Schema Models
-
-=head1 SYNOPSIS
-
- script/myapp_create.pl model Foo DBIC::SchemaLoader [ connect info arguments ]
-
- Where:
- Foo is the short name for the Model class being generated
- connect_info arguments are the same as what DBIx::Class::Schema::connect
- expects, and are storage_type-specific. For DBI-based storage, these
- arguments are the dsn, username, password, and connect options,
- respectively.
-
-=head1 TYPICAL EXAMPLE
-
- script/myapp_create.pl model Foo DBIC::SchemaLoader dbi:mysql:foodb myuname mypass '{ AutoCommit => 1 }'
-
-=head1 DESCRIPTION
-
-This helper generates two classes:
-
-First, it generates a L<DBIx::Class::Schema::Loader> class at
-F<lib/MyApp/SchemaLoader/Foo.pm> based on your supplied dsn/user/pass.
-
-Then, it generates a L<Catalyst::Model::DBIC::Schema> at
-F<lib/MyApp/M/Foo.pm>, which references the above-generated loader.
-
-Models generated by this Helper require the seperate package
-L<DBIx::Class::Schema::Loader> to be installed. It is on the recommended
-list for this package, but is not required for installation.
-
-=head2 METHODS
-
-=head3 mk_compclass
-
-=cut
-
-sub mk_compclass {
- my ($self, $helper, @connect_info) = @_;
-
- for(@connect_info) {
- $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
- }
-
- $helper->{loader_class} = $helper->{class};
- $helper->{loader_class} =~ s/\:\:M(?:odel)?\:\:/::SchemaLoader::/;
- my @loader_parts = split(/\:\:/, $helper->{loader_class});
- my $loader_file_part = pop @loader_parts;
-
- my $loader_dir = File::Spec->catfile( $helper->{base}, 'lib', @loader_parts );
- my $loader_file = File::Spec->catfile( $loader_dir, $loader_file_part . '.pm' );
-
- $helper->mk_dir($loader_dir);
- $helper->{connect_info} = \@connect_info;
-
- $helper->mk_dir( $loader_dir );
- $helper->render_file( 'loaderclass', $loader_file );
-
-
- my $file = $helper->{file};
- $helper->render_file( 'compclass', $file );
-}
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>,
-L<Catalyst::Helper::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__DATA__
-
-=begin pod_to_ignore
-
-__loaderclass__
-package [% loader_class %];
-
-use strict;
-use base qw/DBIx::Class::Schema::Loader/;
-
-__PACKAGE__->load_from_connection(
- connect_info => [
- [% FOREACH arg = connect_info %][% arg %],
- [% END %]
- ],
- relationships => 1,
- # debug => 1,
-);
-
-=head1 NAME
-
-[% loader_class %] - Loader-generated DBIx::Class::Schema class
-
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__compclass__
-package [% class %];
-
-use strict;
-use base 'Catalyst::Model::DBIC::Schema';
-
-__PACKAGE__->config(
- schema_class => '[% loader_class %]',
-);
-
-=head1 NAME
-
-[% class %] - Catalyst DBIC Schema Model
-
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-L<Catalyst::Model::DBIC::Schema> Model using L<DBIx::Class::Schema::Loader>
-generated Schema: L<[% loader_class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Helper/Model/DBIC/SchemaLoader.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,177 @@
+package Catalyst::Helper::Model::DBIC::SchemaLoader;
+
+use strict;
+use warnings;
+use Carp;
+
+=head1 NAME
+
+Catalyst::Helper::Model::DBIC::SchemaLoader - Helper for AutoLoaded DBIC Schema Models
+
+=head1 SYNOPSIS
+
+ script/myapp_create.pl model Foo DBIC::SchemaLoader [ connect info arguments ]
+
+ Where:
+ Foo is the short name for the Model class being generated
+ connect_info arguments are the same as what DBIx::Class::Schema::connect
+ expects, and are storage_type-specific. For DBI-based storage, these
+ arguments are the dsn, username, password, and connect options,
+ respectively.
+
+=head1 TYPICAL EXAMPLE
+
+ script/myapp_create.pl model Foo DBIC::SchemaLoader dbi:mysql:foodb myuname mypass '{ AutoCommit => 1 }'
+
+=head1 DESCRIPTION
+
+This helper generates two classes:
+
+First, it generates a L<DBIx::Class::Schema::Loader> class at
+F<lib/MyApp/SchemaLoader/Foo.pm> based on your supplied dsn/user/pass.
+
+Then, it generates a L<Catalyst::Model::DBIC::Schema> at
+F<lib/MyApp/M/Foo.pm>, which references the above-generated loader.
+
+Models generated by this Helper require the seperate package
+L<DBIx::Class::Schema::Loader> to be installed. It is on the recommended
+list for this package, but is not required for installation.
+
+=head2 METHODS
+
+=head3 mk_compclass
+
+=cut
+
+sub mk_compclass {
+ my ($self, $helper, @connect_info) = @_;
+
+ for(@connect_info) {
+ $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
+ }
+
+ $helper->{loader_class} = $helper->{class};
+ $helper->{loader_class} =~ s/\:\:M(?:odel)?\:\:/::SchemaLoader::/;
+ my @loader_parts = split(/\:\:/, $helper->{loader_class});
+ my $loader_file_part = pop @loader_parts;
+
+ my $loader_dir = File::Spec->catfile( $helper->{base}, 'lib', @loader_parts );
+ my $loader_file = File::Spec->catfile( $loader_dir, $loader_file_part . '.pm' );
+
+ $helper->mk_dir($loader_dir);
+ $helper->{connect_info} = \@connect_info;
+
+ $helper->mk_dir( $loader_dir );
+ $helper->render_file( 'loaderclass', $loader_file );
+
+
+ my $file = $helper->{file};
+ $helper->render_file( 'compclass', $file );
+}
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__DATA__
+
+=begin pod_to_ignore
+
+__loaderclass__
+package [% loader_class %];
+
+use strict;
+use base qw/DBIx::Class::Schema::Loader/;
+
+__PACKAGE__->load_from_connection(
+ connect_info => [
+ [% FOREACH arg = connect_info %][% arg %],
+ [% END %]
+ ],
+ relationships => 1,
+ # debug => 1,
+);
+
+=head1 NAME
+
+[% loader_class %] - Loader-generated DBIx::Class::Schema class
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__compclass__
+package [% class %];
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+ schema_class => '[% loader_class %]',
+);
+
+=head1 NAME
+
+[% class %] - Catalyst DBIC Schema Model
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using L<DBIx::Class::Schema::Loader>
+generated Schema: L<[% loader_class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,376 +0,0 @@
-package Catalyst::Model::DBIC::Schema;
-
-use strict;
-use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
-use NEXT;
-use UNIVERSAL::require;
-use Carp;
-require DBIx::Class;
-
-our $VERSION = '0.12';
-
-__PACKAGE__->mk_classaccessor('composed_schema');
-__PACKAGE__->mk_accessors('schema');
-
-=head1 NAME
-
-Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
-
-=head1 SYNOPSIS
-
-Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
-
-=over
-
-=item 1.
-
-Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
-
- package MyApp::Schema::FilmDB;
- use base qw/DBIx::Class::Schema/;
-
- __PACKAGE__->load_classes(qw/Actor Role/);
-
-=item 2.
-
-Create some classes for the tables in the database, for example an
-Actor in MyApp/Schema/FilmDB/Actor.pm:
-
- package MyApp::Schema::FilmDB::Actor;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('actor');
-
- ...
-
-and a Role in MyApp/Schema/Role.pm:
-
- package MyApp::Schema::FilmDB::Role;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('actor');
-
- ...
-
-Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
-usable as a standalone module and you can test/run it without Catalyst.
-
-=item 3.
-
-To expose it to Catalyst as a model, you should create a DBIC Model in
-MyApp/Model/FilmDB.pm:
-
- package MyApp::Model::FilmDB;
- use base qw/Catalyst::Model::DBIC::Schema/;
-
- __PACKAGE__->config(
- schema_class => 'MyApp::Schema::FilmDB',
- connect_info => [
- "DBI:...",
- "username",
- "password",
- {AutoCommit => 1}
- ]
- );
-
-See below for a full list of the possible config parameters.
-
-=back
-
-Now you have a working Model, accessing your separate DBIC Schema. Which can
-be used/accessed in the normal Catalyst manner, via $c->model():
-
- my $actor = $c->model('FilmDB::Actor')->find(1);
-
-You can also use it to set up DBIC authentication with
-Authentication::Store::DBIC in MyApp.pm:
-
- package MyApp;
-
- use Catalyst qw/... Authentication::Store::DBIC/;
-
- ...
-
- __PACKAGE__->config->{authentication}{dbic} = {
- user_class => 'FilmDB::Actor',
- user_field => 'name',
- password_field => 'password'
- }
-
-C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
-parameter passed. To find out more about which methods can be called on a
-ResultSet, or how to add your own methods to it, please see the ResultSet
-documentation in the L<DBIx::Class> distribution.
-
-Some examples are given below:
-
- # to access schema methods directly:
- $c->model('FilmDB')->schema->source(...);
-
- # to access the source object, resultset, and class:
- $c->model('FilmDB')->source(...);
- $c->model('FilmDB')->resultset(...);
- $c->model('FilmDB')->class(...);
-
- # For resultsets, there's an even quicker shortcut:
- $c->model('FilmDB::Actor')
- # is the same as $c->model('FilmDB')->resultset('Actor')
-
- # To get the composed schema for making new connections:
- my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
-
- # Or the same thing via a convenience shortcut:
- my $newconn = $c->model('FilmDB')->connect(...);
-
- # or, if your schema works on different storage drivers:
- my $newconn = $c->model('FilmDB')->composed_schema->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
- # and again, a convenience shortcut
- my $newconn = $c->model('FilmDB')->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
-=head1 DESCRIPTION
-
-This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
-the documentation for L<Catalyst::Helper::Model::DBIC::Schema> and
-L<Catalyst::Helper::Model::DBIC::SchemaLoader> for information
-on generating these Models via Helper scripts. The latter of the two
-will also generated a L<DBIx::Class::Schema::Loader>-based Schema class
-for you.
-
-=head1 CONFIG PARAMETERS
-
-=over 4
-
-=item schema_class
-
-This is the classname of your L<DBIx::Class::Schema> Schema. It needs
-to be findable in C<@INC>, but it does not need to be inside the
-C<Catalyst::Model::> namespace. This parameter is required.
-
-=item 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).
-
-This is not required if C<schema_class> already has connection information
-defined in itself (which would be the case for a Schema defined by
-L<DBIx::Class::Schema::Loader>, for instance).
-
-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
-parameters are your dsn, username, password, and connect options hashref.
-
-If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
-C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
-C<quote_char>, or C<name_sep>, you can place these options into a hashref
-as the final element of the C<connect_info> arrayref. If in doubt, don't
-specify these options. You would know it if you needed them.
-
-Examples:
-
- connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
-
- connect_info => [
- 'dbi:SQLite:dbname=foo.db',
- {
- on_connect_do => [
- 'PRAGMA synchronous = OFF',
- ],
- }
- ],
-
- connect_info => [
- 'dbi:Pg:dbname=mypgdb',
- 'postgres',
- '',
- { AutoCommit => 0 },
- {
- on_connect_do => [
- 'some SQL statement',
- 'another SQL statement',
- ],
- }
- ],
-
-=item storage_type
-
-Allows the use of a different C<storage_type> than what is set in your
-C<schema_class> (which in turn defaults to C<::DBI> if not set in current
-L<DBIx::Class>). Completely optional, and probably unnecessary for most
-people until other storage backends become available for L<DBIx::Class>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item new
-
-Instantiates the Model based on the above-documented ->config parameters.
-The only required parameter is C<schema_class>. C<connect_info> is
-required in the case that C<schema_class> does not already have connection
-information defined for it.
-
-=item schema
-
-Accessor which returns the connected schema being used by the this model.
-There are direct shortcuts on the model class itself for
-schema->resultset, schema->source, and schema->class.
-
-=item composed_schema
-
-Accessor which returns the composed schema, which has no connection info,
-which was used in constructing the C<schema> above. Useful for creating
-new connections based on the same schema/model. There are direct shortcuts
-from the model object for composed_schema->clone and composed_schema->connect
-
-=item clone
-
-Shortcut for ->composed_schema->clone
-
-=item connect
-
-Shortcut for ->composed_schema->connect
-
-=item source
-
-Shortcut for ->schema->source
-
-=item class
-
-Shortcut for ->schema->class
-
-=item resultset
-
-Shortcut for ->schema->resultset
-
-=item storage
-
-Provides an accessor for the connected schema's storage object.
-Used often for debugging and controlling transactions.
-
-=back
-
-=cut
-
-sub new {
- my $self = shift->NEXT::new(@_);
-
- my $class = ref($self);
- my $model_name = $class;
- $model_name =~ s/^[\w:]+::(?:Model|M):://;
-
- croak "->config->{schema_class} must be defined for this model"
- unless $self->{schema_class};
-
- my $schema_class = $self->{schema_class};
-
- $schema_class->require
- or croak "Cannot load schema class '$schema_class': $@";
-
- if( !$self->{connect_info} ) {
- if($schema_class->storage && $schema_class->storage->connect_info) {
- $self->{connect_info} = $schema_class->storage->connect_info;
- }
- else {
- croak "Either ->config->{connect_info} must be defined for $class"
- . " or $schema_class must have connect info defined on it";
- }
- }
-
- $self->composed_schema($schema_class->compose_namespace($class));
- $self->schema($self->composed_schema->clone);
-
- $self->schema->storage_type($self->{storage_type})
- if $self->{storage_type};
-
- # XXX This is temporary, until DBIx::Class::Storage::DBI supports the
- # same syntax and we switch our requisite to that version somewhere
- # down the line. This syntax is already committed into DBIx::Class
- # dev branch post-0.06.
- # At that time, this whole block can revert back to just being:
- # $self->schema->connection(@{$self->{connect_info}});
-
- my $connect_info = [ @{$self->{connect_info}} ];
- my ($on_connect_do, %sql_maker_opts);
- if($DBIx::Class::VERSION < 0.069) {
- my $used;
- my $last_info = $self->{connect_info}->[-1];
- if(ref $last_info eq 'HASH') {
- if($on_connect_do = $last_info->{on_connect_do}) {
- $used = 1;
- }
- for my $sql_maker_opt (qw/limit_dialect quote_char name_sep/) {
- if(my $opt_val = $last_info->{$sql_maker_opt}) {
- $used = 1;
- $sql_maker_opts{$sql_maker_opt} = $opt_val;
- }
- }
- pop(@$connect_info) if $used;
- }
- }
-
- $self->schema->connection(@$connect_info);
-
- if($DBIx::Class::VERSION < 0.069) {
- $self->schema->storage->on_connect_do($on_connect_do)
- if $on_connect_do;
- foreach my $sql_maker_opt (keys %sql_maker_opts) {
- $self->schema->storage->sql_maker->$sql_maker_opt(
- $sql_maker_opts{$sql_maker_opt}
- );
- }
- }
-
- # XXX end of compatibility block referenced above
-
- no strict 'refs';
- foreach my $moniker ($self->schema->sources) {
- my $classname = "${class}::$moniker";
- *{"${classname}::ACCEPT_CONTEXT"} = sub {
- shift;
- shift->model($model_name)->resultset($moniker);
- }
- }
-
- return $self;
-}
-
-sub clone { shift->composed_schema->clone(@_); }
-
-sub connect { shift->composed_schema->connect(@_); }
-
-sub storage { shift->schema->storage(@_); }
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>,
-L<Catalyst::Helper::Model::DBIC::SchemaLoader>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 COPYRIGHT
-
-This program is free software, you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,376 @@
+package Catalyst::Model::DBIC::Schema;
+
+use strict;
+use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
+use NEXT;
+use UNIVERSAL::require;
+use Carp;
+require DBIx::Class;
+
+our $VERSION = '0.12';
+
+__PACKAGE__->mk_classaccessor('composed_schema');
+__PACKAGE__->mk_accessors('schema');
+
+=head1 NAME
+
+Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
+
+=head1 SYNOPSIS
+
+Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
+
+=over
+
+=item 1.
+
+Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
+
+ package MyApp::Schema::FilmDB;
+ use base qw/DBIx::Class::Schema/;
+
+ __PACKAGE__->load_classes(qw/Actor Role/);
+
+=item 2.
+
+Create some classes for the tables in the database, for example an
+Actor in MyApp/Schema/FilmDB/Actor.pm:
+
+ package MyApp::Schema::FilmDB::Actor;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('actor');
+
+ ...
+
+and a Role in MyApp/Schema/Role.pm:
+
+ package MyApp::Schema::FilmDB::Role;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('actor');
+
+ ...
+
+Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
+usable as a standalone module and you can test/run it without Catalyst.
+
+=item 3.
+
+To expose it to Catalyst as a model, you should create a DBIC Model in
+MyApp/Model/FilmDB.pm:
+
+ package MyApp::Model::FilmDB;
+ use base qw/Catalyst::Model::DBIC::Schema/;
+
+ __PACKAGE__->config(
+ schema_class => 'MyApp::Schema::FilmDB',
+ connect_info => [
+ "DBI:...",
+ "username",
+ "password",
+ {AutoCommit => 1}
+ ]
+ );
+
+See below for a full list of the possible config parameters.
+
+=back
+
+Now you have a working Model, accessing your separate DBIC Schema. Which can
+be used/accessed in the normal Catalyst manner, via $c->model():
+
+ my $actor = $c->model('FilmDB::Actor')->find(1);
+
+You can also use it to set up DBIC authentication with
+Authentication::Store::DBIC in MyApp.pm:
+
+ package MyApp;
+
+ use Catalyst qw/... Authentication::Store::DBIC/;
+
+ ...
+
+ __PACKAGE__->config->{authentication}{dbic} = {
+ user_class => 'FilmDB::Actor',
+ user_field => 'name',
+ password_field => 'password'
+ }
+
+C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
+parameter passed. To find out more about which methods can be called on a
+ResultSet, or how to add your own methods to it, please see the ResultSet
+documentation in the L<DBIx::Class> distribution.
+
+Some examples are given below:
+
+ # to access schema methods directly:
+ $c->model('FilmDB')->schema->source(...);
+
+ # to access the source object, resultset, and class:
+ $c->model('FilmDB')->source(...);
+ $c->model('FilmDB')->resultset(...);
+ $c->model('FilmDB')->class(...);
+
+ # For resultsets, there's an even quicker shortcut:
+ $c->model('FilmDB::Actor')
+ # is the same as $c->model('FilmDB')->resultset('Actor')
+
+ # To get the composed schema for making new connections:
+ my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
+
+ # Or the same thing via a convenience shortcut:
+ my $newconn = $c->model('FilmDB')->connect(...);
+
+ # or, if your schema works on different storage drivers:
+ my $newconn = $c->model('FilmDB')->composed_schema->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+ # and again, a convenience shortcut
+ my $newconn = $c->model('FilmDB')->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+=head1 DESCRIPTION
+
+This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
+the documentation for L<Catalyst::Helper::Model::DBIC::Schema> and
+L<Catalyst::Helper::Model::DBIC::SchemaLoader> for information
+on generating these Models via Helper scripts. The latter of the two
+will also generated a L<DBIx::Class::Schema::Loader>-based Schema class
+for you.
+
+=head1 CONFIG PARAMETERS
+
+=over 4
+
+=item schema_class
+
+This is the classname of your L<DBIx::Class::Schema> Schema. It needs
+to be findable in C<@INC>, but it does not need to be inside the
+C<Catalyst::Model::> namespace. This parameter is required.
+
+=item 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).
+
+This is not required if C<schema_class> already has connection information
+defined in itself (which would be the case for a Schema defined by
+L<DBIx::Class::Schema::Loader>, for instance).
+
+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
+parameters are your dsn, username, password, and connect options hashref.
+
+If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
+C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
+C<quote_char>, or C<name_sep>, you can place these options into a hashref
+as the final element of the C<connect_info> arrayref. If in doubt, don't
+specify these options. You would know it if you needed them.
+
+Examples:
+
+ connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
+
+ connect_info => [
+ 'dbi:SQLite:dbname=foo.db',
+ {
+ on_connect_do => [
+ 'PRAGMA synchronous = OFF',
+ ],
+ }
+ ],
+
+ connect_info => [
+ 'dbi:Pg:dbname=mypgdb',
+ 'postgres',
+ '',
+ { AutoCommit => 0 },
+ {
+ on_connect_do => [
+ 'some SQL statement',
+ 'another SQL statement',
+ ],
+ }
+ ],
+
+=item storage_type
+
+Allows the use of a different C<storage_type> than what is set in your
+C<schema_class> (which in turn defaults to C<::DBI> if not set in current
+L<DBIx::Class>). Completely optional, and probably unnecessary for most
+people until other storage backends become available for L<DBIx::Class>.
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new
+
+Instantiates the Model based on the above-documented ->config parameters.
+The only required parameter is C<schema_class>. C<connect_info> is
+required in the case that C<schema_class> does not already have connection
+information defined for it.
+
+=item schema
+
+Accessor which returns the connected schema being used by the this model.
+There are direct shortcuts on the model class itself for
+schema->resultset, schema->source, and schema->class.
+
+=item composed_schema
+
+Accessor which returns the composed schema, which has no connection info,
+which was used in constructing the C<schema> above. Useful for creating
+new connections based on the same schema/model. There are direct shortcuts
+from the model object for composed_schema->clone and composed_schema->connect
+
+=item clone
+
+Shortcut for ->composed_schema->clone
+
+=item connect
+
+Shortcut for ->composed_schema->connect
+
+=item source
+
+Shortcut for ->schema->source
+
+=item class
+
+Shortcut for ->schema->class
+
+=item resultset
+
+Shortcut for ->schema->resultset
+
+=item storage
+
+Provides an accessor for the connected schema's storage object.
+Used often for debugging and controlling transactions.
+
+=back
+
+=cut
+
+sub new {
+ my $self = shift->NEXT::new(@_);
+
+ my $class = ref($self);
+ my $model_name = $class;
+ $model_name =~ s/^[\w:]+::(?:Model|M):://;
+
+ croak "->config->{schema_class} must be defined for this model"
+ unless $self->{schema_class};
+
+ my $schema_class = $self->{schema_class};
+
+ $schema_class->require
+ or croak "Cannot load schema class '$schema_class': $@";
+
+ if( !$self->{connect_info} ) {
+ if($schema_class->storage && $schema_class->storage->connect_info) {
+ $self->{connect_info} = $schema_class->storage->connect_info;
+ }
+ else {
+ croak "Either ->config->{connect_info} must be defined for $class"
+ . " or $schema_class must have connect info defined on it";
+ }
+ }
+
+ $self->composed_schema($schema_class->compose_namespace($class));
+ $self->schema($self->composed_schema->clone);
+
+ $self->schema->storage_type($self->{storage_type})
+ if $self->{storage_type};
+
+ # XXX This is temporary, until DBIx::Class::Storage::DBI supports the
+ # same syntax and we switch our requisite to that version somewhere
+ # down the line. This syntax is already committed into DBIx::Class
+ # dev branch post-0.06.
+ # At that time, this whole block can revert back to just being:
+ # $self->schema->connection(@{$self->{connect_info}});
+
+ my $connect_info = [ @{$self->{connect_info}} ];
+ my ($on_connect_do, %sql_maker_opts);
+ if($DBIx::Class::VERSION < 0.069) {
+ my $used;
+ my $last_info = $self->{connect_info}->[-1];
+ if(ref $last_info eq 'HASH') {
+ if($on_connect_do = $last_info->{on_connect_do}) {
+ $used = 1;
+ }
+ for my $sql_maker_opt (qw/limit_dialect quote_char name_sep/) {
+ if(my $opt_val = $last_info->{$sql_maker_opt}) {
+ $used = 1;
+ $sql_maker_opts{$sql_maker_opt} = $opt_val;
+ }
+ }
+ pop(@$connect_info) if $used;
+ }
+ }
+
+ $self->schema->connection(@$connect_info);
+
+ if($DBIx::Class::VERSION < 0.069) {
+ $self->schema->storage->on_connect_do($on_connect_do)
+ if $on_connect_do;
+ foreach my $sql_maker_opt (keys %sql_maker_opts) {
+ $self->schema->storage->sql_maker->$sql_maker_opt(
+ $sql_maker_opts{$sql_maker_opt}
+ );
+ }
+ }
+
+ # XXX end of compatibility block referenced above
+
+ no strict 'refs';
+ foreach my $moniker ($self->schema->sources) {
+ my $classname = "${class}::$moniker";
+ *{"${classname}::ACCEPT_CONTEXT"} = sub {
+ shift;
+ shift->model($model_name)->resultset($moniker);
+ }
+ }
+
+ return $self;
+}
+
+sub clone { shift->composed_schema->clone(@_); }
+
+sub connect { shift->composed_schema->connect(@_); }
+
+sub storage { shift->schema->storage(@_); }
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>,
+L<Catalyst::Helper::Model::DBIC::SchemaLoader>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/t)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,6 +0,0 @@
-use strict;
-use Test::More tests => 3;
-
-BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
-BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
-BEGIN { use_ok('Catalyst::Helper::Model::DBIC::SchemaLoader') }
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,6 @@
+use strict;
+use Test::More tests => 3;
+
+BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
+BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
+BEGIN { use_ok('Catalyst::Helper::Model::DBIC::SchemaLoader') }
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,8 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod 1.14";
-plan skip_all => 'Test::Pod 1.14 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_files_ok();
-
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,8 @@
+use Test::More;
+
+eval "use Test::Pod 1.14";
+plan skip_all => 'Test::Pod 1.14 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_files_ok();
+
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,7 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.04";
-plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_coverage_ok();
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,7 @@
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_coverage_ok();
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use Test::More;
-
-eval { require Test::Kwalitee; Test::Kwalitee->import() };
-
-plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use Test::More;
+
+eval { require Test::Kwalitee; Test::Kwalitee->import() };
+
+plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,49 +0,0 @@
-use strict;
-use Test::More;
-use FindBin;
-use File::Spec;
-use File::Find;
-
-plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
- unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
-
-my $test_params = [
- [ 'TestSchema', 'DBIC::Schema', '' ],
- [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
- [ 'TestSchemaLoader', 'DBIC::SchemaLoader', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
-];
-
-plan tests => (2 * @$test_params);
-
-my $test_dir = $FindBin::Bin;
-my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
-my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
-my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
-my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
-my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
-
-chdir($test_dir);
-system("catalyst.pl TestApp");
-chdir($cat_dir);
-
-foreach my $tparam (@$test_params) {
- my ($model, $helper, $args) = @$tparam;
- my $model_two = $model;
- if($helper =~ /Loader/) {
- $model_two = '';
- }
- system("$^X -I$blib_dir $creator model $model $helper $model_two $args");
- my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
- ok( -f $model_path, "$model_path is a file" );
- my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
- ok($compile_rv == 0, "perl -c $model_path");
-}
-
-chdir($test_dir);
-
-sub rm_rf {
- my $name = $File::Find::name;
- if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
- else { unlink $name or die "Cannot unlink $name: $!" }
-}
-finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.12/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,49 @@
+use strict;
+use Test::More;
+use FindBin;
+use File::Spec;
+use File::Find;
+
+plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
+ unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
+
+my $test_params = [
+ [ 'TestSchema', 'DBIC::Schema', '' ],
+ [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
+ [ 'TestSchemaLoader', 'DBIC::SchemaLoader', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
+];
+
+plan tests => (2 * @$test_params);
+
+my $test_dir = $FindBin::Bin;
+my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
+my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
+my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
+my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
+my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
+
+chdir($test_dir);
+system("catalyst.pl TestApp");
+chdir($cat_dir);
+
+foreach my $tparam (@$test_params) {
+ my ($model, $helper, $args) = @$tparam;
+ my $model_two = $model;
+ if($helper =~ /Loader/) {
+ $model_two = '';
+ }
+ system("$^X -I$blib_dir $creator model $model $helper $model_two $args");
+ my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
+ ok( -f $model_path, "$model_path is a file" );
+ my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
+ ok($compile_rv == 0, "perl -c $model_path");
+}
+
+chdir($test_dir);
+
+sub rm_rf {
+ my $name = $File::Find::name;
+ if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
+ else { unlink $name or die "Cannot unlink $name: $!" }
+}
+finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.16 (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,24 +0,0 @@
-use strict;
-use Module::Build;
-
-my %arguments = (
- license => 'perl',
- module_name => 'Catalyst::Model::DBIC::Schema',
- requires => {
- 'DBIx::Class' => 0.06,
- 'Catalyst' => 5.64,
- 'UNIVERSAL::require' => 0.10,
- 'Class::Data::Accessor' => 0.02,
- 'Class::Accessor::Fast' => 0.22,
- },
- recommends => {
- 'DBIx::Class::Schema::Loader' => 0.03003,
- },
- build_requires => {
- 'Test::More' => 0.32,
- },
- create_makefile_pl => 'passthrough',
- create_readme => 1,
-);
-
-Module::Build->new(%arguments)->create_build_script;
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,24 @@
+use strict;
+use Module::Build;
+
+my %arguments = (
+ license => 'perl',
+ module_name => 'Catalyst::Model::DBIC::Schema',
+ requires => {
+ 'DBIx::Class' => 0.06,
+ 'Catalyst' => 5.64,
+ 'UNIVERSAL::require' => 0.10,
+ 'Class::Data::Accessor' => 0.02,
+ 'Class::Accessor::Fast' => 0.22,
+ },
+ recommends => {
+ 'DBIx::Class::Schema::Loader' => 0.03003,
+ },
+ build_requires => {
+ 'Test::More' => 0.32,
+ },
+ create_makefile_pl => 'passthrough',
+ create_readme => 1,
+);
+
+Module::Build->new(%arguments)->create_build_script;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/Changes
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/Changes 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,61 +0,0 @@
-Revision history for Perl extension Catalyst::Model::DBIC::Schema
-
-0.16 Thu Jul 6 13:28:45 UTC 2006
- - Bugfix for create=static and connect_info coderef snippets
- - Be more verbose when connection_info is not set.
-
-0.15 Tue Jun 6 01:33:57 UTC 2006
- - Fixed a serious bug in create=static usage
- - Re-arranged output generation so that the more likely
- failure to generate Schemas via create= will cause the
- helper to abort before generating the Model class itself
-
-0.14 Mon Jun 5 23:34:35 UTC 2006
- - Helpers merged, helper syntax changed
- - Everything updated for Schema::Loader 0.03001 support, including
- what amounts to using Loader in one-shot mode to generate
- a manual Schema with matching Model.
- - fixed stupid typo in docs
-
-0.13 Wed Apr 26 2006
- - noted support via mailing lists
-
-0.12 Tue Apr 25 2006
- - SYNOPSIS improved substantially to help newbies get started
-
-0.11 Sun Mar 26 17:22:31 UTC 2006
- - Removed on_connect_do config setting (it was only out
- in public for 4 days...).
- - Support for on_connect_do and sql_maker options as part
- of connect_info
-
-0.10 Wed Mar 22 07:06:02 UTC 2006
- - Added on_connect_do config setting
- - Added convenience method for ->schema->storage from paulm
-
-0.08 Tue Feb 28 00:04:16 UTC 2006
- - Bumped D::C::Schema::Loader recommendation to 0.02003
- (should have been done last release)
- - Removed the ->require stuff added in 0.07, it doesn't
- do what it is supposed to do. For now, users can layer
- at the Schema::Loader level rather than at Model.
-
-0.07 Sun Feb 19 21:50:18 UTC 2006
- - bugfix for ::SchemaLoader::Foo password argument, and
- switch to connect_info argument of new Schema::Loader
- - Added ->require for source classes, so that you can
- layer in lib/MyApp/Model/Foo/Bar.pm on top of the
- generated MyApp::Model::Foo::Bar.
-
-0.06 Sat Feb 18 19:05:17 UTC 2006
- - Fix simple pod-related bug introduced in last rev
- - Added optional test that uses the helpers
-
-0.05 Fri Feb 17 20:52:21 UTC 2006
- - Stop showing the template pod in pod tools and cpan,
- per Gavin's email.
- - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
- subtle issues under mod_perl engines.
-
-0.04 Mon Feb 13 04:22:49 UTC 2006
- - First public release
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/Changes (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/Changes)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/Changes (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,61 @@
+Revision history for Perl extension Catalyst::Model::DBIC::Schema
+
+0.16 Thu Jul 6 13:28:45 UTC 2006
+ - Bugfix for create=static and connect_info coderef snippets
+ - Be more verbose when connection_info is not set.
+
+0.15 Tue Jun 6 01:33:57 UTC 2006
+ - Fixed a serious bug in create=static usage
+ - Re-arranged output generation so that the more likely
+ failure to generate Schemas via create= will cause the
+ helper to abort before generating the Model class itself
+
+0.14 Mon Jun 5 23:34:35 UTC 2006
+ - Helpers merged, helper syntax changed
+ - Everything updated for Schema::Loader 0.03001 support, including
+ what amounts to using Loader in one-shot mode to generate
+ a manual Schema with matching Model.
+ - fixed stupid typo in docs
+
+0.13 Wed Apr 26 2006
+ - noted support via mailing lists
+
+0.12 Tue Apr 25 2006
+ - SYNOPSIS improved substantially to help newbies get started
+
+0.11 Sun Mar 26 17:22:31 UTC 2006
+ - Removed on_connect_do config setting (it was only out
+ in public for 4 days...).
+ - Support for on_connect_do and sql_maker options as part
+ of connect_info
+
+0.10 Wed Mar 22 07:06:02 UTC 2006
+ - Added on_connect_do config setting
+ - Added convenience method for ->schema->storage from paulm
+
+0.08 Tue Feb 28 00:04:16 UTC 2006
+ - Bumped D::C::Schema::Loader recommendation to 0.02003
+ (should have been done last release)
+ - Removed the ->require stuff added in 0.07, it doesn't
+ do what it is supposed to do. For now, users can layer
+ at the Schema::Loader level rather than at Model.
+
+0.07 Sun Feb 19 21:50:18 UTC 2006
+ - bugfix for ::SchemaLoader::Foo password argument, and
+ switch to connect_info argument of new Schema::Loader
+ - Added ->require for source classes, so that you can
+ layer in lib/MyApp/Model/Foo/Bar.pm on top of the
+ generated MyApp::Model::Foo::Bar.
+
+0.06 Sat Feb 18 19:05:17 UTC 2006
+ - Fix simple pod-related bug introduced in last rev
+ - Added optional test that uses the helpers
+
+0.05 Fri Feb 17 20:52:21 UTC 2006
+ - Stop showing the template pod in pod tools and cpan,
+ per Gavin's email.
+ - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
+ subtle issues under mod_perl engines.
+
+0.04 Mon Feb 13 04:22:49 UTC 2006
+ - First public release
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,28 +0,0 @@
-# Avoid version control files.
-\bRCS\b
-\bCVS\b
-,v$
-\B\.svn\b
-
-# Avoid Makemaker generated and utility files.
-\bMakefile$
-\bblib
-\bMakeMaker-\d
-\bpm_to_blib$
-\bblibdirs$
-^MANIFEST\.SKIP$
-
-# Avoid Module::Build generated and utility files.
-\bBuild$
-\b_build
-
-# Avoid temp and backup files.
-~$
-\.tmp$
-\.old$
-\.bak$
-\#$
-\b\.#
-
-# avoid dist files
-\.tar\.gz$
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,28 @@
+# Avoid version control files.
+\bRCS\b
+\bCVS\b
+,v$
+\B\.svn\b
+
+# Avoid Makemaker generated and utility files.
+\bMakefile$
+\bblib
+\bMakeMaker-\d
+\bpm_to_blib$
+\bblibdirs$
+^MANIFEST\.SKIP$
+
+# Avoid Module::Build generated and utility files.
+\bBuild$
+\b_build
+
+# Avoid temp and backup files.
+~$
+\.tmp$
+\.old$
+\.bak$
+\#$
+\b\.#
+
+# avoid dist files
+\.tar\.gz$
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,31 +0,0 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.03
-
- unless (eval "use Module::Build::Compat 0.02; 1" ) {
- print "This module requires Module::Build to install itself.\n";
-
- require ExtUtils::MakeMaker;
- my $yn = ExtUtils::MakeMaker::prompt
- (' Install Module::Build now from CPAN?', 'y');
-
- unless ($yn =~ /^y/i) {
- die " *** Cannot install without Module::Build. Exiting ...\n";
- }
-
- require Cwd;
- require File::Spec;
- require CPAN;
-
- # Save this 'cause CPAN will chdir all over the place.
- my $cwd = Cwd::cwd();
-
- CPAN::Shell->install('Module::Build::Compat');
- CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
- or die "Couldn't install Module::Build, giving up.\n";
-
- chdir $cwd or die "Cannot chdir() back to $cwd: $!";
- }
- eval "use Module::Build::Compat 0.02; 1" or die $@;
-
- Module::Build::Compat->run_build_pl(args => \@ARGV);
- require Module::Build;
- Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,31 @@
+# Note: this file was auto-generated by Module::Build::Compat version 0.03
+
+ unless (eval "use Module::Build::Compat 0.02; 1" ) {
+ print "This module requires Module::Build to install itself.\n";
+
+ require ExtUtils::MakeMaker;
+ my $yn = ExtUtils::MakeMaker::prompt
+ (' Install Module::Build now from CPAN?', 'y');
+
+ unless ($yn =~ /^y/i) {
+ die " *** Cannot install without Module::Build. Exiting ...\n";
+ }
+
+ require Cwd;
+ require File::Spec;
+ require CPAN;
+
+ # Save this 'cause CPAN will chdir all over the place.
+ my $cwd = Cwd::cwd();
+
+ CPAN::Shell->install('Module::Build::Compat');
+ CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
+ or die "Couldn't install Module::Build, giving up.\n";
+
+ chdir $cwd or die "Cannot chdir() back to $cwd: $!";
+ }
+ eval "use Module::Build::Compat 0.02; 1" or die $@;
+
+ Module::Build::Compat->run_build_pl(args => \@ARGV);
+ require Module::Build;
+ Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib)
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst)
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper)
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,230 +0,0 @@
-package Catalyst::Helper::Model::DBIC::Schema;
-
-use strict;
-use warnings;
-use Carp;
-use UNIVERSAL::require;
-
-=head1 NAME
-
-Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
-
-=head1 SYNOPSIS
-
- script/create.pl model ModelName DBIC::Schema My::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
-
-=head1 DESCRIPTION
-
-Helper for the DBIC Schema Models.
-
-=head2 Arguments:
-
- ModelName is the short name for the Model class being generated
-
- My::SchemaClass is the fully qualified classname of your Schema,
- which might or might not yet exist.
-
- create=dynamic instructs this Helper to generate the named Schema
- class for you, basing it on L<DBIx::Class::Schema::Loader> (which
- means the table information will always be dynamically loaded at
- runtime from the database).
-
- create=static instructs this Helper to generate the named Schema
- class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
- mode to create a standard, manually-defined L<DBIx::Class::Schema>
- setup, based on what the Loader sees in your database at this moment.
- A Schema/Model pair generated this way will not require
- L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
- adapt itself to changes in your database structure. You can edit
- the generated classes by hand to refine them.
-
- connect_info arguments are the same as what DBIx::Class::Schema::connect
- expects, and are storage_type-specific. For DBI-based storage, these
- arguments are the dsn, username, password, and connect options,
- respectively. These are optional for existing Schemas, but required
- if you use either of the C<create=> options.
-
-Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
-
-=head1 TYPICAL EXAMPLES
-
- # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
- # and a Model which references it:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=static dbi:mysql:foodb myuname mypass
-
- # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
- # and a Model which references it:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
-
- # Reference an existing Schema of any kind, and provide some connection information for ->config:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass dbi:mysql:foodb myuname mypass
-
- # Same, but don't supply connect information yet (you'll need to do this
- # in your app config, or [not recommended] in the schema itself).
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
-
-=head2 METHODS
-
-=head3 mk_compclass
-
-=cut
-
-sub mk_compclass {
- my ( $self, $helper, $schema_class, @connect_info) = @_;
-
- $helper->{schema_class} = $schema_class
- or croak "Must supply schema class name";
-
- my $create = '';
- if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
- $create = $1;
- shift @connect_info;
- }
-
- if(@connect_info) {
- $helper->{setup_connect_info} = 1;
- my @helper_connect_info = @connect_info;
- for(@helper_connect_info) {
- $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
- }
- $helper->{connect_info} = \@helper_connect_info;
- }
-
- if($create eq 'dynamic') {
- my @schema_parts = split(/\:\:/, $helper->{schema_class});
- my $schema_file_part = pop @schema_parts;
-
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
- my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
-
- $helper->mk_dir($schema_dir);
- $helper->render_file( 'schemaclass', $schema_file );
- }
- elsif($create eq 'static') {
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
- DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
- or croak "Cannot load DBIx::Class::Schema::Loader: $@";
-
- my @loader_connect_info = @connect_info;
- my $num = 6; # argument number on the commandline for "dbi:..."
- for(@loader_connect_info) {
- if(/^\s*[[{]/) {
- $_ = eval "$_";
- croak "Perl syntax error in commandline argument $num: $@" if $@;
- }
- $num++;
- }
-
- make_schema_at(
- $schema_class,
- { relationships => 1 },
- \@loader_connect_info,
- );
- }
-
- my $file = $helper->{file};
- $helper->render_file( 'compclass', $file );
-}
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__DATA__
-
-=begin pod_to_ignore
-
-__schemaclass__
-package [% schema_class %];
-
-use strict;
-use base qw/DBIx::Class::Schema::Loader/;
-
-__PACKAGE__->loader_options(
- relationships => 1,
- # debug => 1,
-);
-
-=head1 NAME
-
-[% schema_class %] - DBIx::Class::Schema::Loader class
-
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__compclass__
-package [% class %];
-
-use strict;
-use base 'Catalyst::Model::DBIC::Schema';
-
-__PACKAGE__->config(
- schema_class => '[% schema_class %]',
- [% IF setup_connect_info %]connect_info => [
- [% FOREACH arg = connect_info %][% arg %],
- [% END %]
- ],[% END %]
-);
-
-=head1 NAME
-
-[% class %] - Catalyst DBIC Schema Model
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,230 @@
+package Catalyst::Helper::Model::DBIC::Schema;
+
+use strict;
+use warnings;
+use Carp;
+use UNIVERSAL::require;
+
+=head1 NAME
+
+Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
+
+=head1 SYNOPSIS
+
+ script/create.pl model ModelName DBIC::Schema My::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
+
+=head1 DESCRIPTION
+
+Helper for the DBIC Schema Models.
+
+=head2 Arguments:
+
+ ModelName is the short name for the Model class being generated
+
+ My::SchemaClass is the fully qualified classname of your Schema,
+ which might or might not yet exist.
+
+ create=dynamic instructs this Helper to generate the named Schema
+ class for you, basing it on L<DBIx::Class::Schema::Loader> (which
+ means the table information will always be dynamically loaded at
+ runtime from the database).
+
+ create=static instructs this Helper to generate the named Schema
+ class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
+ mode to create a standard, manually-defined L<DBIx::Class::Schema>
+ setup, based on what the Loader sees in your database at this moment.
+ A Schema/Model pair generated this way will not require
+ L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
+ adapt itself to changes in your database structure. You can edit
+ the generated classes by hand to refine them.
+
+ connect_info arguments are the same as what DBIx::Class::Schema::connect
+ expects, and are storage_type-specific. For DBI-based storage, these
+ arguments are the dsn, username, password, and connect options,
+ respectively. These are optional for existing Schemas, but required
+ if you use either of the C<create=> options.
+
+Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
+
+=head1 TYPICAL EXAMPLES
+
+ # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=static dbi:mysql:foodb myuname mypass
+
+ # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
+
+ # Reference an existing Schema of any kind, and provide some connection information for ->config:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass dbi:mysql:foodb myuname mypass
+
+ # Same, but don't supply connect information yet (you'll need to do this
+ # in your app config, or [not recommended] in the schema itself).
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
+
+=head2 METHODS
+
+=head3 mk_compclass
+
+=cut
+
+sub mk_compclass {
+ my ( $self, $helper, $schema_class, @connect_info) = @_;
+
+ $helper->{schema_class} = $schema_class
+ or croak "Must supply schema class name";
+
+ my $create = '';
+ if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
+ $create = $1;
+ shift @connect_info;
+ }
+
+ if(@connect_info) {
+ $helper->{setup_connect_info} = 1;
+ my @helper_connect_info = @connect_info;
+ for(@helper_connect_info) {
+ $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
+ }
+ $helper->{connect_info} = \@helper_connect_info;
+ }
+
+ if($create eq 'dynamic') {
+ my @schema_parts = split(/\:\:/, $helper->{schema_class});
+ my $schema_file_part = pop @schema_parts;
+
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
+ my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
+
+ $helper->mk_dir($schema_dir);
+ $helper->render_file( 'schemaclass', $schema_file );
+ }
+ elsif($create eq 'static') {
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
+ DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
+ or croak "Cannot load DBIx::Class::Schema::Loader: $@";
+
+ my @loader_connect_info = @connect_info;
+ my $num = 6; # argument number on the commandline for "dbi:..."
+ for(@loader_connect_info) {
+ if(/^\s*[[{]/) {
+ $_ = eval "$_";
+ croak "Perl syntax error in commandline argument $num: $@" if $@;
+ }
+ $num++;
+ }
+
+ make_schema_at(
+ $schema_class,
+ { relationships => 1 },
+ \@loader_connect_info,
+ );
+ }
+
+ my $file = $helper->{file};
+ $helper->render_file( 'compclass', $file );
+}
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__DATA__
+
+=begin pod_to_ignore
+
+__schemaclass__
+package [% schema_class %];
+
+use strict;
+use base qw/DBIx::Class::Schema::Loader/;
+
+__PACKAGE__->loader_options(
+ relationships => 1,
+ # debug => 1,
+);
+
+=head1 NAME
+
+[% schema_class %] - DBIx::Class::Schema::Loader class
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__compclass__
+package [% class %];
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+ schema_class => '[% schema_class %]',
+ [% IF setup_connect_info %]connect_info => [
+ [% FOREACH arg = connect_info %][% arg %],
+ [% END %]
+ ],[% END %]
+);
+
+=head1 NAME
+
+[% class %] - Catalyst DBIC Schema Model
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,374 +0,0 @@
-package Catalyst::Model::DBIC::Schema;
-
-use strict;
-use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
-use NEXT;
-use UNIVERSAL::require;
-use Carp;
-use Data::Dumper;
-require DBIx::Class;
-
-our $VERSION = '0.16';
-
-__PACKAGE__->mk_classaccessor('composed_schema');
-__PACKAGE__->mk_accessors('schema');
-
-=head1 NAME
-
-Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
-
-=head1 SYNOPSIS
-
-Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
-
-=over
-
-=item 1.
-
-Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
-
- package MyApp::Schema::FilmDB;
- use base qw/DBIx::Class::Schema/;
-
- __PACKAGE__->load_classes(qw/Actor Role/);
-
-=item 2.
-
-Create some classes for the tables in the database, for example an
-Actor in MyApp/Schema/FilmDB/Actor.pm:
-
- package MyApp::Schema::FilmDB::Actor;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('actor');
-
- ...
-
-and a Role in MyApp/Schema/Role.pm:
-
- package MyApp::Schema::FilmDB::Role;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('role');
-
- ...
-
-Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
-usable as a standalone module and you can test/run it without Catalyst.
-
-=item 3.
-
-To expose it to Catalyst as a model, you should create a DBIC Model in
-MyApp/Model/FilmDB.pm:
-
- package MyApp::Model::FilmDB;
- use base qw/Catalyst::Model::DBIC::Schema/;
-
- __PACKAGE__->config(
- schema_class => 'MyApp::Schema::FilmDB',
- connect_info => [
- "DBI:...",
- "username",
- "password",
- {AutoCommit => 1}
- ]
- );
-
-See below for a full list of the possible config parameters.
-
-=back
-
-Now you have a working Model, accessing your separate DBIC Schema. Which can
-be used/accessed in the normal Catalyst manner, via $c->model():
-
- my $actor = $c->model('FilmDB::Actor')->find(1);
-
-You can also use it to set up DBIC authentication with
-Authentication::Store::DBIC in MyApp.pm:
-
- package MyApp;
-
- use Catalyst qw/... Authentication::Store::DBIC/;
-
- ...
-
- __PACKAGE__->config->{authentication}{dbic} = {
- user_class => 'FilmDB::Actor',
- user_field => 'name',
- password_field => 'password'
- }
-
-C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
-parameter passed. To find out more about which methods can be called on a
-ResultSet, or how to add your own methods to it, please see the ResultSet
-documentation in the L<DBIx::Class> distribution.
-
-Some examples are given below:
-
- # to access schema methods directly:
- $c->model('FilmDB')->schema->source(...);
-
- # to access the source object, resultset, and class:
- $c->model('FilmDB')->source(...);
- $c->model('FilmDB')->resultset(...);
- $c->model('FilmDB')->class(...);
-
- # For resultsets, there's an even quicker shortcut:
- $c->model('FilmDB::Actor')
- # is the same as $c->model('FilmDB')->resultset('Actor')
-
- # To get the composed schema for making new connections:
- my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
-
- # Or the same thing via a convenience shortcut:
- my $newconn = $c->model('FilmDB')->connect(...);
-
- # or, if your schema works on different storage drivers:
- my $newconn = $c->model('FilmDB')->composed_schema->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
- # and again, a convenience shortcut
- my $newconn = $c->model('FilmDB')->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
-=head1 DESCRIPTION
-
-This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
-the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
-information on generating these Models via Helper scripts.
-
-=head1 CONFIG PARAMETERS
-
-=over 4
-
-=item schema_class
-
-This is the classname of your L<DBIx::Class::Schema> Schema. It needs
-to be findable in C<@INC>, but it does not need to be inside the
-C<Catalyst::Model::> namespace. This parameter is required.
-
-=item 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).
-
-This is not required if C<schema_class> already has connection information
-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
-parameters are your dsn, username, password, and connect options hashref.
-
-If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
-C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
-C<quote_char>, or C<name_sep>, you can place these options into a hashref
-as the final element of the C<connect_info> arrayref. If in doubt, don't
-specify these options. You would know it if you needed them.
-
-Examples:
-
- connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
-
- connect_info => [
- 'dbi:SQLite:dbname=foo.db',
- {
- on_connect_do => [
- 'PRAGMA synchronous = OFF',
- ],
- }
- ],
-
- connect_info => [
- 'dbi:Pg:dbname=mypgdb',
- 'postgres',
- '',
- { AutoCommit => 0 },
- {
- on_connect_do => [
- 'some SQL statement',
- 'another SQL statement',
- ],
- }
- ],
-
-=item storage_type
-
-Allows the use of a different C<storage_type> than what is set in your
-C<schema_class> (which in turn defaults to C<::DBI> if not set in current
-L<DBIx::Class>). Completely optional, and probably unnecessary for most
-people until other storage backends become available for L<DBIx::Class>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item new
-
-Instantiates the Model based on the above-documented ->config parameters.
-The only required parameter is C<schema_class>. C<connect_info> is
-required in the case that C<schema_class> does not already have connection
-information defined for it.
-
-=item schema
-
-Accessor which returns the connected schema being used by the this model.
-There are direct shortcuts on the model class itself for
-schema->resultset, schema->source, and schema->class.
-
-=item composed_schema
-
-Accessor which returns the composed schema, which has no connection info,
-which was used in constructing the C<schema> above. Useful for creating
-new connections based on the same schema/model. There are direct shortcuts
-from the model object for composed_schema->clone and composed_schema->connect
-
-=item clone
-
-Shortcut for ->composed_schema->clone
-
-=item connect
-
-Shortcut for ->composed_schema->connect
-
-=item source
-
-Shortcut for ->schema->source
-
-=item class
-
-Shortcut for ->schema->class
-
-=item resultset
-
-Shortcut for ->schema->resultset
-
-=item storage
-
-Provides an accessor for the connected schema's storage object.
-Used often for debugging and controlling transactions.
-
-=back
-
-=cut
-
-sub new {
- my $self = shift->NEXT::new(@_);
-
- my $class = ref($self);
- my $model_name = $class;
- $model_name =~ s/^[\w:]+::(?:Model|M):://;
-
- croak "->config->{schema_class} must be defined for this model"
- unless $self->{schema_class};
-
- my $schema_class = $self->{schema_class};
-
- $schema_class->require
- or croak "Cannot load schema class '$schema_class': $@";
-
- if( !$self->{connect_info} ) {
- if($schema_class->storage && $schema_class->storage->connect_info) {
- $self->{connect_info} = $schema_class->storage->connect_info;
- }
- else {
- croak "Either ->config->{connect_info} must be defined for $class"
- . " or $schema_class must have connect info defined on it"
- . "Here's what we got:\n"
- . Dumper($self);
- }
- }
-
- $self->composed_schema($schema_class->compose_namespace($class));
- $self->schema($self->composed_schema->clone);
-
- $self->schema->storage_type($self->{storage_type})
- if $self->{storage_type};
-
- # XXX This is temporary, until DBIx::Class::Storage::DBI supports the
- # same syntax and we switch our requisite to that version somewhere
- # down the line. This syntax is already committed into DBIx::Class
- # -current branch post-0.06.
- # At that time, this whole block can revert back to just being:
- # $self->schema->connection(@{$self->{connect_info}});
-
- my $connect_info = [ @{$self->{connect_info}} ];
- my ($on_connect_do, %sql_maker_opts);
- if($DBIx::Class::VERSION < 0.069) {
- my $used;
- my $last_info = $self->{connect_info}->[-1];
- if(ref $last_info eq 'HASH') {
- if($on_connect_do = $last_info->{on_connect_do}) {
- $used = 1;
- }
- for my $sql_maker_opt (qw/limit_dialect quote_char name_sep/) {
- if(my $opt_val = $last_info->{$sql_maker_opt}) {
- $used = 1;
- $sql_maker_opts{$sql_maker_opt} = $opt_val;
- }
- }
- pop(@$connect_info) if $used;
- }
- }
-
- $self->schema->connection(@$connect_info);
-
- if($DBIx::Class::VERSION < 0.069) {
- $self->schema->storage->on_connect_do($on_connect_do)
- if $on_connect_do;
- foreach my $sql_maker_opt (keys %sql_maker_opts) {
- $self->schema->storage->sql_maker->$sql_maker_opt(
- $sql_maker_opts{$sql_maker_opt}
- );
- }
- }
-
- # XXX end of compatibility block referenced above
-
- no strict 'refs';
- foreach my $moniker ($self->schema->sources) {
- my $classname = "${class}::$moniker";
- *{"${classname}::ACCEPT_CONTEXT"} = sub {
- shift;
- shift->model($model_name)->resultset($moniker);
- }
- }
-
- return $self;
-}
-
-sub clone { shift->composed_schema->clone(@_); }
-
-sub connect { shift->composed_schema->connect(@_); }
-
-sub storage { shift->schema->storage(@_); }
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 COPYRIGHT
-
-This program is free software, you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,374 @@
+package Catalyst::Model::DBIC::Schema;
+
+use strict;
+use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
+use NEXT;
+use UNIVERSAL::require;
+use Carp;
+use Data::Dumper;
+require DBIx::Class;
+
+our $VERSION = '0.16';
+
+__PACKAGE__->mk_classaccessor('composed_schema');
+__PACKAGE__->mk_accessors('schema');
+
+=head1 NAME
+
+Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
+
+=head1 SYNOPSIS
+
+Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
+
+=over
+
+=item 1.
+
+Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
+
+ package MyApp::Schema::FilmDB;
+ use base qw/DBIx::Class::Schema/;
+
+ __PACKAGE__->load_classes(qw/Actor Role/);
+
+=item 2.
+
+Create some classes for the tables in the database, for example an
+Actor in MyApp/Schema/FilmDB/Actor.pm:
+
+ package MyApp::Schema::FilmDB::Actor;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('actor');
+
+ ...
+
+and a Role in MyApp/Schema/Role.pm:
+
+ package MyApp::Schema::FilmDB::Role;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('role');
+
+ ...
+
+Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
+usable as a standalone module and you can test/run it without Catalyst.
+
+=item 3.
+
+To expose it to Catalyst as a model, you should create a DBIC Model in
+MyApp/Model/FilmDB.pm:
+
+ package MyApp::Model::FilmDB;
+ use base qw/Catalyst::Model::DBIC::Schema/;
+
+ __PACKAGE__->config(
+ schema_class => 'MyApp::Schema::FilmDB',
+ connect_info => [
+ "DBI:...",
+ "username",
+ "password",
+ {AutoCommit => 1}
+ ]
+ );
+
+See below for a full list of the possible config parameters.
+
+=back
+
+Now you have a working Model, accessing your separate DBIC Schema. Which can
+be used/accessed in the normal Catalyst manner, via $c->model():
+
+ my $actor = $c->model('FilmDB::Actor')->find(1);
+
+You can also use it to set up DBIC authentication with
+Authentication::Store::DBIC in MyApp.pm:
+
+ package MyApp;
+
+ use Catalyst qw/... Authentication::Store::DBIC/;
+
+ ...
+
+ __PACKAGE__->config->{authentication}{dbic} = {
+ user_class => 'FilmDB::Actor',
+ user_field => 'name',
+ password_field => 'password'
+ }
+
+C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
+parameter passed. To find out more about which methods can be called on a
+ResultSet, or how to add your own methods to it, please see the ResultSet
+documentation in the L<DBIx::Class> distribution.
+
+Some examples are given below:
+
+ # to access schema methods directly:
+ $c->model('FilmDB')->schema->source(...);
+
+ # to access the source object, resultset, and class:
+ $c->model('FilmDB')->source(...);
+ $c->model('FilmDB')->resultset(...);
+ $c->model('FilmDB')->class(...);
+
+ # For resultsets, there's an even quicker shortcut:
+ $c->model('FilmDB::Actor')
+ # is the same as $c->model('FilmDB')->resultset('Actor')
+
+ # To get the composed schema for making new connections:
+ my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
+
+ # Or the same thing via a convenience shortcut:
+ my $newconn = $c->model('FilmDB')->connect(...);
+
+ # or, if your schema works on different storage drivers:
+ my $newconn = $c->model('FilmDB')->composed_schema->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+ # and again, a convenience shortcut
+ my $newconn = $c->model('FilmDB')->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+=head1 DESCRIPTION
+
+This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
+the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
+information on generating these Models via Helper scripts.
+
+=head1 CONFIG PARAMETERS
+
+=over 4
+
+=item schema_class
+
+This is the classname of your L<DBIx::Class::Schema> Schema. It needs
+to be findable in C<@INC>, but it does not need to be inside the
+C<Catalyst::Model::> namespace. This parameter is required.
+
+=item 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).
+
+This is not required if C<schema_class> already has connection information
+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
+parameters are your dsn, username, password, and connect options hashref.
+
+If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
+C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
+C<quote_char>, or C<name_sep>, you can place these options into a hashref
+as the final element of the C<connect_info> arrayref. If in doubt, don't
+specify these options. You would know it if you needed them.
+
+Examples:
+
+ connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
+
+ connect_info => [
+ 'dbi:SQLite:dbname=foo.db',
+ {
+ on_connect_do => [
+ 'PRAGMA synchronous = OFF',
+ ],
+ }
+ ],
+
+ connect_info => [
+ 'dbi:Pg:dbname=mypgdb',
+ 'postgres',
+ '',
+ { AutoCommit => 0 },
+ {
+ on_connect_do => [
+ 'some SQL statement',
+ 'another SQL statement',
+ ],
+ }
+ ],
+
+=item storage_type
+
+Allows the use of a different C<storage_type> than what is set in your
+C<schema_class> (which in turn defaults to C<::DBI> if not set in current
+L<DBIx::Class>). Completely optional, and probably unnecessary for most
+people until other storage backends become available for L<DBIx::Class>.
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new
+
+Instantiates the Model based on the above-documented ->config parameters.
+The only required parameter is C<schema_class>. C<connect_info> is
+required in the case that C<schema_class> does not already have connection
+information defined for it.
+
+=item schema
+
+Accessor which returns the connected schema being used by the this model.
+There are direct shortcuts on the model class itself for
+schema->resultset, schema->source, and schema->class.
+
+=item composed_schema
+
+Accessor which returns the composed schema, which has no connection info,
+which was used in constructing the C<schema> above. Useful for creating
+new connections based on the same schema/model. There are direct shortcuts
+from the model object for composed_schema->clone and composed_schema->connect
+
+=item clone
+
+Shortcut for ->composed_schema->clone
+
+=item connect
+
+Shortcut for ->composed_schema->connect
+
+=item source
+
+Shortcut for ->schema->source
+
+=item class
+
+Shortcut for ->schema->class
+
+=item resultset
+
+Shortcut for ->schema->resultset
+
+=item storage
+
+Provides an accessor for the connected schema's storage object.
+Used often for debugging and controlling transactions.
+
+=back
+
+=cut
+
+sub new {
+ my $self = shift->NEXT::new(@_);
+
+ my $class = ref($self);
+ my $model_name = $class;
+ $model_name =~ s/^[\w:]+::(?:Model|M):://;
+
+ croak "->config->{schema_class} must be defined for this model"
+ unless $self->{schema_class};
+
+ my $schema_class = $self->{schema_class};
+
+ $schema_class->require
+ or croak "Cannot load schema class '$schema_class': $@";
+
+ if( !$self->{connect_info} ) {
+ if($schema_class->storage && $schema_class->storage->connect_info) {
+ $self->{connect_info} = $schema_class->storage->connect_info;
+ }
+ else {
+ croak "Either ->config->{connect_info} must be defined for $class"
+ . " or $schema_class must have connect info defined on it"
+ . "Here's what we got:\n"
+ . Dumper($self);
+ }
+ }
+
+ $self->composed_schema($schema_class->compose_namespace($class));
+ $self->schema($self->composed_schema->clone);
+
+ $self->schema->storage_type($self->{storage_type})
+ if $self->{storage_type};
+
+ # XXX This is temporary, until DBIx::Class::Storage::DBI supports the
+ # same syntax and we switch our requisite to that version somewhere
+ # down the line. This syntax is already committed into DBIx::Class
+ # -current branch post-0.06.
+ # At that time, this whole block can revert back to just being:
+ # $self->schema->connection(@{$self->{connect_info}});
+
+ my $connect_info = [ @{$self->{connect_info}} ];
+ my ($on_connect_do, %sql_maker_opts);
+ if($DBIx::Class::VERSION < 0.069) {
+ my $used;
+ my $last_info = $self->{connect_info}->[-1];
+ if(ref $last_info eq 'HASH') {
+ if($on_connect_do = $last_info->{on_connect_do}) {
+ $used = 1;
+ }
+ for my $sql_maker_opt (qw/limit_dialect quote_char name_sep/) {
+ if(my $opt_val = $last_info->{$sql_maker_opt}) {
+ $used = 1;
+ $sql_maker_opts{$sql_maker_opt} = $opt_val;
+ }
+ }
+ pop(@$connect_info) if $used;
+ }
+ }
+
+ $self->schema->connection(@$connect_info);
+
+ if($DBIx::Class::VERSION < 0.069) {
+ $self->schema->storage->on_connect_do($on_connect_do)
+ if $on_connect_do;
+ foreach my $sql_maker_opt (keys %sql_maker_opts) {
+ $self->schema->storage->sql_maker->$sql_maker_opt(
+ $sql_maker_opts{$sql_maker_opt}
+ );
+ }
+ }
+
+ # XXX end of compatibility block referenced above
+
+ no strict 'refs';
+ foreach my $moniker ($self->schema->sources) {
+ my $classname = "${class}::$moniker";
+ *{"${classname}::ACCEPT_CONTEXT"} = sub {
+ shift;
+ shift->model($model_name)->resultset($moniker);
+ }
+ }
+
+ return $self;
+}
+
+sub clone { shift->composed_schema->clone(@_); }
+
+sub connect { shift->composed_schema->connect(@_); }
+
+sub storage { shift->schema->storage(@_); }
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/t)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use strict;
-use Test::More tests => 2;
-
-BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
-BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use strict;
+use Test::More tests => 2;
+
+BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
+BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,8 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod 1.14";
-plan skip_all => 'Test::Pod 1.14 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_files_ok();
-
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,8 @@
+use Test::More;
+
+eval "use Test::Pod 1.14";
+plan skip_all => 'Test::Pod 1.14 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_files_ok();
+
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,7 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.04";
-plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_coverage_ok();
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,7 @@
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_coverage_ok();
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use Test::More;
-
-eval { require Test::Kwalitee; Test::Kwalitee->import() };
-
-plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use Test::More;
+
+eval { require Test::Kwalitee; Test::Kwalitee->import() };
+
+plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,46 +0,0 @@
-use strict;
-use Test::More;
-use FindBin;
-use File::Spec;
-use File::Find;
-
-plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
- unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
-
-# XXX this test needs a re-write to fully test the current set of capabilities...
-
-my $test_params = [
- [ 'TestSchema', 'DBIC::Schema', '' ],
- [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
-];
-
-plan tests => (2 * @$test_params);
-
-my $test_dir = $FindBin::Bin;
-my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
-my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
-my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
-my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
-my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
-
-chdir($test_dir);
-system("catalyst.pl TestApp");
-chdir($cat_dir);
-
-foreach my $tparam (@$test_params) {
- my ($model, $helper, $args) = @$tparam;
- system("$^X -I$blib_dir $creator model $model $helper $model $args");
- my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
- ok( -f $model_path, "$model_path is a file" );
- my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
- ok($compile_rv == 0, "perl -c $model_path");
-}
-
-chdir($test_dir);
-
-sub rm_rf {
- my $name = $File::Find::name;
- if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
- else { unlink $name or die "Cannot unlink $name: $!" }
-}
-finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.16/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,46 @@
+use strict;
+use Test::More;
+use FindBin;
+use File::Spec;
+use File::Find;
+
+plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
+ unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
+
+# XXX this test needs a re-write to fully test the current set of capabilities...
+
+my $test_params = [
+ [ 'TestSchema', 'DBIC::Schema', '' ],
+ [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
+];
+
+plan tests => (2 * @$test_params);
+
+my $test_dir = $FindBin::Bin;
+my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
+my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
+my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
+my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
+my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
+
+chdir($test_dir);
+system("catalyst.pl TestApp");
+chdir($cat_dir);
+
+foreach my $tparam (@$test_params) {
+ my ($model, $helper, $args) = @$tparam;
+ system("$^X -I$blib_dir $creator model $model $helper $model $args");
+ my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
+ ok( -f $model_path, "$model_path is a file" );
+ my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
+ ok($compile_rv == 0, "perl -c $model_path");
+}
+
+chdir($test_dir);
+
+sub rm_rf {
+ my $name = $File::Find::name;
+ if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
+ else { unlink $name or die "Cannot unlink $name: $!" }
+}
+finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01 (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,25 +0,0 @@
-use strict;
-use Module::Build;
-
-my %arguments = (
- license => 'perl',
- module_name => 'Catalyst::Model::DBIC::Schema',
- requires => {
- 'DBIx::Class' => 0.07000,
- 'Catalyst' => 5.64,
- 'UNIVERSAL::require' => 0.10,
- 'Class::Data::Accessor' => 0.02,
- 'Class::Accessor::Fast' => 0.22,
- },
- recommends => {
- 'Catalyst::Devel' => 1.0,
- 'DBIx::Class::Schema::Loader' => 0.03006,
- },
- build_requires => {
- 'Test::More' => 0.32,
- },
- create_makefile_pl => 'passthrough',
- create_readme => 1,
-);
-
-Module::Build->new(%arguments)->create_build_script;
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,25 @@
+use strict;
+use Module::Build;
+
+my %arguments = (
+ license => 'perl',
+ module_name => 'Catalyst::Model::DBIC::Schema',
+ requires => {
+ 'DBIx::Class' => 0.07000,
+ 'Catalyst' => 5.64,
+ 'UNIVERSAL::require' => 0.10,
+ 'Class::Data::Accessor' => 0.02,
+ 'Class::Accessor::Fast' => 0.22,
+ },
+ recommends => {
+ 'Catalyst::Devel' => 1.0,
+ 'DBIx::Class::Schema::Loader' => 0.03006,
+ },
+ build_requires => {
+ 'Test::More' => 0.32,
+ },
+ create_makefile_pl => 'passthrough',
+ create_readme => 1,
+);
+
+Module::Build->new(%arguments)->create_build_script;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,64 +0,0 @@
-Revision history for Perl extension Catalyst::Model::DBIC::Schema
-
-0.17_01 Thu Jul 27 01:06:13 UTC 2006
- - Updated for DBIC 0.07
-
-0.16 Thu Jul 6 13:28:45 UTC 2006
- - Bugfix for create=static and connect_info coderef snippets
- - Be more verbose when connection_info is not set.
-
-0.15 Tue Jun 6 01:33:57 UTC 2006
- - Fixed a serious bug in create=static usage
- - Re-arranged output generation so that the more likely
- failure to generate Schemas via create= will cause the
- helper to abort before generating the Model class itself
-
-0.14 Mon Jun 5 23:34:35 UTC 2006
- - Helpers merged, helper syntax changed
- - Everything updated for Schema::Loader 0.03001 support, including
- what amounts to using Loader in one-shot mode to generate
- a manual Schema with matching Model.
- - fixed stupid typo in docs
-
-0.13 Wed Apr 26 2006
- - noted support via mailing lists
-
-0.12 Tue Apr 25 2006
- - SYNOPSIS improved substantially to help newbies get started
-
-0.11 Sun Mar 26 17:22:31 UTC 2006
- - Removed on_connect_do config setting (it was only out
- in public for 4 days...).
- - Support for on_connect_do and sql_maker options as part
- of connect_info
-
-0.10 Wed Mar 22 07:06:02 UTC 2006
- - Added on_connect_do config setting
- - Added convenience method for ->schema->storage from paulm
-
-0.08 Tue Feb 28 00:04:16 UTC 2006
- - Bumped D::C::Schema::Loader recommendation to 0.02003
- (should have been done last release)
- - Removed the ->require stuff added in 0.07, it doesn't
- do what it is supposed to do. For now, users can layer
- at the Schema::Loader level rather than at Model.
-
-0.07 Sun Feb 19 21:50:18 UTC 2006
- - bugfix for ::SchemaLoader::Foo password argument, and
- switch to connect_info argument of new Schema::Loader
- - Added ->require for source classes, so that you can
- layer in lib/MyApp/Model/Foo/Bar.pm on top of the
- generated MyApp::Model::Foo::Bar.
-
-0.06 Sat Feb 18 19:05:17 UTC 2006
- - Fix simple pod-related bug introduced in last rev
- - Added optional test that uses the helpers
-
-0.05 Fri Feb 17 20:52:21 UTC 2006
- - Stop showing the template pod in pod tools and cpan,
- per Gavin's email.
- - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
- subtle issues under mod_perl engines.
-
-0.04 Mon Feb 13 04:22:49 UTC 2006
- - First public release
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,64 @@
+Revision history for Perl extension Catalyst::Model::DBIC::Schema
+
+0.17_01 Thu Jul 27 01:06:13 UTC 2006
+ - Updated for DBIC 0.07
+
+0.16 Thu Jul 6 13:28:45 UTC 2006
+ - Bugfix for create=static and connect_info coderef snippets
+ - Be more verbose when connection_info is not set.
+
+0.15 Tue Jun 6 01:33:57 UTC 2006
+ - Fixed a serious bug in create=static usage
+ - Re-arranged output generation so that the more likely
+ failure to generate Schemas via create= will cause the
+ helper to abort before generating the Model class itself
+
+0.14 Mon Jun 5 23:34:35 UTC 2006
+ - Helpers merged, helper syntax changed
+ - Everything updated for Schema::Loader 0.03001 support, including
+ what amounts to using Loader in one-shot mode to generate
+ a manual Schema with matching Model.
+ - fixed stupid typo in docs
+
+0.13 Wed Apr 26 2006
+ - noted support via mailing lists
+
+0.12 Tue Apr 25 2006
+ - SYNOPSIS improved substantially to help newbies get started
+
+0.11 Sun Mar 26 17:22:31 UTC 2006
+ - Removed on_connect_do config setting (it was only out
+ in public for 4 days...).
+ - Support for on_connect_do and sql_maker options as part
+ of connect_info
+
+0.10 Wed Mar 22 07:06:02 UTC 2006
+ - Added on_connect_do config setting
+ - Added convenience method for ->schema->storage from paulm
+
+0.08 Tue Feb 28 00:04:16 UTC 2006
+ - Bumped D::C::Schema::Loader recommendation to 0.02003
+ (should have been done last release)
+ - Removed the ->require stuff added in 0.07, it doesn't
+ do what it is supposed to do. For now, users can layer
+ at the Schema::Loader level rather than at Model.
+
+0.07 Sun Feb 19 21:50:18 UTC 2006
+ - bugfix for ::SchemaLoader::Foo password argument, and
+ switch to connect_info argument of new Schema::Loader
+ - Added ->require for source classes, so that you can
+ layer in lib/MyApp/Model/Foo/Bar.pm on top of the
+ generated MyApp::Model::Foo::Bar.
+
+0.06 Sat Feb 18 19:05:17 UTC 2006
+ - Fix simple pod-related bug introduced in last rev
+ - Added optional test that uses the helpers
+
+0.05 Fri Feb 17 20:52:21 UTC 2006
+ - Stop showing the template pod in pod tools and cpan,
+ per Gavin's email.
+ - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
+ subtle issues under mod_perl engines.
+
+0.04 Mon Feb 13 04:22:49 UTC 2006
+ - First public release
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,28 +0,0 @@
-# Avoid version control files.
-\bRCS\b
-\bCVS\b
-,v$
-\B\.svn\b
-
-# Avoid Makemaker generated and utility files.
-\bMakefile$
-\bblib
-\bMakeMaker-\d
-\bpm_to_blib$
-\bblibdirs$
-^MANIFEST\.SKIP$
-
-# Avoid Module::Build generated and utility files.
-\bBuild$
-\b_build
-
-# Avoid temp and backup files.
-~$
-\.tmp$
-\.old$
-\.bak$
-\#$
-\b\.#
-
-# avoid dist files
-\.tar\.gz$
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,28 @@
+# Avoid version control files.
+\bRCS\b
+\bCVS\b
+,v$
+\B\.svn\b
+
+# Avoid Makemaker generated and utility files.
+\bMakefile$
+\bblib
+\bMakeMaker-\d
+\bpm_to_blib$
+\bblibdirs$
+^MANIFEST\.SKIP$
+
+# Avoid Module::Build generated and utility files.
+\bBuild$
+\b_build
+
+# Avoid temp and backup files.
+~$
+\.tmp$
+\.old$
+\.bak$
+\#$
+\b\.#
+
+# avoid dist files
+\.tar\.gz$
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,31 +0,0 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.03
-
- unless (eval "use Module::Build::Compat 0.02; 1" ) {
- print "This module requires Module::Build to install itself.\n";
-
- require ExtUtils::MakeMaker;
- my $yn = ExtUtils::MakeMaker::prompt
- (' Install Module::Build now from CPAN?', 'y');
-
- unless ($yn =~ /^y/i) {
- die " *** Cannot install without Module::Build. Exiting ...\n";
- }
-
- require Cwd;
- require File::Spec;
- require CPAN;
-
- # Save this 'cause CPAN will chdir all over the place.
- my $cwd = Cwd::cwd();
-
- CPAN::Shell->install('Module::Build::Compat');
- CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
- or die "Couldn't install Module::Build, giving up.\n";
-
- chdir $cwd or die "Cannot chdir() back to $cwd: $!";
- }
- eval "use Module::Build::Compat 0.02; 1" or die $@;
-
- Module::Build::Compat->run_build_pl(args => \@ARGV);
- require Module::Build;
- Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,31 @@
+# Note: this file was auto-generated by Module::Build::Compat version 0.03
+
+ unless (eval "use Module::Build::Compat 0.02; 1" ) {
+ print "This module requires Module::Build to install itself.\n";
+
+ require ExtUtils::MakeMaker;
+ my $yn = ExtUtils::MakeMaker::prompt
+ (' Install Module::Build now from CPAN?', 'y');
+
+ unless ($yn =~ /^y/i) {
+ die " *** Cannot install without Module::Build. Exiting ...\n";
+ }
+
+ require Cwd;
+ require File::Spec;
+ require CPAN;
+
+ # Save this 'cause CPAN will chdir all over the place.
+ my $cwd = Cwd::cwd();
+
+ CPAN::Shell->install('Module::Build::Compat');
+ CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
+ or die "Couldn't install Module::Build, giving up.\n";
+
+ chdir $cwd or die "Cannot chdir() back to $cwd: $!";
+ }
+ eval "use Module::Build::Compat 0.02; 1" or die $@;
+
+ Module::Build::Compat->run_build_pl(args => \@ARGV);
+ require Module::Build;
+ Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib)
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst)
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper)
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,230 +0,0 @@
-package Catalyst::Helper::Model::DBIC::Schema;
-
-use strict;
-use warnings;
-use Carp;
-use UNIVERSAL::require;
-
-=head1 NAME
-
-Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
-
-=head1 SYNOPSIS
-
- script/create.pl model ModelName DBIC::Schema My::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
-
-=head1 DESCRIPTION
-
-Helper for the DBIC Schema Models.
-
-=head2 Arguments:
-
- ModelName is the short name for the Model class being generated
-
- My::SchemaClass is the fully qualified classname of your Schema,
- which might or might not yet exist.
-
- create=dynamic instructs this Helper to generate the named Schema
- class for you, basing it on L<DBIx::Class::Schema::Loader> (which
- means the table information will always be dynamically loaded at
- runtime from the database).
-
- create=static instructs this Helper to generate the named Schema
- class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
- mode to create a standard, manually-defined L<DBIx::Class::Schema>
- setup, based on what the Loader sees in your database at this moment.
- A Schema/Model pair generated this way will not require
- L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
- adapt itself to changes in your database structure. You can edit
- the generated classes by hand to refine them.
-
- connect_info arguments are the same as what DBIx::Class::Schema::connect
- expects, and are storage_type-specific. For DBI-based storage, these
- arguments are the dsn, username, password, and connect options,
- respectively. These are optional for existing Schemas, but required
- if you use either of the C<create=> options.
-
-Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
-
-=head1 TYPICAL EXAMPLES
-
- # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
- # and a Model which references it:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=static dbi:mysql:foodb myuname mypass
-
- # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
- # and a Model which references it:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
-
- # Reference an existing Schema of any kind, and provide some connection information for ->config:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass dbi:mysql:foodb myuname mypass
-
- # Same, but don't supply connect information yet (you'll need to do this
- # in your app config, or [not recommended] in the schema itself).
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
-
-=head2 METHODS
-
-=head3 mk_compclass
-
-=cut
-
-sub mk_compclass {
- my ( $self, $helper, $schema_class, @connect_info) = @_;
-
- $helper->{schema_class} = $schema_class
- or croak "Must supply schema class name";
-
- my $create = '';
- if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
- $create = $1;
- shift @connect_info;
- }
-
- if(@connect_info) {
- $helper->{setup_connect_info} = 1;
- my @helper_connect_info = @connect_info;
- for(@helper_connect_info) {
- $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
- }
- $helper->{connect_info} = \@helper_connect_info;
- }
-
- if($create eq 'dynamic') {
- my @schema_parts = split(/\:\:/, $helper->{schema_class});
- my $schema_file_part = pop @schema_parts;
-
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
- my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
-
- $helper->mk_dir($schema_dir);
- $helper->render_file( 'schemaclass', $schema_file );
- }
- elsif($create eq 'static') {
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
- DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
- or croak "Cannot load DBIx::Class::Schema::Loader: $@";
-
- my @loader_connect_info = @connect_info;
- my $num = 6; # argument number on the commandline for "dbi:..."
- for(@loader_connect_info) {
- if(/^\s*[[{]/) {
- $_ = eval "$_";
- croak "Perl syntax error in commandline argument $num: $@" if $@;
- }
- $num++;
- }
-
- make_schema_at(
- $schema_class,
- { relationships => 1 },
- \@loader_connect_info,
- );
- }
-
- my $file = $helper->{file};
- $helper->render_file( 'compclass', $file );
-}
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__DATA__
-
-=begin pod_to_ignore
-
-__schemaclass__
-package [% schema_class %];
-
-use strict;
-use base qw/DBIx::Class::Schema::Loader/;
-
-__PACKAGE__->loader_options(
- relationships => 1,
- # debug => 1,
-);
-
-=head1 NAME
-
-[% schema_class %] - DBIx::Class::Schema::Loader class
-
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__compclass__
-package [% class %];
-
-use strict;
-use base 'Catalyst::Model::DBIC::Schema';
-
-__PACKAGE__->config(
- schema_class => '[% schema_class %]',
- [% IF setup_connect_info %]connect_info => [
- [% FOREACH arg = connect_info %][% arg %],
- [% END %]
- ],[% END %]
-);
-
-=head1 NAME
-
-[% class %] - Catalyst DBIC Schema Model
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,230 @@
+package Catalyst::Helper::Model::DBIC::Schema;
+
+use strict;
+use warnings;
+use Carp;
+use UNIVERSAL::require;
+
+=head1 NAME
+
+Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
+
+=head1 SYNOPSIS
+
+ script/create.pl model ModelName DBIC::Schema My::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
+
+=head1 DESCRIPTION
+
+Helper for the DBIC Schema Models.
+
+=head2 Arguments:
+
+ ModelName is the short name for the Model class being generated
+
+ My::SchemaClass is the fully qualified classname of your Schema,
+ which might or might not yet exist.
+
+ create=dynamic instructs this Helper to generate the named Schema
+ class for you, basing it on L<DBIx::Class::Schema::Loader> (which
+ means the table information will always be dynamically loaded at
+ runtime from the database).
+
+ create=static instructs this Helper to generate the named Schema
+ class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
+ mode to create a standard, manually-defined L<DBIx::Class::Schema>
+ setup, based on what the Loader sees in your database at this moment.
+ A Schema/Model pair generated this way will not require
+ L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
+ adapt itself to changes in your database structure. You can edit
+ the generated classes by hand to refine them.
+
+ connect_info arguments are the same as what DBIx::Class::Schema::connect
+ expects, and are storage_type-specific. For DBI-based storage, these
+ arguments are the dsn, username, password, and connect options,
+ respectively. These are optional for existing Schemas, but required
+ if you use either of the C<create=> options.
+
+Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
+
+=head1 TYPICAL EXAMPLES
+
+ # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=static dbi:mysql:foodb myuname mypass
+
+ # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
+
+ # Reference an existing Schema of any kind, and provide some connection information for ->config:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass dbi:mysql:foodb myuname mypass
+
+ # Same, but don't supply connect information yet (you'll need to do this
+ # in your app config, or [not recommended] in the schema itself).
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
+
+=head2 METHODS
+
+=head3 mk_compclass
+
+=cut
+
+sub mk_compclass {
+ my ( $self, $helper, $schema_class, @connect_info) = @_;
+
+ $helper->{schema_class} = $schema_class
+ or croak "Must supply schema class name";
+
+ my $create = '';
+ if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
+ $create = $1;
+ shift @connect_info;
+ }
+
+ if(@connect_info) {
+ $helper->{setup_connect_info} = 1;
+ my @helper_connect_info = @connect_info;
+ for(@helper_connect_info) {
+ $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
+ }
+ $helper->{connect_info} = \@helper_connect_info;
+ }
+
+ if($create eq 'dynamic') {
+ my @schema_parts = split(/\:\:/, $helper->{schema_class});
+ my $schema_file_part = pop @schema_parts;
+
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
+ my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
+
+ $helper->mk_dir($schema_dir);
+ $helper->render_file( 'schemaclass', $schema_file );
+ }
+ elsif($create eq 'static') {
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
+ DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
+ or croak "Cannot load DBIx::Class::Schema::Loader: $@";
+
+ my @loader_connect_info = @connect_info;
+ my $num = 6; # argument number on the commandline for "dbi:..."
+ for(@loader_connect_info) {
+ if(/^\s*[[{]/) {
+ $_ = eval "$_";
+ croak "Perl syntax error in commandline argument $num: $@" if $@;
+ }
+ $num++;
+ }
+
+ make_schema_at(
+ $schema_class,
+ { relationships => 1 },
+ \@loader_connect_info,
+ );
+ }
+
+ my $file = $helper->{file};
+ $helper->render_file( 'compclass', $file );
+}
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__DATA__
+
+=begin pod_to_ignore
+
+__schemaclass__
+package [% schema_class %];
+
+use strict;
+use base qw/DBIx::Class::Schema::Loader/;
+
+__PACKAGE__->loader_options(
+ relationships => 1,
+ # debug => 1,
+);
+
+=head1 NAME
+
+[% schema_class %] - DBIx::Class::Schema::Loader class
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__compclass__
+package [% class %];
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+ schema_class => '[% schema_class %]',
+ [% IF setup_connect_info %]connect_info => [
+ [% FOREACH arg = connect_info %][% arg %],
+ [% END %]
+ ],[% END %]
+);
+
+=head1 NAME
+
+[% class %] - Catalyst DBIC Schema Model
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,336 +0,0 @@
-package Catalyst::Model::DBIC::Schema;
-
-use strict;
-use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
-use NEXT;
-use UNIVERSAL::require;
-use Carp;
-use Data::Dumper;
-require DBIx::Class;
-
-our $VERSION = '0.17_01';
-
-__PACKAGE__->mk_classaccessor('composed_schema');
-__PACKAGE__->mk_accessors('schema');
-
-=head1 NAME
-
-Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
-
-=head1 SYNOPSIS
-
-Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
-
-=over
-
-=item 1.
-
-Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
-
- package MyApp::Schema::FilmDB;
- use base qw/DBIx::Class::Schema/;
-
- __PACKAGE__->load_classes(qw/Actor Role/);
-
-=item 2.
-
-Create some classes for the tables in the database, for example an
-Actor in MyApp/Schema/FilmDB/Actor.pm:
-
- package MyApp::Schema::FilmDB::Actor;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('actor');
-
- ...
-
-and a Role in MyApp/Schema/Role.pm:
-
- package MyApp::Schema::FilmDB::Role;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('role');
-
- ...
-
-Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
-usable as a standalone module and you can test/run it without Catalyst.
-
-=item 3.
-
-To expose it to Catalyst as a model, you should create a DBIC Model in
-MyApp/Model/FilmDB.pm:
-
- package MyApp::Model::FilmDB;
- use base qw/Catalyst::Model::DBIC::Schema/;
-
- __PACKAGE__->config(
- schema_class => 'MyApp::Schema::FilmDB',
- connect_info => [
- "DBI:...",
- "username",
- "password",
- {AutoCommit => 1}
- ]
- );
-
-See below for a full list of the possible config parameters.
-
-=back
-
-Now you have a working Model, accessing your separate DBIC Schema. Which can
-be used/accessed in the normal Catalyst manner, via $c->model():
-
- my $actor = $c->model('FilmDB::Actor')->find(1);
-
-You can also use it to set up DBIC authentication with
-Authentication::Store::DBIC in MyApp.pm:
-
- package MyApp;
-
- use Catalyst qw/... Authentication::Store::DBIC/;
-
- ...
-
- __PACKAGE__->config->{authentication}{dbic} = {
- user_class => 'FilmDB::Actor',
- user_field => 'name',
- password_field => 'password'
- }
-
-C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
-parameter passed. To find out more about which methods can be called on a
-ResultSet, or how to add your own methods to it, please see the ResultSet
-documentation in the L<DBIx::Class> distribution.
-
-Some examples are given below:
-
- # to access schema methods directly:
- $c->model('FilmDB')->schema->source(...);
-
- # to access the source object, resultset, and class:
- $c->model('FilmDB')->source(...);
- $c->model('FilmDB')->resultset(...);
- $c->model('FilmDB')->class(...);
-
- # For resultsets, there's an even quicker shortcut:
- $c->model('FilmDB::Actor')
- # is the same as $c->model('FilmDB')->resultset('Actor')
-
- # To get the composed schema for making new connections:
- my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
-
- # Or the same thing via a convenience shortcut:
- my $newconn = $c->model('FilmDB')->connect(...);
-
- # or, if your schema works on different storage drivers:
- my $newconn = $c->model('FilmDB')->composed_schema->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
- # and again, a convenience shortcut
- my $newconn = $c->model('FilmDB')->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
-=head1 DESCRIPTION
-
-This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
-the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
-information on generating these Models via Helper scripts.
-
-=head1 CONFIG PARAMETERS
-
-=over 4
-
-=item schema_class
-
-This is the classname of your L<DBIx::Class::Schema> Schema. It needs
-to be findable in C<@INC>, but it does not need to be inside the
-C<Catalyst::Model::> namespace. This parameter is required.
-
-=item 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).
-
-This is not required if C<schema_class> already has connection information
-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
-parameters are your dsn, username, password, and connect options hashref.
-
-If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
-C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
-C<quote_char>, or C<name_sep>, you can place these options into a hashref
-as the final element of the C<connect_info> arrayref. If in doubt, don't
-specify these options. You would know it if you needed them.
-
-Examples:
-
- connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
-
- connect_info => [
- 'dbi:SQLite:dbname=foo.db',
- {
- on_connect_do => [
- 'PRAGMA synchronous = OFF',
- ],
- }
- ],
-
- connect_info => [
- 'dbi:Pg:dbname=mypgdb',
- 'postgres',
- '',
- { AutoCommit => 0 },
- {
- on_connect_do => [
- 'some SQL statement',
- 'another SQL statement',
- ],
- }
- ],
-
-=item storage_type
-
-Allows the use of a different C<storage_type> than what is set in your
-C<schema_class> (which in turn defaults to C<::DBI> if not set in current
-L<DBIx::Class>). Completely optional, and probably unnecessary for most
-people until other storage backends become available for L<DBIx::Class>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item new
-
-Instantiates the Model based on the above-documented ->config parameters.
-The only required parameter is C<schema_class>. C<connect_info> is
-required in the case that C<schema_class> does not already have connection
-information defined for it.
-
-=item schema
-
-Accessor which returns the connected schema being used by the this model.
-There are direct shortcuts on the model class itself for
-schema->resultset, schema->source, and schema->class.
-
-=item composed_schema
-
-Accessor which returns the composed schema, which has no connection info,
-which was used in constructing the C<schema> above. Useful for creating
-new connections based on the same schema/model. There are direct shortcuts
-from the model object for composed_schema->clone and composed_schema->connect
-
-=item clone
-
-Shortcut for ->composed_schema->clone
-
-=item connect
-
-Shortcut for ->composed_schema->connect
-
-=item source
-
-Shortcut for ->schema->source
-
-=item class
-
-Shortcut for ->schema->class
-
-=item resultset
-
-Shortcut for ->schema->resultset
-
-=item storage
-
-Provides an accessor for the connected schema's storage object.
-Used often for debugging and controlling transactions.
-
-=back
-
-=cut
-
-sub new {
- my $self = shift->NEXT::new(@_);
-
- my $class = ref($self);
- my $model_name = $class;
- $model_name =~ s/^[\w:]+::(?:Model|M):://;
-
- croak "->config->{schema_class} must be defined for this model"
- unless $self->{schema_class};
-
- my $schema_class = $self->{schema_class};
-
- $schema_class->require
- or croak "Cannot load schema class '$schema_class': $@";
-
- if( !$self->{connect_info} ) {
- if($schema_class->storage && $schema_class->storage->connect_info) {
- $self->{connect_info} = $schema_class->storage->connect_info;
- }
- else {
- croak "Either ->config->{connect_info} must be defined for $class"
- . " or $schema_class must have connect info defined on it"
- . "Here's what we got:\n"
- . Dumper($self);
- }
- }
-
- $self->composed_schema($schema_class->compose_namespace($class));
- $self->schema($self->composed_schema->clone);
-
- $self->schema->storage_type($self->{storage_type})
- if $self->{storage_type};
-
- $self->schema->connection(@{$self->{connect_info}});
-
- no strict 'refs';
- foreach my $moniker ($self->schema->sources) {
- my $classname = "${class}::$moniker";
- *{"${classname}::ACCEPT_CONTEXT"} = sub {
- shift;
- shift->model($model_name)->resultset($moniker);
- }
- }
-
- return $self;
-}
-
-sub clone { shift->composed_schema->clone(@_); }
-
-sub connect { shift->composed_schema->connect(@_); }
-
-sub storage { shift->schema->storage(@_); }
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 COPYRIGHT
-
-This program is free software, you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,336 @@
+package Catalyst::Model::DBIC::Schema;
+
+use strict;
+use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
+use NEXT;
+use UNIVERSAL::require;
+use Carp;
+use Data::Dumper;
+require DBIx::Class;
+
+our $VERSION = '0.17_01';
+
+__PACKAGE__->mk_classaccessor('composed_schema');
+__PACKAGE__->mk_accessors('schema');
+
+=head1 NAME
+
+Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
+
+=head1 SYNOPSIS
+
+Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
+
+=over
+
+=item 1.
+
+Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
+
+ package MyApp::Schema::FilmDB;
+ use base qw/DBIx::Class::Schema/;
+
+ __PACKAGE__->load_classes(qw/Actor Role/);
+
+=item 2.
+
+Create some classes for the tables in the database, for example an
+Actor in MyApp/Schema/FilmDB/Actor.pm:
+
+ package MyApp::Schema::FilmDB::Actor;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('actor');
+
+ ...
+
+and a Role in MyApp/Schema/Role.pm:
+
+ package MyApp::Schema::FilmDB::Role;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('role');
+
+ ...
+
+Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
+usable as a standalone module and you can test/run it without Catalyst.
+
+=item 3.
+
+To expose it to Catalyst as a model, you should create a DBIC Model in
+MyApp/Model/FilmDB.pm:
+
+ package MyApp::Model::FilmDB;
+ use base qw/Catalyst::Model::DBIC::Schema/;
+
+ __PACKAGE__->config(
+ schema_class => 'MyApp::Schema::FilmDB',
+ connect_info => [
+ "DBI:...",
+ "username",
+ "password",
+ {AutoCommit => 1}
+ ]
+ );
+
+See below for a full list of the possible config parameters.
+
+=back
+
+Now you have a working Model, accessing your separate DBIC Schema. Which can
+be used/accessed in the normal Catalyst manner, via $c->model():
+
+ my $actor = $c->model('FilmDB::Actor')->find(1);
+
+You can also use it to set up DBIC authentication with
+Authentication::Store::DBIC in MyApp.pm:
+
+ package MyApp;
+
+ use Catalyst qw/... Authentication::Store::DBIC/;
+
+ ...
+
+ __PACKAGE__->config->{authentication}{dbic} = {
+ user_class => 'FilmDB::Actor',
+ user_field => 'name',
+ password_field => 'password'
+ }
+
+C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
+parameter passed. To find out more about which methods can be called on a
+ResultSet, or how to add your own methods to it, please see the ResultSet
+documentation in the L<DBIx::Class> distribution.
+
+Some examples are given below:
+
+ # to access schema methods directly:
+ $c->model('FilmDB')->schema->source(...);
+
+ # to access the source object, resultset, and class:
+ $c->model('FilmDB')->source(...);
+ $c->model('FilmDB')->resultset(...);
+ $c->model('FilmDB')->class(...);
+
+ # For resultsets, there's an even quicker shortcut:
+ $c->model('FilmDB::Actor')
+ # is the same as $c->model('FilmDB')->resultset('Actor')
+
+ # To get the composed schema for making new connections:
+ my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
+
+ # Or the same thing via a convenience shortcut:
+ my $newconn = $c->model('FilmDB')->connect(...);
+
+ # or, if your schema works on different storage drivers:
+ my $newconn = $c->model('FilmDB')->composed_schema->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+ # and again, a convenience shortcut
+ my $newconn = $c->model('FilmDB')->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+=head1 DESCRIPTION
+
+This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
+the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
+information on generating these Models via Helper scripts.
+
+=head1 CONFIG PARAMETERS
+
+=over 4
+
+=item schema_class
+
+This is the classname of your L<DBIx::Class::Schema> Schema. It needs
+to be findable in C<@INC>, but it does not need to be inside the
+C<Catalyst::Model::> namespace. This parameter is required.
+
+=item 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).
+
+This is not required if C<schema_class> already has connection information
+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
+parameters are your dsn, username, password, and connect options hashref.
+
+If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
+C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
+C<quote_char>, or C<name_sep>, you can place these options into a hashref
+as the final element of the C<connect_info> arrayref. If in doubt, don't
+specify these options. You would know it if you needed them.
+
+Examples:
+
+ connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
+
+ connect_info => [
+ 'dbi:SQLite:dbname=foo.db',
+ {
+ on_connect_do => [
+ 'PRAGMA synchronous = OFF',
+ ],
+ }
+ ],
+
+ connect_info => [
+ 'dbi:Pg:dbname=mypgdb',
+ 'postgres',
+ '',
+ { AutoCommit => 0 },
+ {
+ on_connect_do => [
+ 'some SQL statement',
+ 'another SQL statement',
+ ],
+ }
+ ],
+
+=item storage_type
+
+Allows the use of a different C<storage_type> than what is set in your
+C<schema_class> (which in turn defaults to C<::DBI> if not set in current
+L<DBIx::Class>). Completely optional, and probably unnecessary for most
+people until other storage backends become available for L<DBIx::Class>.
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new
+
+Instantiates the Model based on the above-documented ->config parameters.
+The only required parameter is C<schema_class>. C<connect_info> is
+required in the case that C<schema_class> does not already have connection
+information defined for it.
+
+=item schema
+
+Accessor which returns the connected schema being used by the this model.
+There are direct shortcuts on the model class itself for
+schema->resultset, schema->source, and schema->class.
+
+=item composed_schema
+
+Accessor which returns the composed schema, which has no connection info,
+which was used in constructing the C<schema> above. Useful for creating
+new connections based on the same schema/model. There are direct shortcuts
+from the model object for composed_schema->clone and composed_schema->connect
+
+=item clone
+
+Shortcut for ->composed_schema->clone
+
+=item connect
+
+Shortcut for ->composed_schema->connect
+
+=item source
+
+Shortcut for ->schema->source
+
+=item class
+
+Shortcut for ->schema->class
+
+=item resultset
+
+Shortcut for ->schema->resultset
+
+=item storage
+
+Provides an accessor for the connected schema's storage object.
+Used often for debugging and controlling transactions.
+
+=back
+
+=cut
+
+sub new {
+ my $self = shift->NEXT::new(@_);
+
+ my $class = ref($self);
+ my $model_name = $class;
+ $model_name =~ s/^[\w:]+::(?:Model|M):://;
+
+ croak "->config->{schema_class} must be defined for this model"
+ unless $self->{schema_class};
+
+ my $schema_class = $self->{schema_class};
+
+ $schema_class->require
+ or croak "Cannot load schema class '$schema_class': $@";
+
+ if( !$self->{connect_info} ) {
+ if($schema_class->storage && $schema_class->storage->connect_info) {
+ $self->{connect_info} = $schema_class->storage->connect_info;
+ }
+ else {
+ croak "Either ->config->{connect_info} must be defined for $class"
+ . " or $schema_class must have connect info defined on it"
+ . "Here's what we got:\n"
+ . Dumper($self);
+ }
+ }
+
+ $self->composed_schema($schema_class->compose_namespace($class));
+ $self->schema($self->composed_schema->clone);
+
+ $self->schema->storage_type($self->{storage_type})
+ if $self->{storage_type};
+
+ $self->schema->connection(@{$self->{connect_info}});
+
+ no strict 'refs';
+ foreach my $moniker ($self->schema->sources) {
+ my $classname = "${class}::$moniker";
+ *{"${classname}::ACCEPT_CONTEXT"} = sub {
+ shift;
+ shift->model($model_name)->resultset($moniker);
+ }
+ }
+
+ return $self;
+}
+
+sub clone { shift->composed_schema->clone(@_); }
+
+sub connect { shift->composed_schema->connect(@_); }
+
+sub storage { shift->schema->storage(@_); }
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/t)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use strict;
-use Test::More tests => 2;
-
-BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
-BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use strict;
+use Test::More tests => 2;
+
+BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
+BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,8 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod 1.14";
-plan skip_all => 'Test::Pod 1.14 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_files_ok();
-
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,8 @@
+use Test::More;
+
+eval "use Test::Pod 1.14";
+plan skip_all => 'Test::Pod 1.14 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_files_ok();
+
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,7 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.04";
-plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_coverage_ok();
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,7 @@
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_coverage_ok();
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use Test::More;
-
-eval { require Test::Kwalitee; Test::Kwalitee->import() };
-
-plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use Test::More;
+
+eval { require Test::Kwalitee; Test::Kwalitee->import() };
+
+plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,46 +0,0 @@
-use strict;
-use Test::More;
-use FindBin;
-use File::Spec;
-use File::Find;
-
-plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
- unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
-
-# XXX this test needs a re-write to fully test the current set of capabilities...
-
-my $test_params = [
- [ 'TestSchema', 'DBIC::Schema', '' ],
- [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
-];
-
-plan tests => (2 * @$test_params);
-
-my $test_dir = $FindBin::Bin;
-my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
-my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
-my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
-my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
-my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
-
-chdir($test_dir);
-system("catalyst.pl TestApp");
-chdir($cat_dir);
-
-foreach my $tparam (@$test_params) {
- my ($model, $helper, $args) = @$tparam;
- system("$^X -I$blib_dir $creator model $model $helper $model $args");
- my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
- ok( -f $model_path, "$model_path is a file" );
- my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
- ok($compile_rv == 0, "perl -c $model_path");
-}
-
-chdir($test_dir);
-
-sub rm_rf {
- my $name = $File::Find::name;
- if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
- else { unlink $name or die "Cannot unlink $name: $!" }
-}
-finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.17_01/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,46 @@
+use strict;
+use Test::More;
+use FindBin;
+use File::Spec;
+use File::Find;
+
+plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
+ unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
+
+# XXX this test needs a re-write to fully test the current set of capabilities...
+
+my $test_params = [
+ [ 'TestSchema', 'DBIC::Schema', '' ],
+ [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
+];
+
+plan tests => (2 * @$test_params);
+
+my $test_dir = $FindBin::Bin;
+my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
+my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
+my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
+my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
+my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
+
+chdir($test_dir);
+system("catalyst.pl TestApp");
+chdir($cat_dir);
+
+foreach my $tparam (@$test_params) {
+ my ($model, $helper, $args) = @$tparam;
+ system("$^X -I$blib_dir $creator model $model $helper $model $args");
+ my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
+ ok( -f $model_path, "$model_path is a file" );
+ my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
+ ok($compile_rv == 0, "perl -c $model_path");
+}
+
+chdir($test_dir);
+
+sub rm_rf {
+ my $name = $File::Find::name;
+ if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
+ else { unlink $name or die "Cannot unlink $name: $!" }
+}
+finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.18 (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,25 +0,0 @@
-use strict;
-use Module::Build;
-
-my %arguments = (
- license => 'perl',
- module_name => 'Catalyst::Model::DBIC::Schema',
- requires => {
- 'DBIx::Class' => 0.07000,
- 'Catalyst' => 5.64,
- 'UNIVERSAL::require' => 0.10,
- 'Class::Data::Accessor' => 0.02,
- 'Class::Accessor::Fast' => 0.22,
- },
- recommends => {
- 'Catalyst::Devel' => 1.0,
- 'DBIx::Class::Schema::Loader' => 0.03006,
- },
- build_requires => {
- 'Test::More' => 0.32,
- },
- create_makefile_pl => 'passthrough',
- create_readme => 1,
-);
-
-Module::Build->new(%arguments)->create_build_script;
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/Build.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,25 @@
+use strict;
+use Module::Build;
+
+my %arguments = (
+ license => 'perl',
+ module_name => 'Catalyst::Model::DBIC::Schema',
+ requires => {
+ 'DBIx::Class' => 0.07000,
+ 'Catalyst' => 5.64,
+ 'UNIVERSAL::require' => 0.10,
+ 'Class::Data::Accessor' => 0.02,
+ 'Class::Accessor::Fast' => 0.22,
+ },
+ recommends => {
+ 'Catalyst::Devel' => 1.0,
+ 'DBIx::Class::Schema::Loader' => 0.03006,
+ },
+ build_requires => {
+ 'Test::More' => 0.32,
+ },
+ create_makefile_pl => 'passthrough',
+ create_readme => 1,
+);
+
+Module::Build->new(%arguments)->create_build_script;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/Changes
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/Changes 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,67 +0,0 @@
-Revision history for Perl extension Catalyst::Model::DBIC::Schema
-
-0.18 Tue Aug 8 04:34:42 UTC 2006
- - Version bump for public release, no functional change
-
-0.17_01 Thu Jul 27 01:06:13 UTC 2006
- - Updated for DBIC 0.07
-
-0.16 Thu Jul 6 13:28:45 UTC 2006
- - Bugfix for create=static and connect_info coderef snippets
- - Be more verbose when connection_info is not set.
-
-0.15 Tue Jun 6 01:33:57 UTC 2006
- - Fixed a serious bug in create=static usage
- - Re-arranged output generation so that the more likely
- failure to generate Schemas via create= will cause the
- helper to abort before generating the Model class itself
-
-0.14 Mon Jun 5 23:34:35 UTC 2006
- - Helpers merged, helper syntax changed
- - Everything updated for Schema::Loader 0.03001 support, including
- what amounts to using Loader in one-shot mode to generate
- a manual Schema with matching Model.
- - fixed stupid typo in docs
-
-0.13 Wed Apr 26 2006
- - noted support via mailing lists
-
-0.12 Tue Apr 25 2006
- - SYNOPSIS improved substantially to help newbies get started
-
-0.11 Sun Mar 26 17:22:31 UTC 2006
- - Removed on_connect_do config setting (it was only out
- in public for 4 days...).
- - Support for on_connect_do and sql_maker options as part
- of connect_info
-
-0.10 Wed Mar 22 07:06:02 UTC 2006
- - Added on_connect_do config setting
- - Added convenience method for ->schema->storage from paulm
-
-0.08 Tue Feb 28 00:04:16 UTC 2006
- - Bumped D::C::Schema::Loader recommendation to 0.02003
- (should have been done last release)
- - Removed the ->require stuff added in 0.07, it doesn't
- do what it is supposed to do. For now, users can layer
- at the Schema::Loader level rather than at Model.
-
-0.07 Sun Feb 19 21:50:18 UTC 2006
- - bugfix for ::SchemaLoader::Foo password argument, and
- switch to connect_info argument of new Schema::Loader
- - Added ->require for source classes, so that you can
- layer in lib/MyApp/Model/Foo/Bar.pm on top of the
- generated MyApp::Model::Foo::Bar.
-
-0.06 Sat Feb 18 19:05:17 UTC 2006
- - Fix simple pod-related bug introduced in last rev
- - Added optional test that uses the helpers
-
-0.05 Fri Feb 17 20:52:21 UTC 2006
- - Stop showing the template pod in pod tools and cpan,
- per Gavin's email.
- - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
- subtle issues under mod_perl engines.
-
-0.04 Mon Feb 13 04:22:49 UTC 2006
- - First public release
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/Changes (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/Changes)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/Changes (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,67 @@
+Revision history for Perl extension Catalyst::Model::DBIC::Schema
+
+0.18 Tue Aug 8 04:34:42 UTC 2006
+ - Version bump for public release, no functional change
+
+0.17_01 Thu Jul 27 01:06:13 UTC 2006
+ - Updated for DBIC 0.07
+
+0.16 Thu Jul 6 13:28:45 UTC 2006
+ - Bugfix for create=static and connect_info coderef snippets
+ - Be more verbose when connection_info is not set.
+
+0.15 Tue Jun 6 01:33:57 UTC 2006
+ - Fixed a serious bug in create=static usage
+ - Re-arranged output generation so that the more likely
+ failure to generate Schemas via create= will cause the
+ helper to abort before generating the Model class itself
+
+0.14 Mon Jun 5 23:34:35 UTC 2006
+ - Helpers merged, helper syntax changed
+ - Everything updated for Schema::Loader 0.03001 support, including
+ what amounts to using Loader in one-shot mode to generate
+ a manual Schema with matching Model.
+ - fixed stupid typo in docs
+
+0.13 Wed Apr 26 2006
+ - noted support via mailing lists
+
+0.12 Tue Apr 25 2006
+ - SYNOPSIS improved substantially to help newbies get started
+
+0.11 Sun Mar 26 17:22:31 UTC 2006
+ - Removed on_connect_do config setting (it was only out
+ in public for 4 days...).
+ - Support for on_connect_do and sql_maker options as part
+ of connect_info
+
+0.10 Wed Mar 22 07:06:02 UTC 2006
+ - Added on_connect_do config setting
+ - Added convenience method for ->schema->storage from paulm
+
+0.08 Tue Feb 28 00:04:16 UTC 2006
+ - Bumped D::C::Schema::Loader recommendation to 0.02003
+ (should have been done last release)
+ - Removed the ->require stuff added in 0.07, it doesn't
+ do what it is supposed to do. For now, users can layer
+ at the Schema::Loader level rather than at Model.
+
+0.07 Sun Feb 19 21:50:18 UTC 2006
+ - bugfix for ::SchemaLoader::Foo password argument, and
+ switch to connect_info argument of new Schema::Loader
+ - Added ->require for source classes, so that you can
+ layer in lib/MyApp/Model/Foo/Bar.pm on top of the
+ generated MyApp::Model::Foo::Bar.
+
+0.06 Sat Feb 18 19:05:17 UTC 2006
+ - Fix simple pod-related bug introduced in last rev
+ - Added optional test that uses the helpers
+
+0.05 Fri Feb 17 20:52:21 UTC 2006
+ - Stop showing the template pod in pod tools and cpan,
+ per Gavin's email.
+ - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
+ subtle issues under mod_perl engines.
+
+0.04 Mon Feb 13 04:22:49 UTC 2006
+ - First public release
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,28 +0,0 @@
-# Avoid version control files.
-\bRCS\b
-\bCVS\b
-,v$
-\B\.svn\b
-
-# Avoid Makemaker generated and utility files.
-\bMakefile$
-\bblib
-\bMakeMaker-\d
-\bpm_to_blib$
-\bblibdirs$
-^MANIFEST\.SKIP$
-
-# Avoid Module::Build generated and utility files.
-\bBuild$
-\b_build
-
-# Avoid temp and backup files.
-~$
-\.tmp$
-\.old$
-\.bak$
-\#$
-\b\.#
-
-# avoid dist files
-\.tar\.gz$
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,28 @@
+# Avoid version control files.
+\bRCS\b
+\bCVS\b
+,v$
+\B\.svn\b
+
+# Avoid Makemaker generated and utility files.
+\bMakefile$
+\bblib
+\bMakeMaker-\d
+\bpm_to_blib$
+\bblibdirs$
+^MANIFEST\.SKIP$
+
+# Avoid Module::Build generated and utility files.
+\bBuild$
+\b_build
+
+# Avoid temp and backup files.
+~$
+\.tmp$
+\.old$
+\.bak$
+\#$
+\b\.#
+
+# avoid dist files
+\.tar\.gz$
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,31 +0,0 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.03
-
- unless (eval "use Module::Build::Compat 0.02; 1" ) {
- print "This module requires Module::Build to install itself.\n";
-
- require ExtUtils::MakeMaker;
- my $yn = ExtUtils::MakeMaker::prompt
- (' Install Module::Build now from CPAN?', 'y');
-
- unless ($yn =~ /^y/i) {
- die " *** Cannot install without Module::Build. Exiting ...\n";
- }
-
- require Cwd;
- require File::Spec;
- require CPAN;
-
- # Save this 'cause CPAN will chdir all over the place.
- my $cwd = Cwd::cwd();
-
- CPAN::Shell->install('Module::Build::Compat');
- CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
- or die "Couldn't install Module::Build, giving up.\n";
-
- chdir $cwd or die "Cannot chdir() back to $cwd: $!";
- }
- eval "use Module::Build::Compat 0.02; 1" or die $@;
-
- Module::Build::Compat->run_build_pl(args => \@ARGV);
- require Module::Build;
- Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,31 @@
+# Note: this file was auto-generated by Module::Build::Compat version 0.03
+
+ unless (eval "use Module::Build::Compat 0.02; 1" ) {
+ print "This module requires Module::Build to install itself.\n";
+
+ require ExtUtils::MakeMaker;
+ my $yn = ExtUtils::MakeMaker::prompt
+ (' Install Module::Build now from CPAN?', 'y');
+
+ unless ($yn =~ /^y/i) {
+ die " *** Cannot install without Module::Build. Exiting ...\n";
+ }
+
+ require Cwd;
+ require File::Spec;
+ require CPAN;
+
+ # Save this 'cause CPAN will chdir all over the place.
+ my $cwd = Cwd::cwd();
+
+ CPAN::Shell->install('Module::Build::Compat');
+ CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
+ or die "Couldn't install Module::Build, giving up.\n";
+
+ chdir $cwd or die "Cannot chdir() back to $cwd: $!";
+ }
+ eval "use Module::Build::Compat 0.02; 1" or die $@;
+
+ Module::Build::Compat->run_build_pl(args => \@ARGV);
+ require Module::Build;
+ Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib)
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst)
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper)
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,230 +0,0 @@
-package Catalyst::Helper::Model::DBIC::Schema;
-
-use strict;
-use warnings;
-use Carp;
-use UNIVERSAL::require;
-
-=head1 NAME
-
-Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
-
-=head1 SYNOPSIS
-
- script/create.pl model ModelName DBIC::Schema My::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
-
-=head1 DESCRIPTION
-
-Helper for the DBIC Schema Models.
-
-=head2 Arguments:
-
- ModelName is the short name for the Model class being generated
-
- My::SchemaClass is the fully qualified classname of your Schema,
- which might or might not yet exist.
-
- create=dynamic instructs this Helper to generate the named Schema
- class for you, basing it on L<DBIx::Class::Schema::Loader> (which
- means the table information will always be dynamically loaded at
- runtime from the database).
-
- create=static instructs this Helper to generate the named Schema
- class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
- mode to create a standard, manually-defined L<DBIx::Class::Schema>
- setup, based on what the Loader sees in your database at this moment.
- A Schema/Model pair generated this way will not require
- L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
- adapt itself to changes in your database structure. You can edit
- the generated classes by hand to refine them.
-
- connect_info arguments are the same as what DBIx::Class::Schema::connect
- expects, and are storage_type-specific. For DBI-based storage, these
- arguments are the dsn, username, password, and connect options,
- respectively. These are optional for existing Schemas, but required
- if you use either of the C<create=> options.
-
-Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
-
-=head1 TYPICAL EXAMPLES
-
- # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
- # and a Model which references it:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=static dbi:mysql:foodb myuname mypass
-
- # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
- # and a Model which references it:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
-
- # Reference an existing Schema of any kind, and provide some connection information for ->config:
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass dbi:mysql:foodb myuname mypass
-
- # Same, but don't supply connect information yet (you'll need to do this
- # in your app config, or [not recommended] in the schema itself).
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
-
-=head2 METHODS
-
-=head3 mk_compclass
-
-=cut
-
-sub mk_compclass {
- my ( $self, $helper, $schema_class, @connect_info) = @_;
-
- $helper->{schema_class} = $schema_class
- or croak "Must supply schema class name";
-
- my $create = '';
- if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
- $create = $1;
- shift @connect_info;
- }
-
- if(@connect_info) {
- $helper->{setup_connect_info} = 1;
- my @helper_connect_info = @connect_info;
- for(@helper_connect_info) {
- $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
- }
- $helper->{connect_info} = \@helper_connect_info;
- }
-
- if($create eq 'dynamic') {
- my @schema_parts = split(/\:\:/, $helper->{schema_class});
- my $schema_file_part = pop @schema_parts;
-
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
- my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
-
- $helper->mk_dir($schema_dir);
- $helper->render_file( 'schemaclass', $schema_file );
- }
- elsif($create eq 'static') {
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
- DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
- or croak "Cannot load DBIx::Class::Schema::Loader: $@";
-
- my @loader_connect_info = @connect_info;
- my $num = 6; # argument number on the commandline for "dbi:..."
- for(@loader_connect_info) {
- if(/^\s*[[{]/) {
- $_ = eval "$_";
- croak "Perl syntax error in commandline argument $num: $@" if $@;
- }
- $num++;
- }
-
- make_schema_at(
- $schema_class,
- { relationships => 1 },
- \@loader_connect_info,
- );
- }
-
- my $file = $helper->{file};
- $helper->render_file( 'compclass', $file );
-}
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__DATA__
-
-=begin pod_to_ignore
-
-__schemaclass__
-package [% schema_class %];
-
-use strict;
-use base qw/DBIx::Class::Schema::Loader/;
-
-__PACKAGE__->loader_options(
- relationships => 1,
- # debug => 1,
-);
-
-=head1 NAME
-
-[% schema_class %] - DBIx::Class::Schema::Loader class
-
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__compclass__
-package [% class %];
-
-use strict;
-use base 'Catalyst::Model::DBIC::Schema';
-
-__PACKAGE__->config(
- schema_class => '[% schema_class %]',
- [% IF setup_connect_info %]connect_info => [
- [% FOREACH arg = connect_info %][% arg %],
- [% END %]
- ],[% END %]
-);
-
-=head1 NAME
-
-[% class %] - Catalyst DBIC Schema Model
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,230 @@
+package Catalyst::Helper::Model::DBIC::Schema;
+
+use strict;
+use warnings;
+use Carp;
+use UNIVERSAL::require;
+
+=head1 NAME
+
+Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
+
+=head1 SYNOPSIS
+
+ script/create.pl model ModelName DBIC::Schema My::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
+
+=head1 DESCRIPTION
+
+Helper for the DBIC Schema Models.
+
+=head2 Arguments:
+
+ ModelName is the short name for the Model class being generated
+
+ My::SchemaClass is the fully qualified classname of your Schema,
+ which might or might not yet exist.
+
+ create=dynamic instructs this Helper to generate the named Schema
+ class for you, basing it on L<DBIx::Class::Schema::Loader> (which
+ means the table information will always be dynamically loaded at
+ runtime from the database).
+
+ create=static instructs this Helper to generate the named Schema
+ class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
+ mode to create a standard, manually-defined L<DBIx::Class::Schema>
+ setup, based on what the Loader sees in your database at this moment.
+ A Schema/Model pair generated this way will not require
+ L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
+ adapt itself to changes in your database structure. You can edit
+ the generated classes by hand to refine them.
+
+ connect_info arguments are the same as what DBIx::Class::Schema::connect
+ expects, and are storage_type-specific. For DBI-based storage, these
+ arguments are the dsn, username, password, and connect options,
+ respectively. These are optional for existing Schemas, but required
+ if you use either of the C<create=> options.
+
+Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
+
+=head1 TYPICAL EXAMPLES
+
+ # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=static dbi:mysql:foodb myuname mypass
+
+ # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
+
+ # Reference an existing Schema of any kind, and provide some connection information for ->config:
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass dbi:mysql:foodb myuname mypass
+
+ # Same, but don't supply connect information yet (you'll need to do this
+ # in your app config, or [not recommended] in the schema itself).
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
+
+=head2 METHODS
+
+=head3 mk_compclass
+
+=cut
+
+sub mk_compclass {
+ my ( $self, $helper, $schema_class, @connect_info) = @_;
+
+ $helper->{schema_class} = $schema_class
+ or croak "Must supply schema class name";
+
+ my $create = '';
+ if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
+ $create = $1;
+ shift @connect_info;
+ }
+
+ if(@connect_info) {
+ $helper->{setup_connect_info} = 1;
+ my @helper_connect_info = @connect_info;
+ for(@helper_connect_info) {
+ $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
+ }
+ $helper->{connect_info} = \@helper_connect_info;
+ }
+
+ if($create eq 'dynamic') {
+ my @schema_parts = split(/\:\:/, $helper->{schema_class});
+ my $schema_file_part = pop @schema_parts;
+
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
+ my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
+
+ $helper->mk_dir($schema_dir);
+ $helper->render_file( 'schemaclass', $schema_file );
+ }
+ elsif($create eq 'static') {
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
+ DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
+ or croak "Cannot load DBIx::Class::Schema::Loader: $@";
+
+ my @loader_connect_info = @connect_info;
+ my $num = 6; # argument number on the commandline for "dbi:..."
+ for(@loader_connect_info) {
+ if(/^\s*[[{]/) {
+ $_ = eval "$_";
+ croak "Perl syntax error in commandline argument $num: $@" if $@;
+ }
+ $num++;
+ }
+
+ make_schema_at(
+ $schema_class,
+ { relationships => 1 },
+ \@loader_connect_info,
+ );
+ }
+
+ my $file = $helper->{file};
+ $helper->render_file( 'compclass', $file );
+}
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__DATA__
+
+=begin pod_to_ignore
+
+__schemaclass__
+package [% schema_class %];
+
+use strict;
+use base qw/DBIx::Class::Schema::Loader/;
+
+__PACKAGE__->loader_options(
+ relationships => 1,
+ # debug => 1,
+);
+
+=head1 NAME
+
+[% schema_class %] - DBIx::Class::Schema::Loader class
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__compclass__
+package [% class %];
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+ schema_class => '[% schema_class %]',
+ [% IF setup_connect_info %]connect_info => [
+ [% FOREACH arg = connect_info %][% arg %],
+ [% END %]
+ ],[% END %]
+);
+
+=head1 NAME
+
+[% class %] - Catalyst DBIC Schema Model
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,336 +0,0 @@
-package Catalyst::Model::DBIC::Schema;
-
-use strict;
-use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
-use NEXT;
-use UNIVERSAL::require;
-use Carp;
-use Data::Dumper;
-require DBIx::Class;
-
-our $VERSION = '0.18';
-
-__PACKAGE__->mk_classaccessor('composed_schema');
-__PACKAGE__->mk_accessors('schema');
-
-=head1 NAME
-
-Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
-
-=head1 SYNOPSIS
-
-Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
-
-=over
-
-=item 1.
-
-Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
-
- package MyApp::Schema::FilmDB;
- use base qw/DBIx::Class::Schema/;
-
- __PACKAGE__->load_classes(qw/Actor Role/);
-
-=item 2.
-
-Create some classes for the tables in the database, for example an
-Actor in MyApp/Schema/FilmDB/Actor.pm:
-
- package MyApp::Schema::FilmDB::Actor;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('actor');
-
- ...
-
-and a Role in MyApp/Schema/Role.pm:
-
- package MyApp::Schema::FilmDB::Role;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('role');
-
- ...
-
-Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
-usable as a standalone module and you can test/run it without Catalyst.
-
-=item 3.
-
-To expose it to Catalyst as a model, you should create a DBIC Model in
-MyApp/Model/FilmDB.pm:
-
- package MyApp::Model::FilmDB;
- use base qw/Catalyst::Model::DBIC::Schema/;
-
- __PACKAGE__->config(
- schema_class => 'MyApp::Schema::FilmDB',
- connect_info => [
- "DBI:...",
- "username",
- "password",
- {AutoCommit => 1}
- ]
- );
-
-See below for a full list of the possible config parameters.
-
-=back
-
-Now you have a working Model, accessing your separate DBIC Schema. Which can
-be used/accessed in the normal Catalyst manner, via $c->model():
-
- my $actor = $c->model('FilmDB::Actor')->find(1);
-
-You can also use it to set up DBIC authentication with
-Authentication::Store::DBIC in MyApp.pm:
-
- package MyApp;
-
- use Catalyst qw/... Authentication::Store::DBIC/;
-
- ...
-
- __PACKAGE__->config->{authentication}{dbic} = {
- user_class => 'FilmDB::Actor',
- user_field => 'name',
- password_field => 'password'
- }
-
-C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
-parameter passed. To find out more about which methods can be called on a
-ResultSet, or how to add your own methods to it, please see the ResultSet
-documentation in the L<DBIx::Class> distribution.
-
-Some examples are given below:
-
- # to access schema methods directly:
- $c->model('FilmDB')->schema->source(...);
-
- # to access the source object, resultset, and class:
- $c->model('FilmDB')->source(...);
- $c->model('FilmDB')->resultset(...);
- $c->model('FilmDB')->class(...);
-
- # For resultsets, there's an even quicker shortcut:
- $c->model('FilmDB::Actor')
- # is the same as $c->model('FilmDB')->resultset('Actor')
-
- # To get the composed schema for making new connections:
- my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
-
- # Or the same thing via a convenience shortcut:
- my $newconn = $c->model('FilmDB')->connect(...);
-
- # or, if your schema works on different storage drivers:
- my $newconn = $c->model('FilmDB')->composed_schema->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
- # and again, a convenience shortcut
- my $newconn = $c->model('FilmDB')->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
-=head1 DESCRIPTION
-
-This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
-the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
-information on generating these Models via Helper scripts.
-
-=head1 CONFIG PARAMETERS
-
-=over 4
-
-=item schema_class
-
-This is the classname of your L<DBIx::Class::Schema> Schema. It needs
-to be findable in C<@INC>, but it does not need to be inside the
-C<Catalyst::Model::> namespace. This parameter is required.
-
-=item 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).
-
-This is not required if C<schema_class> already has connection information
-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
-parameters are your dsn, username, password, and connect options hashref.
-
-If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
-C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
-C<quote_char>, or C<name_sep>, you can place these options into a hashref
-as the final element of the C<connect_info> arrayref. If in doubt, don't
-specify these options. You would know it if you needed them.
-
-Examples:
-
- connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
-
- connect_info => [
- 'dbi:SQLite:dbname=foo.db',
- {
- on_connect_do => [
- 'PRAGMA synchronous = OFF',
- ],
- }
- ],
-
- connect_info => [
- 'dbi:Pg:dbname=mypgdb',
- 'postgres',
- '',
- { AutoCommit => 0 },
- {
- on_connect_do => [
- 'some SQL statement',
- 'another SQL statement',
- ],
- }
- ],
-
-=item storage_type
-
-Allows the use of a different C<storage_type> than what is set in your
-C<schema_class> (which in turn defaults to C<::DBI> if not set in current
-L<DBIx::Class>). Completely optional, and probably unnecessary for most
-people until other storage backends become available for L<DBIx::Class>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item new
-
-Instantiates the Model based on the above-documented ->config parameters.
-The only required parameter is C<schema_class>. C<connect_info> is
-required in the case that C<schema_class> does not already have connection
-information defined for it.
-
-=item schema
-
-Accessor which returns the connected schema being used by the this model.
-There are direct shortcuts on the model class itself for
-schema->resultset, schema->source, and schema->class.
-
-=item composed_schema
-
-Accessor which returns the composed schema, which has no connection info,
-which was used in constructing the C<schema> above. Useful for creating
-new connections based on the same schema/model. There are direct shortcuts
-from the model object for composed_schema->clone and composed_schema->connect
-
-=item clone
-
-Shortcut for ->composed_schema->clone
-
-=item connect
-
-Shortcut for ->composed_schema->connect
-
-=item source
-
-Shortcut for ->schema->source
-
-=item class
-
-Shortcut for ->schema->class
-
-=item resultset
-
-Shortcut for ->schema->resultset
-
-=item storage
-
-Provides an accessor for the connected schema's storage object.
-Used often for debugging and controlling transactions.
-
-=back
-
-=cut
-
-sub new {
- my $self = shift->NEXT::new(@_);
-
- my $class = ref($self);
- my $model_name = $class;
- $model_name =~ s/^[\w:]+::(?:Model|M):://;
-
- croak "->config->{schema_class} must be defined for this model"
- unless $self->{schema_class};
-
- my $schema_class = $self->{schema_class};
-
- $schema_class->require
- or croak "Cannot load schema class '$schema_class': $@";
-
- if( !$self->{connect_info} ) {
- if($schema_class->storage && $schema_class->storage->connect_info) {
- $self->{connect_info} = $schema_class->storage->connect_info;
- }
- else {
- croak "Either ->config->{connect_info} must be defined for $class"
- . " or $schema_class must have connect info defined on it"
- . "Here's what we got:\n"
- . Dumper($self);
- }
- }
-
- $self->composed_schema($schema_class->compose_namespace($class));
- $self->schema($self->composed_schema->clone);
-
- $self->schema->storage_type($self->{storage_type})
- if $self->{storage_type};
-
- $self->schema->connection(@{$self->{connect_info}});
-
- no strict 'refs';
- foreach my $moniker ($self->schema->sources) {
- my $classname = "${class}::$moniker";
- *{"${classname}::ACCEPT_CONTEXT"} = sub {
- shift;
- shift->model($model_name)->resultset($moniker);
- }
- }
-
- return $self;
-}
-
-sub clone { shift->composed_schema->clone(@_); }
-
-sub connect { shift->composed_schema->connect(@_); }
-
-sub storage { shift->schema->storage(@_); }
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 COPYRIGHT
-
-This program is free software, you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,336 @@
+package Catalyst::Model::DBIC::Schema;
+
+use strict;
+use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
+use NEXT;
+use UNIVERSAL::require;
+use Carp;
+use Data::Dumper;
+require DBIx::Class;
+
+our $VERSION = '0.18';
+
+__PACKAGE__->mk_classaccessor('composed_schema');
+__PACKAGE__->mk_accessors('schema');
+
+=head1 NAME
+
+Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
+
+=head1 SYNOPSIS
+
+Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
+
+=over
+
+=item 1.
+
+Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
+
+ package MyApp::Schema::FilmDB;
+ use base qw/DBIx::Class::Schema/;
+
+ __PACKAGE__->load_classes(qw/Actor Role/);
+
+=item 2.
+
+Create some classes for the tables in the database, for example an
+Actor in MyApp/Schema/FilmDB/Actor.pm:
+
+ package MyApp::Schema::FilmDB::Actor;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('actor');
+
+ ...
+
+and a Role in MyApp/Schema/Role.pm:
+
+ package MyApp::Schema::FilmDB::Role;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('role');
+
+ ...
+
+Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
+usable as a standalone module and you can test/run it without Catalyst.
+
+=item 3.
+
+To expose it to Catalyst as a model, you should create a DBIC Model in
+MyApp/Model/FilmDB.pm:
+
+ package MyApp::Model::FilmDB;
+ use base qw/Catalyst::Model::DBIC::Schema/;
+
+ __PACKAGE__->config(
+ schema_class => 'MyApp::Schema::FilmDB',
+ connect_info => [
+ "DBI:...",
+ "username",
+ "password",
+ {AutoCommit => 1}
+ ]
+ );
+
+See below for a full list of the possible config parameters.
+
+=back
+
+Now you have a working Model, accessing your separate DBIC Schema. Which can
+be used/accessed in the normal Catalyst manner, via $c->model():
+
+ my $actor = $c->model('FilmDB::Actor')->find(1);
+
+You can also use it to set up DBIC authentication with
+Authentication::Store::DBIC in MyApp.pm:
+
+ package MyApp;
+
+ use Catalyst qw/... Authentication::Store::DBIC/;
+
+ ...
+
+ __PACKAGE__->config->{authentication}{dbic} = {
+ user_class => 'FilmDB::Actor',
+ user_field => 'name',
+ password_field => 'password'
+ }
+
+C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
+parameter passed. To find out more about which methods can be called on a
+ResultSet, or how to add your own methods to it, please see the ResultSet
+documentation in the L<DBIx::Class> distribution.
+
+Some examples are given below:
+
+ # to access schema methods directly:
+ $c->model('FilmDB')->schema->source(...);
+
+ # to access the source object, resultset, and class:
+ $c->model('FilmDB')->source(...);
+ $c->model('FilmDB')->resultset(...);
+ $c->model('FilmDB')->class(...);
+
+ # For resultsets, there's an even quicker shortcut:
+ $c->model('FilmDB::Actor')
+ # is the same as $c->model('FilmDB')->resultset('Actor')
+
+ # To get the composed schema for making new connections:
+ my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
+
+ # Or the same thing via a convenience shortcut:
+ my $newconn = $c->model('FilmDB')->connect(...);
+
+ # or, if your schema works on different storage drivers:
+ my $newconn = $c->model('FilmDB')->composed_schema->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+ # and again, a convenience shortcut
+ my $newconn = $c->model('FilmDB')->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+=head1 DESCRIPTION
+
+This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
+the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
+information on generating these Models via Helper scripts.
+
+=head1 CONFIG PARAMETERS
+
+=over 4
+
+=item schema_class
+
+This is the classname of your L<DBIx::Class::Schema> Schema. It needs
+to be findable in C<@INC>, but it does not need to be inside the
+C<Catalyst::Model::> namespace. This parameter is required.
+
+=item 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).
+
+This is not required if C<schema_class> already has connection information
+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
+parameters are your dsn, username, password, and connect options hashref.
+
+If you need to specify the L<DBIx::Class::Storage::DBI> specific parameter
+C<on_connect_do>, or the related C<sql_maker> options C<limit_dialect>,
+C<quote_char>, or C<name_sep>, you can place these options into a hashref
+as the final element of the C<connect_info> arrayref. If in doubt, don't
+specify these options. You would know it if you needed them.
+
+Examples:
+
+ connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
+
+ connect_info => [
+ 'dbi:SQLite:dbname=foo.db',
+ {
+ on_connect_do => [
+ 'PRAGMA synchronous = OFF',
+ ],
+ }
+ ],
+
+ connect_info => [
+ 'dbi:Pg:dbname=mypgdb',
+ 'postgres',
+ '',
+ { AutoCommit => 0 },
+ {
+ on_connect_do => [
+ 'some SQL statement',
+ 'another SQL statement',
+ ],
+ }
+ ],
+
+=item storage_type
+
+Allows the use of a different C<storage_type> than what is set in your
+C<schema_class> (which in turn defaults to C<::DBI> if not set in current
+L<DBIx::Class>). Completely optional, and probably unnecessary for most
+people until other storage backends become available for L<DBIx::Class>.
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new
+
+Instantiates the Model based on the above-documented ->config parameters.
+The only required parameter is C<schema_class>. C<connect_info> is
+required in the case that C<schema_class> does not already have connection
+information defined for it.
+
+=item schema
+
+Accessor which returns the connected schema being used by the this model.
+There are direct shortcuts on the model class itself for
+schema->resultset, schema->source, and schema->class.
+
+=item composed_schema
+
+Accessor which returns the composed schema, which has no connection info,
+which was used in constructing the C<schema> above. Useful for creating
+new connections based on the same schema/model. There are direct shortcuts
+from the model object for composed_schema->clone and composed_schema->connect
+
+=item clone
+
+Shortcut for ->composed_schema->clone
+
+=item connect
+
+Shortcut for ->composed_schema->connect
+
+=item source
+
+Shortcut for ->schema->source
+
+=item class
+
+Shortcut for ->schema->class
+
+=item resultset
+
+Shortcut for ->schema->resultset
+
+=item storage
+
+Provides an accessor for the connected schema's storage object.
+Used often for debugging and controlling transactions.
+
+=back
+
+=cut
+
+sub new {
+ my $self = shift->NEXT::new(@_);
+
+ my $class = ref($self);
+ my $model_name = $class;
+ $model_name =~ s/^[\w:]+::(?:Model|M):://;
+
+ croak "->config->{schema_class} must be defined for this model"
+ unless $self->{schema_class};
+
+ my $schema_class = $self->{schema_class};
+
+ $schema_class->require
+ or croak "Cannot load schema class '$schema_class': $@";
+
+ if( !$self->{connect_info} ) {
+ if($schema_class->storage && $schema_class->storage->connect_info) {
+ $self->{connect_info} = $schema_class->storage->connect_info;
+ }
+ else {
+ croak "Either ->config->{connect_info} must be defined for $class"
+ . " or $schema_class must have connect info defined on it"
+ . "Here's what we got:\n"
+ . Dumper($self);
+ }
+ }
+
+ $self->composed_schema($schema_class->compose_namespace($class));
+ $self->schema($self->composed_schema->clone);
+
+ $self->schema->storage_type($self->{storage_type})
+ if $self->{storage_type};
+
+ $self->schema->connection(@{$self->{connect_info}});
+
+ no strict 'refs';
+ foreach my $moniker ($self->schema->sources) {
+ my $classname = "${class}::$moniker";
+ *{"${classname}::ACCEPT_CONTEXT"} = sub {
+ shift;
+ shift->model($model_name)->resultset($moniker);
+ }
+ }
+
+ return $self;
+}
+
+sub clone { shift->composed_schema->clone(@_); }
+
+sub connect { shift->composed_schema->connect(@_); }
+
+sub storage { shift->schema->storage(@_); }
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/t)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use strict;
-use Test::More tests => 2;
-
-BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
-BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use strict;
+use Test::More tests => 2;
+
+BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
+BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,8 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod 1.14";
-plan skip_all => 'Test::Pod 1.14 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_files_ok();
-
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,8 @@
+use Test::More;
+
+eval "use Test::Pod 1.14";
+plan skip_all => 'Test::Pod 1.14 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_files_ok();
+
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,7 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.04";
-plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_coverage_ok();
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,7 @@
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_coverage_ok();
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use Test::More;
-
-eval { require Test::Kwalitee; Test::Kwalitee->import() };
-
-plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use Test::More;
+
+eval { require Test::Kwalitee; Test::Kwalitee->import() };
+
+plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,46 +0,0 @@
-use strict;
-use Test::More;
-use FindBin;
-use File::Spec;
-use File::Find;
-
-plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
- unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
-
-# XXX this test needs a re-write to fully test the current set of capabilities...
-
-my $test_params = [
- [ 'TestSchema', 'DBIC::Schema', '' ],
- [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
-];
-
-plan tests => (2 * @$test_params);
-
-my $test_dir = $FindBin::Bin;
-my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
-my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
-my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
-my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
-my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
-
-chdir($test_dir);
-system("catalyst.pl TestApp");
-chdir($cat_dir);
-
-foreach my $tparam (@$test_params) {
- my ($model, $helper, $args) = @$tparam;
- system("$^X -I$blib_dir $creator model $model $helper $model $args");
- my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
- ok( -f $model_path, "$model_path is a file" );
- my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
- ok($compile_rv == 0, "perl -c $model_path");
-}
-
-chdir($test_dir);
-
-sub rm_rf {
- my $name = $File::Find::name;
- if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
- else { unlink $name or die "Cannot unlink $name: $!" }
-}
-finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.18/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,46 @@
+use strict;
+use Test::More;
+use FindBin;
+use File::Spec;
+use File::Find;
+
+plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
+ unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
+
+# XXX this test needs a re-write to fully test the current set of capabilities...
+
+my $test_params = [
+ [ 'TestSchema', 'DBIC::Schema', '' ],
+ [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
+];
+
+plan tests => (2 * @$test_params);
+
+my $test_dir = $FindBin::Bin;
+my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
+my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
+my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
+my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
+my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
+
+chdir($test_dir);
+system("catalyst.pl TestApp");
+chdir($cat_dir);
+
+foreach my $tparam (@$test_params) {
+ my ($model, $helper, $args) = @$tparam;
+ system("$^X -I$blib_dir $creator model $model $helper $model $args");
+ my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
+ ok( -f $model_path, "$model_path is a file" );
+ my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
+ ok($compile_rv == 0, "perl -c $model_path");
+}
+
+chdir($test_dir);
+
+sub rm_rf {
+ my $name = $File::Find::name;
+ if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
+ else { unlink $name or die "Cannot unlink $name: $!" }
+}
+finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.20 (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/Changes
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/Changes 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,74 +0,0 @@
-Revision history for Perl extension Catalyst::Model::DBIC::Schema
-
-0.20 Wed May 23, 2007
- - Fix for rt.cpan.org #22426
- - Switch to Module::Install
- - Assorted small pod and cleanliness fixes
- - Some requirements bumped to the latest maint
- releases of the same major feature release
-
-0.18 Tue Aug 8 04:34:42 UTC 2006
- - Version bump for public release, no functional change
-
-0.17_01 Thu Jul 27 01:06:13 UTC 2006
- - Updated for DBIC 0.07
-
-0.16 Thu Jul 6 13:28:45 UTC 2006
- - Bugfix for create=static and connect_info coderef snippets
- - Be more verbose when connection_info is not set.
-
-0.15 Tue Jun 6 01:33:57 UTC 2006
- - Fixed a serious bug in create=static usage
- - Re-arranged output generation so that the more likely
- failure to generate Schemas via create= will cause the
- helper to abort before generating the Model class itself
-
-0.14 Mon Jun 5 23:34:35 UTC 2006
- - Helpers merged, helper syntax changed
- - Everything updated for Schema::Loader 0.03001 support, including
- what amounts to using Loader in one-shot mode to generate
- a manual Schema with matching Model.
- - fixed stupid typo in docs
-
-0.13 Wed Apr 26 2006
- - noted support via mailing lists
-
-0.12 Tue Apr 25 2006
- - SYNOPSIS improved substantially to help newbies get started
-
-0.11 Sun Mar 26 17:22:31 UTC 2006
- - Removed on_connect_do config setting (it was only out
- in public for 4 days...).
- - Support for on_connect_do and sql_maker options as part
- of connect_info
-
-0.10 Wed Mar 22 07:06:02 UTC 2006
- - Added on_connect_do config setting
- - Added convenience method for ->schema->storage from paulm
-
-0.08 Tue Feb 28 00:04:16 UTC 2006
- - Bumped D::C::Schema::Loader recommendation to 0.02003
- (should have been done last release)
- - Removed the ->require stuff added in 0.07, it doesn't
- do what it is supposed to do. For now, users can layer
- at the Schema::Loader level rather than at Model.
-
-0.07 Sun Feb 19 21:50:18 UTC 2006
- - bugfix for ::SchemaLoader::Foo password argument, and
- switch to connect_info argument of new Schema::Loader
- - Added ->require for source classes, so that you can
- layer in lib/MyApp/Model/Foo/Bar.pm on top of the
- generated MyApp::Model::Foo::Bar.
-
-0.06 Sat Feb 18 19:05:17 UTC 2006
- - Fix simple pod-related bug introduced in last rev
- - Added optional test that uses the helpers
-
-0.05 Fri Feb 17 20:52:21 UTC 2006
- - Stop showing the template pod in pod tools and cpan,
- per Gavin's email.
- - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
- subtle issues under mod_perl engines.
-
-0.04 Mon Feb 13 04:22:49 UTC 2006
- - First public release
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/Changes (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/Changes)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/Changes (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/Changes 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,74 @@
+Revision history for Perl extension Catalyst::Model::DBIC::Schema
+
+0.20 Wed May 23, 2007
+ - Fix for rt.cpan.org #22426
+ - Switch to Module::Install
+ - Assorted small pod and cleanliness fixes
+ - Some requirements bumped to the latest maint
+ releases of the same major feature release
+
+0.18 Tue Aug 8 04:34:42 UTC 2006
+ - Version bump for public release, no functional change
+
+0.17_01 Thu Jul 27 01:06:13 UTC 2006
+ - Updated for DBIC 0.07
+
+0.16 Thu Jul 6 13:28:45 UTC 2006
+ - Bugfix for create=static and connect_info coderef snippets
+ - Be more verbose when connection_info is not set.
+
+0.15 Tue Jun 6 01:33:57 UTC 2006
+ - Fixed a serious bug in create=static usage
+ - Re-arranged output generation so that the more likely
+ failure to generate Schemas via create= will cause the
+ helper to abort before generating the Model class itself
+
+0.14 Mon Jun 5 23:34:35 UTC 2006
+ - Helpers merged, helper syntax changed
+ - Everything updated for Schema::Loader 0.03001 support, including
+ what amounts to using Loader in one-shot mode to generate
+ a manual Schema with matching Model.
+ - fixed stupid typo in docs
+
+0.13 Wed Apr 26 2006
+ - noted support via mailing lists
+
+0.12 Tue Apr 25 2006
+ - SYNOPSIS improved substantially to help newbies get started
+
+0.11 Sun Mar 26 17:22:31 UTC 2006
+ - Removed on_connect_do config setting (it was only out
+ in public for 4 days...).
+ - Support for on_connect_do and sql_maker options as part
+ of connect_info
+
+0.10 Wed Mar 22 07:06:02 UTC 2006
+ - Added on_connect_do config setting
+ - Added convenience method for ->schema->storage from paulm
+
+0.08 Tue Feb 28 00:04:16 UTC 2006
+ - Bumped D::C::Schema::Loader recommendation to 0.02003
+ (should have been done last release)
+ - Removed the ->require stuff added in 0.07, it doesn't
+ do what it is supposed to do. For now, users can layer
+ at the Schema::Loader level rather than at Model.
+
+0.07 Sun Feb 19 21:50:18 UTC 2006
+ - bugfix for ::SchemaLoader::Foo password argument, and
+ switch to connect_info argument of new Schema::Loader
+ - Added ->require for source classes, so that you can
+ layer in lib/MyApp/Model/Foo/Bar.pm on top of the
+ generated MyApp::Model::Foo::Bar.
+
+0.06 Sat Feb 18 19:05:17 UTC 2006
+ - Fix simple pod-related bug introduced in last rev
+ - Added optional test that uses the helpers
+
+0.05 Fri Feb 17 20:52:21 UTC 2006
+ - Stop showing the template pod in pod tools and cpan,
+ per Gavin's email.
+ - Bump DBIx::Class pre-req to 0.05006, to prevent likely but
+ subtle issues under mod_perl engines.
+
+0.04 Mon Feb 13 04:22:49 UTC 2006
+ - First public release
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,28 +0,0 @@
-# Avoid version control files.
-\bRCS\b
-\bCVS\b
-,v$
-\B\.svn\b
-
-# Avoid Makemaker generated and utility files.
-\bMakefile$
-\bblib
-\bMakeMaker-\d
-\bpm_to_blib$
-\bblibdirs$
-^MANIFEST\.SKIP$
-
-# Avoid Module::Build generated and utility files.
-\bBuild$
-\b_build
-
-# Avoid temp and backup files.
-~$
-\.tmp$
-\.old$
-\.bak$
-\#$
-\b\.#
-
-# avoid dist files
-\.tar\.gz$
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/MANIFEST.SKIP 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,28 @@
+# Avoid version control files.
+\bRCS\b
+\bCVS\b
+,v$
+\B\.svn\b
+
+# Avoid Makemaker generated and utility files.
+\bMakefile$
+\bblib
+\bMakeMaker-\d
+\bpm_to_blib$
+\bblibdirs$
+^MANIFEST\.SKIP$
+
+# Avoid Module::Build generated and utility files.
+\bBuild$
+\b_build
+
+# Avoid temp and backup files.
+~$
+\.tmp$
+\.old$
+\.bak$
+\#$
+\b\.#
+
+# avoid dist files
+\.tar\.gz$
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,24 +0,0 @@
-use inc::Module::Install 0.65;
-
-name 'Catalyst-Model-DBIC-Schema';
-all_from 'lib/Catalyst/Model/DBIC/Schema.pm';
-
-requires 'DBIx::Class' => '0.07006';
-requires 'Catalyst::Runtime' => '5.70';
-requires 'UNIVERSAL::require' => '0.10';
-requires 'Class::Data::Accessor' => '0.02';
-requires 'Class::Accessor::Fast' => '0.22';
-test_requires 'Test::More';
-
-feature 'Catalyst::Helper support',
- -default => 0,
- 'Catalyst::Devel' => '1.0',
- 'DBIx::Class::Schema::Loader' => '0.03012';
-
-if(-e 'MANIFEST.SKIP') {
- system("pod2text lib/Catalyst/Model/DBIC/Schema.pm > README");
-}
-
-auto_provides;
-auto_install;
-WriteAll;
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/Makefile.PL 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,24 @@
+use inc::Module::Install 0.65;
+
+name 'Catalyst-Model-DBIC-Schema';
+all_from 'lib/Catalyst/Model/DBIC/Schema.pm';
+
+requires 'DBIx::Class' => '0.07006';
+requires 'Catalyst::Runtime' => '5.70';
+requires 'UNIVERSAL::require' => '0.10';
+requires 'Class::Data::Accessor' => '0.02';
+requires 'Class::Accessor::Fast' => '0.22';
+test_requires 'Test::More';
+
+feature 'Catalyst::Helper support',
+ -default => 0,
+ 'Catalyst::Devel' => '1.0',
+ 'DBIx::Class::Schema::Loader' => '0.03012';
+
+if(-e 'MANIFEST.SKIP') {
+ system("pod2text lib/Catalyst/Model/DBIC/Schema.pm > README");
+}
+
+auto_provides;
+auto_install;
+WriteAll;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/README
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/README 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/README 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,228 +0,0 @@
-NAME
- Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
-
-SYNOPSIS
- Manual creation of a DBIx::Class::Schema and a
- Catalyst::Model::DBIC::Schema:
-
- 1. Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
-
- package MyApp::Schema::FilmDB;
- use base qw/DBIx::Class::Schema/;
-
- __PACKAGE__->load_classes(qw/Actor Role/);
-
- 2. Create some classes for the tables in the database, for example an
- Actor in MyApp/Schema/FilmDB/Actor.pm:
-
- package MyApp::Schema::FilmDB::Actor;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('actor');
-
- ...
-
- and a Role in MyApp/Schema/Role.pm:
-
- package MyApp::Schema::FilmDB::Role;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('role');
-
- ...
-
- Notice that the schema is in MyApp::Schema, not in MyApp::Model.
- This way it's usable as a standalone module and you can test/run it
- without Catalyst.
-
- 3. To expose it to Catalyst as a model, you should create a DBIC Model
- in MyApp/Model/FilmDB.pm:
-
- package MyApp::Model::FilmDB;
- use base qw/Catalyst::Model::DBIC::Schema/;
-
- __PACKAGE__->config(
- schema_class => 'MyApp::Schema::FilmDB',
- connect_info => [
- "DBI:...",
- "username",
- "password",
- {AutoCommit => 1}
- ]
- );
-
- See below for a full list of the possible config parameters.
-
- Now you have a working Model, accessing your separate DBIC Schema. Which
- can be used/accessed in the normal Catalyst manner, via $c->model():
-
- my $actor = $c->model('FilmDB::Actor')->find(1);
-
- You can also use it to set up DBIC authentication with
- Authentication::Store::DBIC in MyApp.pm:
-
- package MyApp;
-
- use Catalyst qw/... Authentication::Store::DBIC/;
-
- ...
-
- __PACKAGE__->config->{authentication}{dbic} = {
- user_class => 'FilmDB::Actor',
- user_field => 'name',
- password_field => 'password'
- }
-
- "$c->model()" returns a DBIx::Class::ResultSet for the source name
- parameter passed. To find out more about which methods can be called on
- a ResultSet, or how to add your own methods to it, please see the
- ResultSet documentation in the DBIx::Class distribution.
-
- Some examples are given below:
-
- # to access schema methods directly:
- $c->model('FilmDB')->schema->source(...);
-
- # to access the source object, resultset, and class:
- $c->model('FilmDB')->source(...);
- $c->model('FilmDB')->resultset(...);
- $c->model('FilmDB')->class(...);
-
- # For resultsets, there's an even quicker shortcut:
- $c->model('FilmDB::Actor')
- # is the same as $c->model('FilmDB')->resultset('Actor')
-
- # To get the composed schema for making new connections:
- my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
-
- # Or the same thing via a convenience shortcut:
- my $newconn = $c->model('FilmDB')->connect(...);
-
- # or, if your schema works on different storage drivers:
- my $newconn = $c->model('FilmDB')->composed_schema->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
- # and again, a convenience shortcut
- my $newconn = $c->model('FilmDB')->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
-DESCRIPTION
- This is a Catalyst Model for DBIx::Class::Schema-based Models. See the
- documentation for Catalyst::Helper::Model::DBIC::Schema for information
- on generating these Models via Helper scripts.
-
-CONFIG PARAMETERS
- schema_class
- This is the classname of your DBIx::Class::Schema Schema. It needs
- to be findable in @INC, but it does not need to be inside the
- "Catalyst::Model::" namespace. This parameter is required.
-
- connect_info
- This is an arrayref of connection parameters, which are specific to
- your "storage_type" (see your storage type documentation for more
- details).
-
- This is not required if "schema_class" already has connection
- information defined inside itself (which isn't highly recommended,
- but can be done)
-
- For DBIx::Class::Storage::DBI, which is the only supported
- "storage_type" in DBIx::Class at the time of this writing, the
- parameters are your dsn, username, password, and connect options
- hashref.
-
- See "connect_info" in DBIx::Class::Storage::DBI for a detailed
- explanation of the arguments supported.
-
- Examples:
-
- connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
-
- connect_info => [
- 'dbi:SQLite:dbname=foo.db',
- {
- on_connect_do => [
- 'PRAGMA synchronous = OFF',
- ],
- }
- ],
-
- connect_info => [
- 'dbi:Pg:dbname=mypgdb',
- 'postgres',
- '',
- { AutoCommit => 0 },
- {
- on_connect_do => [
- 'some SQL statement',
- 'another SQL statement',
- ],
- }
- ],
-
- storage_type
- Allows the use of a different "storage_type" than what is set in
- your "schema_class" (which in turn defaults to "::DBI" if not set in
- current DBIx::Class). Completely optional, and probably unnecessary
- for most people until other storage backends become available for
- DBIx::Class.
-
-METHODS
- new Instantiates the Model based on the above-documented ->config
- parameters. The only required parameter is "schema_class".
- "connect_info" is required in the case that "schema_class" does not
- already have connection information defined for it.
-
- schema
- Accessor which returns the connected schema being used by the this
- model. There are direct shortcuts on the model class itself for
- schema->resultset, schema->source, and schema->class.
-
- composed_schema
- Accessor which returns the composed schema, which has no connection
- info, which was used in constructing the "schema" above. Useful for
- creating new connections based on the same schema/model. There are
- direct shortcuts from the model object for composed_schema->clone
- and composed_schema->connect
-
- clone
- Shortcut for ->composed_schema->clone
-
- connect
- Shortcut for ->composed_schema->connect
-
- source
- Shortcut for ->schema->source
-
- class
- Shortcut for ->schema->class
-
- resultset
- Shortcut for ->schema->resultset
-
- storage
- Provides an accessor for the connected schema's storage object. Used
- often for debugging and controlling transactions.
-
-SEE ALSO
- General Catalyst Stuff:
-
- Catalyst::Manual, Catalyst::Test, Catalyst::Request, Catalyst::Response,
- Catalyst::Helper, Catalyst,
-
- Stuff related to DBIC and this Model style:
-
- DBIx::Class, DBIx::Class::Schema, DBIx::Class::Schema::Loader,
- Catalyst::Helper::Model::DBIC::Schema
-
-AUTHOR
- Brandon L Black, "blblack at gmail.com"
-
-COPYRIGHT
- This program is free software, you can redistribute it and/or modify it
- under the same terms as Perl itself.
-
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/README (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/README)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/README (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/README 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,228 @@
+NAME
+ Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
+
+SYNOPSIS
+ Manual creation of a DBIx::Class::Schema and a
+ Catalyst::Model::DBIC::Schema:
+
+ 1. Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
+
+ package MyApp::Schema::FilmDB;
+ use base qw/DBIx::Class::Schema/;
+
+ __PACKAGE__->load_classes(qw/Actor Role/);
+
+ 2. Create some classes for the tables in the database, for example an
+ Actor in MyApp/Schema/FilmDB/Actor.pm:
+
+ package MyApp::Schema::FilmDB::Actor;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('actor');
+
+ ...
+
+ and a Role in MyApp/Schema/Role.pm:
+
+ package MyApp::Schema::FilmDB::Role;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('role');
+
+ ...
+
+ Notice that the schema is in MyApp::Schema, not in MyApp::Model.
+ This way it's usable as a standalone module and you can test/run it
+ without Catalyst.
+
+ 3. To expose it to Catalyst as a model, you should create a DBIC Model
+ in MyApp/Model/FilmDB.pm:
+
+ package MyApp::Model::FilmDB;
+ use base qw/Catalyst::Model::DBIC::Schema/;
+
+ __PACKAGE__->config(
+ schema_class => 'MyApp::Schema::FilmDB',
+ connect_info => [
+ "DBI:...",
+ "username",
+ "password",
+ {AutoCommit => 1}
+ ]
+ );
+
+ See below for a full list of the possible config parameters.
+
+ Now you have a working Model, accessing your separate DBIC Schema. Which
+ can be used/accessed in the normal Catalyst manner, via $c->model():
+
+ my $actor = $c->model('FilmDB::Actor')->find(1);
+
+ You can also use it to set up DBIC authentication with
+ Authentication::Store::DBIC in MyApp.pm:
+
+ package MyApp;
+
+ use Catalyst qw/... Authentication::Store::DBIC/;
+
+ ...
+
+ __PACKAGE__->config->{authentication}{dbic} = {
+ user_class => 'FilmDB::Actor',
+ user_field => 'name',
+ password_field => 'password'
+ }
+
+ "$c->model()" returns a DBIx::Class::ResultSet for the source name
+ parameter passed. To find out more about which methods can be called on
+ a ResultSet, or how to add your own methods to it, please see the
+ ResultSet documentation in the DBIx::Class distribution.
+
+ Some examples are given below:
+
+ # to access schema methods directly:
+ $c->model('FilmDB')->schema->source(...);
+
+ # to access the source object, resultset, and class:
+ $c->model('FilmDB')->source(...);
+ $c->model('FilmDB')->resultset(...);
+ $c->model('FilmDB')->class(...);
+
+ # For resultsets, there's an even quicker shortcut:
+ $c->model('FilmDB::Actor')
+ # is the same as $c->model('FilmDB')->resultset('Actor')
+
+ # To get the composed schema for making new connections:
+ my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
+
+ # Or the same thing via a convenience shortcut:
+ my $newconn = $c->model('FilmDB')->connect(...);
+
+ # or, if your schema works on different storage drivers:
+ my $newconn = $c->model('FilmDB')->composed_schema->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+ # and again, a convenience shortcut
+ my $newconn = $c->model('FilmDB')->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+DESCRIPTION
+ This is a Catalyst Model for DBIx::Class::Schema-based Models. See the
+ documentation for Catalyst::Helper::Model::DBIC::Schema for information
+ on generating these Models via Helper scripts.
+
+CONFIG PARAMETERS
+ schema_class
+ This is the classname of your DBIx::Class::Schema Schema. It needs
+ to be findable in @INC, but it does not need to be inside the
+ "Catalyst::Model::" namespace. This parameter is required.
+
+ connect_info
+ This is an arrayref of connection parameters, which are specific to
+ your "storage_type" (see your storage type documentation for more
+ details).
+
+ This is not required if "schema_class" already has connection
+ information defined inside itself (which isn't highly recommended,
+ but can be done)
+
+ For DBIx::Class::Storage::DBI, which is the only supported
+ "storage_type" in DBIx::Class at the time of this writing, the
+ parameters are your dsn, username, password, and connect options
+ hashref.
+
+ See "connect_info" in DBIx::Class::Storage::DBI for a detailed
+ explanation of the arguments supported.
+
+ Examples:
+
+ connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
+
+ connect_info => [
+ 'dbi:SQLite:dbname=foo.db',
+ {
+ on_connect_do => [
+ 'PRAGMA synchronous = OFF',
+ ],
+ }
+ ],
+
+ connect_info => [
+ 'dbi:Pg:dbname=mypgdb',
+ 'postgres',
+ '',
+ { AutoCommit => 0 },
+ {
+ on_connect_do => [
+ 'some SQL statement',
+ 'another SQL statement',
+ ],
+ }
+ ],
+
+ storage_type
+ Allows the use of a different "storage_type" than what is set in
+ your "schema_class" (which in turn defaults to "::DBI" if not set in
+ current DBIx::Class). Completely optional, and probably unnecessary
+ for most people until other storage backends become available for
+ DBIx::Class.
+
+METHODS
+ new Instantiates the Model based on the above-documented ->config
+ parameters. The only required parameter is "schema_class".
+ "connect_info" is required in the case that "schema_class" does not
+ already have connection information defined for it.
+
+ schema
+ Accessor which returns the connected schema being used by the this
+ model. There are direct shortcuts on the model class itself for
+ schema->resultset, schema->source, and schema->class.
+
+ composed_schema
+ Accessor which returns the composed schema, which has no connection
+ info, which was used in constructing the "schema" above. Useful for
+ creating new connections based on the same schema/model. There are
+ direct shortcuts from the model object for composed_schema->clone
+ and composed_schema->connect
+
+ clone
+ Shortcut for ->composed_schema->clone
+
+ connect
+ Shortcut for ->composed_schema->connect
+
+ source
+ Shortcut for ->schema->source
+
+ class
+ Shortcut for ->schema->class
+
+ resultset
+ Shortcut for ->schema->resultset
+
+ storage
+ Provides an accessor for the connected schema's storage object. Used
+ often for debugging and controlling transactions.
+
+SEE ALSO
+ General Catalyst Stuff:
+
+ Catalyst::Manual, Catalyst::Test, Catalyst::Request, Catalyst::Response,
+ Catalyst::Helper, Catalyst,
+
+ Stuff related to DBIC and this Model style:
+
+ DBIx::Class, DBIx::Class::Schema, DBIx::Class::Schema::Loader,
+ Catalyst::Helper::Model::DBIC::Schema
+
+AUTHOR
+ Brandon L Black, "blblack at gmail.com"
+
+COPYRIGHT
+ This program is free software, you can redistribute it and/or modify it
+ under the same terms as Perl itself.
+
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib)
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst)
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper)
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,237 +0,0 @@
-package Catalyst::Helper::Model::DBIC::Schema;
-
-use strict;
-use warnings;
-
-our $VERSION = '0.20';
-
-use Carp;
-use UNIVERSAL::require;
-
-=head1 NAME
-
-Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
-
-=head1 SYNOPSIS
-
- script/create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
-
-=head1 DESCRIPTION
-
-Helper for the DBIC Schema Models.
-
-=head2 Arguments:
-
-C<CatalystModelName> is the short name for the Catalyst Model class
-being generated (i.e. callable with C<$c-E<gt>model('CatalystModelName')>).
-
-C<MyApp::SchemaClass> is the fully qualified classname of your Schema,
-which might or might not yet exist. Note that you should have a good
-reason to create this under a new global namespace, otherwise use an
-existing top level namespace for your schema class.
-
-C<create=dynamic> instructs this Helper to generate the named Schema
-class for you, basing it on L<DBIx::Class::Schema::Loader> (which
-means the table information will always be dynamically loaded at
-runtime from the database).
-
-C<create=static> instructs this Helper to generate the named Schema
-class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
-mode to create a standard, manually-defined L<DBIx::Class::Schema>
-setup, based on what the Loader sees in your database at this moment.
-A Schema/Model pair generated this way will not require
-L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
-adapt itself to changes in your database structure. You can edit
-the generated classes by hand to refine them.
-
-C<connect_info> arguments are the same as what
-DBIx::Class::Schema::connect expects, and are storage_type-specific.
-For DBI-based storage, these arguments are the dsn, username,
-password, and connect options, respectively. These are optional for
-existing Schemas, but required if you use either of the C<create=>
-options.
-
-Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
-
-=head1 TYPICAL EXAMPLES
-
- # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
- # and a Model which references it:
- script/myapp_create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass create=static dbi:mysql:foodb myuname mypass
-
- # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
- # and a Model which references it:
- script/myapp_create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
-
- # Reference an existing Schema of any kind, and provide some connection information for ->config:
- script/myapp_create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass dbi:mysql:foodb myuname mypass
-
- # Same, but don't supply connect information yet (you'll need to do this
- # in your app config, or [not recommended] in the schema itself).
- script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
-
-=head1 METHODS
-
-=head2 mk_compclass
-
-=cut
-
-sub mk_compclass {
- my ( $self, $helper, $schema_class, @connect_info) = @_;
-
- $helper->{schema_class} = $schema_class
- or croak "Must supply schema class name";
-
- my $create = '';
- if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
- $create = $1;
- shift @connect_info;
- }
-
- if(@connect_info) {
- $helper->{setup_connect_info} = 1;
- my @helper_connect_info = @connect_info;
- for(@helper_connect_info) {
- $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
- }
- $helper->{connect_info} = \@helper_connect_info;
- }
-
- if($create eq 'dynamic') {
- my @schema_parts = split(/\:\:/, $helper->{schema_class});
- my $schema_file_part = pop @schema_parts;
-
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
- my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
-
- $helper->mk_dir($schema_dir);
- $helper->render_file( 'schemaclass', $schema_file );
- }
- elsif($create eq 'static') {
- my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
- DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
- or croak "Cannot load DBIx::Class::Schema::Loader: $@";
-
- my @loader_connect_info = @connect_info;
- my $num = 6; # argument number on the commandline for "dbi:..."
- for(@loader_connect_info) {
- if(/^\s*[[{]/) {
- $_ = eval "$_";
- croak "Perl syntax error in commandline argument $num: $@" if $@;
- }
- $num++;
- }
-
- make_schema_at(
- $schema_class,
- { relationships => 1 },
- \@loader_connect_info,
- );
- }
-
- my $file = $helper->{file};
- $helper->render_file( 'compclass', $file );
-}
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__DATA__
-
-=begin pod_to_ignore
-
-__schemaclass__
-package [% schema_class %];
-
-use strict;
-use base qw/DBIx::Class::Schema::Loader/;
-
-__PACKAGE__->loader_options(
- relationships => 1,
- # debug => 1,
-);
-
-=head1 NAME
-
-[% schema_class %] - DBIx::Class::Schema::Loader class
-
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
-
-__compclass__
-package [% class %];
-
-use strict;
-use base 'Catalyst::Model::DBIC::Schema';
-
-__PACKAGE__->config(
- schema_class => '[% schema_class %]',
- [% IF setup_connect_info %]connect_info => [
- [% FOREACH arg = connect_info %][% arg %],
- [% END %]
- ],[% END %]
-);
-
-=head1 NAME
-
-[% class %] - Catalyst DBIC Schema Model
-=head1 SYNOPSIS
-
-See L<[% app %]>
-
-=head1 DESCRIPTION
-
-L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
-
-=head1 AUTHOR
-
-[% author %]
-
-=head1 LICENSE
-
-This library is free software, you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Helper/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,237 @@
+package Catalyst::Helper::Model::DBIC::Schema;
+
+use strict;
+use warnings;
+
+our $VERSION = '0.20';
+
+use Carp;
+use UNIVERSAL::require;
+
+=head1 NAME
+
+Catalyst::Helper::Model::DBIC::Schema - Helper for DBIC Schema Models
+
+=head1 SYNOPSIS
+
+ script/create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
+
+=head1 DESCRIPTION
+
+Helper for the DBIC Schema Models.
+
+=head2 Arguments:
+
+C<CatalystModelName> is the short name for the Catalyst Model class
+being generated (i.e. callable with C<$c-E<gt>model('CatalystModelName')>).
+
+C<MyApp::SchemaClass> is the fully qualified classname of your Schema,
+which might or might not yet exist. Note that you should have a good
+reason to create this under a new global namespace, otherwise use an
+existing top level namespace for your schema class.
+
+C<create=dynamic> instructs this Helper to generate the named Schema
+class for you, basing it on L<DBIx::Class::Schema::Loader> (which
+means the table information will always be dynamically loaded at
+runtime from the database).
+
+C<create=static> instructs this Helper to generate the named Schema
+class for you, using L<DBIx::Class::Schema::Loader> in "one shot"
+mode to create a standard, manually-defined L<DBIx::Class::Schema>
+setup, based on what the Loader sees in your database at this moment.
+A Schema/Model pair generated this way will not require
+L<DBIx::Class::Schema::Loader> at runtime, and will not automatically
+adapt itself to changes in your database structure. You can edit
+the generated classes by hand to refine them.
+
+C<connect_info> arguments are the same as what
+DBIx::Class::Schema::connect expects, and are storage_type-specific.
+For DBI-based storage, these arguments are the dsn, username,
+password, and connect options, respectively. These are optional for
+existing Schemas, but required if you use either of the C<create=>
+options.
+
+Use of either of the C<create=> options requires L<DBIx::Class::Schema::Loader>.
+
+=head1 TYPICAL EXAMPLES
+
+ # Use DBIx::Class::Schema::Loader to create a static DBIx::Class::Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass create=static dbi:mysql:foodb myuname mypass
+
+ # Create a dynamic DBIx::Class::Schema::Loader-based Schema,
+ # and a Model which references it:
+ script/myapp_create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass create=dynamic dbi:mysql:foodb myuname mypass
+
+ # Reference an existing Schema of any kind, and provide some connection information for ->config:
+ script/myapp_create.pl model CatalystModelName DBIC::Schema MyApp::SchemaClass dbi:mysql:foodb myuname mypass
+
+ # Same, but don't supply connect information yet (you'll need to do this
+ # in your app config, or [not recommended] in the schema itself).
+ script/myapp_create.pl model ModelName DBIC::Schema My::SchemaClass
+
+=head1 METHODS
+
+=head2 mk_compclass
+
+=cut
+
+sub mk_compclass {
+ my ( $self, $helper, $schema_class, @connect_info) = @_;
+
+ $helper->{schema_class} = $schema_class
+ or croak "Must supply schema class name";
+
+ my $create = '';
+ if($connect_info[0] && $connect_info[0] =~ /^create=(dynamic|static)$/) {
+ $create = $1;
+ shift @connect_info;
+ }
+
+ if(@connect_info) {
+ $helper->{setup_connect_info} = 1;
+ my @helper_connect_info = @connect_info;
+ for(@helper_connect_info) {
+ $_ = qq{'$_'} if $_ !~ /^\s*[[{]/;
+ }
+ $helper->{connect_info} = \@helper_connect_info;
+ }
+
+ if($create eq 'dynamic') {
+ my @schema_parts = split(/\:\:/, $helper->{schema_class});
+ my $schema_file_part = pop @schema_parts;
+
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib', @schema_parts );
+ my $schema_file = File::Spec->catfile( $schema_dir, $schema_file_part . '.pm' );
+
+ $helper->mk_dir($schema_dir);
+ $helper->render_file( 'schemaclass', $schema_file );
+ }
+ elsif($create eq 'static') {
+ my $schema_dir = File::Spec->catfile( $helper->{base}, 'lib' );
+ DBIx::Class::Schema::Loader->use("dump_to_dir:$schema_dir", 'make_schema_at')
+ or croak "Cannot load DBIx::Class::Schema::Loader: $@";
+
+ my @loader_connect_info = @connect_info;
+ my $num = 6; # argument number on the commandline for "dbi:..."
+ for(@loader_connect_info) {
+ if(/^\s*[[{]/) {
+ $_ = eval "$_";
+ croak "Perl syntax error in commandline argument $num: $@" if $@;
+ }
+ $num++;
+ }
+
+ make_schema_at(
+ $schema_class,
+ { relationships => 1 },
+ \@loader_connect_info,
+ );
+ }
+
+ my $file = $helper->{file};
+ $helper->render_file( 'compclass', $file );
+}
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__DATA__
+
+=begin pod_to_ignore
+
+__schemaclass__
+package [% schema_class %];
+
+use strict;
+use base qw/DBIx::Class::Schema::Loader/;
+
+__PACKAGE__->loader_options(
+ relationships => 1,
+ # debug => 1,
+);
+
+=head1 NAME
+
+[% schema_class %] - DBIx::Class::Schema::Loader class
+
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+Generated by L<Catalyst::Model::DBIC::Schema> for use in L<[% class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__compclass__
+package [% class %];
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+ schema_class => '[% schema_class %]',
+ [% IF setup_connect_info %]connect_info => [
+ [% FOREACH arg = connect_info %][% arg %],
+ [% END %]
+ ],[% END %]
+);
+
+=head1 NAME
+
+[% class %] - Catalyst DBIC Schema Model
+=head1 SYNOPSIS
+
+See L<[% app %]>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using schema L<[% schema_class %]>
+
+=head1 AUTHOR
+
+[% author %]
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model)
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,335 +0,0 @@
-package Catalyst::Model::DBIC::Schema;
-
-use strict;
-use warnings;
-
-our $VERSION = '0.20';
-
-use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
-use NEXT;
-use UNIVERSAL::require;
-use Carp;
-use Data::Dumper;
-require DBIx::Class;
-
-__PACKAGE__->mk_classaccessor('composed_schema');
-__PACKAGE__->mk_accessors('schema');
-
-=head1 NAME
-
-Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
-
-=head1 SYNOPSIS
-
-Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
-
-=over
-
-=item 1.
-
-Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
-
- package MyApp::Schema::FilmDB;
- use base qw/DBIx::Class::Schema/;
-
- __PACKAGE__->load_classes(qw/Actor Role/);
-
-=item 2.
-
-Create some classes for the tables in the database, for example an
-Actor in MyApp/Schema/FilmDB/Actor.pm:
-
- package MyApp::Schema::FilmDB::Actor;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('actor');
-
- ...
-
-and a Role in MyApp/Schema/Role.pm:
-
- package MyApp::Schema::FilmDB::Role;
- use base qw/DBIx::Class/
-
- __PACKAGE__->load_components(qw/Core/);
- __PACKAGE__->table('role');
-
- ...
-
-Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
-usable as a standalone module and you can test/run it without Catalyst.
-
-=item 3.
-
-To expose it to Catalyst as a model, you should create a DBIC Model in
-MyApp/Model/FilmDB.pm:
-
- package MyApp::Model::FilmDB;
- use base qw/Catalyst::Model::DBIC::Schema/;
-
- __PACKAGE__->config(
- schema_class => 'MyApp::Schema::FilmDB',
- connect_info => [
- "DBI:...",
- "username",
- "password",
- {AutoCommit => 1}
- ]
- );
-
-See below for a full list of the possible config parameters.
-
-=back
-
-Now you have a working Model, accessing your separate DBIC Schema. Which can
-be used/accessed in the normal Catalyst manner, via $c->model():
-
- my $actor = $c->model('FilmDB::Actor')->find(1);
-
-You can also use it to set up DBIC authentication with
-Authentication::Store::DBIC in MyApp.pm:
-
- package MyApp;
-
- use Catalyst qw/... Authentication::Store::DBIC/;
-
- ...
-
- __PACKAGE__->config->{authentication}{dbic} = {
- user_class => 'FilmDB::Actor',
- user_field => 'name',
- password_field => 'password'
- }
-
-C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
-parameter passed. To find out more about which methods can be called on a
-ResultSet, or how to add your own methods to it, please see the ResultSet
-documentation in the L<DBIx::Class> distribution.
-
-Some examples are given below:
-
- # to access schema methods directly:
- $c->model('FilmDB')->schema->source(...);
-
- # to access the source object, resultset, and class:
- $c->model('FilmDB')->source(...);
- $c->model('FilmDB')->resultset(...);
- $c->model('FilmDB')->class(...);
-
- # For resultsets, there's an even quicker shortcut:
- $c->model('FilmDB::Actor')
- # is the same as $c->model('FilmDB')->resultset('Actor')
-
- # To get the composed schema for making new connections:
- my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
-
- # Or the same thing via a convenience shortcut:
- my $newconn = $c->model('FilmDB')->connect(...);
-
- # or, if your schema works on different storage drivers:
- my $newconn = $c->model('FilmDB')->composed_schema->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
- # and again, a convenience shortcut
- my $newconn = $c->model('FilmDB')->clone();
- $newconn->storage_type('::LDAP');
- $newconn->connection(...);
-
-=head1 DESCRIPTION
-
-This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
-the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
-information on generating these Models via Helper scripts.
-
-=head1 CONFIG PARAMETERS
-
-=over 4
-
-=item schema_class
-
-This is the classname of your L<DBIx::Class::Schema> Schema. It needs
-to be findable in C<@INC>, but it does not need to be inside the
-C<Catalyst::Model::> namespace. This parameter is required.
-
-=item 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).
-
-This is not required if C<schema_class> already has connection information
-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
-parameters are your dsn, username, password, and connect options hashref.
-
-See L<DBIx::Class::Storage::DBI/connect_info> for a detailed explanation
-of the arguments supported.
-
-Examples:
-
- connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
-
- connect_info => [
- 'dbi:SQLite:dbname=foo.db',
- {
- on_connect_do => [
- 'PRAGMA synchronous = OFF',
- ],
- }
- ],
-
- connect_info => [
- 'dbi:Pg:dbname=mypgdb',
- 'postgres',
- '',
- { AutoCommit => 0 },
- {
- on_connect_do => [
- 'some SQL statement',
- 'another SQL statement',
- ],
- }
- ],
-
-=item storage_type
-
-Allows the use of a different C<storage_type> than what is set in your
-C<schema_class> (which in turn defaults to C<::DBI> if not set in current
-L<DBIx::Class>). Completely optional, and probably unnecessary for most
-people until other storage backends become available for L<DBIx::Class>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item new
-
-Instantiates the Model based on the above-documented ->config parameters.
-The only required parameter is C<schema_class>. C<connect_info> is
-required in the case that C<schema_class> does not already have connection
-information defined for it.
-
-=item schema
-
-Accessor which returns the connected schema being used by the this model.
-There are direct shortcuts on the model class itself for
-schema->resultset, schema->source, and schema->class.
-
-=item composed_schema
-
-Accessor which returns the composed schema, which has no connection info,
-which was used in constructing the C<schema> above. Useful for creating
-new connections based on the same schema/model. There are direct shortcuts
-from the model object for composed_schema->clone and composed_schema->connect
-
-=item clone
-
-Shortcut for ->composed_schema->clone
-
-=item connect
-
-Shortcut for ->composed_schema->connect
-
-=item source
-
-Shortcut for ->schema->source
-
-=item class
-
-Shortcut for ->schema->class
-
-=item resultset
-
-Shortcut for ->schema->resultset
-
-=item storage
-
-Provides an accessor for the connected schema's storage object.
-Used often for debugging and controlling transactions.
-
-=back
-
-=cut
-
-sub new {
- my $self = shift->NEXT::new(@_);
-
- my $class = ref($self);
- my $model_name = $class;
- $model_name =~ s/^[\w:]+::(?:Model|M):://;
-
- croak "->config->{schema_class} must be defined for this model"
- unless $self->{schema_class};
-
- my $schema_class = $self->{schema_class};
-
- $schema_class->require
- or croak "Cannot load schema class '$schema_class': $@";
-
- if( !$self->{connect_info} ) {
- if($schema_class->storage && $schema_class->storage->connect_info) {
- $self->{connect_info} = $schema_class->storage->connect_info;
- }
- else {
- croak "Either ->config->{connect_info} must be defined for $class"
- . " or $schema_class must have connect info defined on it"
- . "Here's what we got:\n"
- . Dumper($self);
- }
- }
-
- $self->composed_schema($schema_class->compose_namespace($class));
- $self->schema($self->composed_schema->clone);
-
- $self->schema->storage_type($self->{storage_type})
- if $self->{storage_type};
-
- $self->schema->connection(@{$self->{connect_info}});
-
- no strict 'refs';
- foreach my $moniker ($self->schema->sources) {
- my $classname = "${class}::$moniker";
- *{"${classname}::ACCEPT_CONTEXT"} = sub {
- shift;
- shift->model($model_name)->resultset($moniker);
- }
- }
-
- return $self;
-}
-
-sub clone { shift->composed_schema->clone(@_); }
-
-sub connect { shift->composed_schema->connect(@_); }
-
-sub storage { shift->schema->storage(@_); }
-
-=head1 SEE ALSO
-
-General Catalyst Stuff:
-
-L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
-L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
-
-Stuff related to DBIC and this Model style:
-
-L<DBIx::Class>, L<DBIx::Class::Schema>,
-L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
-
-=head1 AUTHOR
-
-Brandon L Black, C<blblack at gmail.com>
-
-=head1 COPYRIGHT
-
-This program is free software, you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/lib/Catalyst/Model/DBIC/Schema.pm 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,335 @@
+package Catalyst::Model::DBIC::Schema;
+
+use strict;
+use warnings;
+
+our $VERSION = '0.20';
+
+use base qw/Catalyst::Model Class::Accessor::Fast Class::Data::Accessor/;
+use NEXT;
+use UNIVERSAL::require;
+use Carp;
+use Data::Dumper;
+require DBIx::Class;
+
+__PACKAGE__->mk_classaccessor('composed_schema');
+__PACKAGE__->mk_accessors('schema');
+
+=head1 NAME
+
+Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
+
+=head1 SYNOPSIS
+
+Manual creation of a DBIx::Class::Schema and a Catalyst::Model::DBIC::Schema:
+
+=over
+
+=item 1.
+
+Create the DBIx:Class schema in MyApp/Schema/FilmDB.pm:
+
+ package MyApp::Schema::FilmDB;
+ use base qw/DBIx::Class::Schema/;
+
+ __PACKAGE__->load_classes(qw/Actor Role/);
+
+=item 2.
+
+Create some classes for the tables in the database, for example an
+Actor in MyApp/Schema/FilmDB/Actor.pm:
+
+ package MyApp::Schema::FilmDB::Actor;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('actor');
+
+ ...
+
+and a Role in MyApp/Schema/Role.pm:
+
+ package MyApp::Schema::FilmDB::Role;
+ use base qw/DBIx::Class/
+
+ __PACKAGE__->load_components(qw/Core/);
+ __PACKAGE__->table('role');
+
+ ...
+
+Notice that the schema is in MyApp::Schema, not in MyApp::Model. This way it's
+usable as a standalone module and you can test/run it without Catalyst.
+
+=item 3.
+
+To expose it to Catalyst as a model, you should create a DBIC Model in
+MyApp/Model/FilmDB.pm:
+
+ package MyApp::Model::FilmDB;
+ use base qw/Catalyst::Model::DBIC::Schema/;
+
+ __PACKAGE__->config(
+ schema_class => 'MyApp::Schema::FilmDB',
+ connect_info => [
+ "DBI:...",
+ "username",
+ "password",
+ {AutoCommit => 1}
+ ]
+ );
+
+See below for a full list of the possible config parameters.
+
+=back
+
+Now you have a working Model, accessing your separate DBIC Schema. Which can
+be used/accessed in the normal Catalyst manner, via $c->model():
+
+ my $actor = $c->model('FilmDB::Actor')->find(1);
+
+You can also use it to set up DBIC authentication with
+Authentication::Store::DBIC in MyApp.pm:
+
+ package MyApp;
+
+ use Catalyst qw/... Authentication::Store::DBIC/;
+
+ ...
+
+ __PACKAGE__->config->{authentication}{dbic} = {
+ user_class => 'FilmDB::Actor',
+ user_field => 'name',
+ password_field => 'password'
+ }
+
+C<< $c->model() >> returns a L<DBIx::Class::ResultSet> for the source name
+parameter passed. To find out more about which methods can be called on a
+ResultSet, or how to add your own methods to it, please see the ResultSet
+documentation in the L<DBIx::Class> distribution.
+
+Some examples are given below:
+
+ # to access schema methods directly:
+ $c->model('FilmDB')->schema->source(...);
+
+ # to access the source object, resultset, and class:
+ $c->model('FilmDB')->source(...);
+ $c->model('FilmDB')->resultset(...);
+ $c->model('FilmDB')->class(...);
+
+ # For resultsets, there's an even quicker shortcut:
+ $c->model('FilmDB::Actor')
+ # is the same as $c->model('FilmDB')->resultset('Actor')
+
+ # To get the composed schema for making new connections:
+ my $newconn = $c->model('FilmDB')->composed_schema->connect(...);
+
+ # Or the same thing via a convenience shortcut:
+ my $newconn = $c->model('FilmDB')->connect(...);
+
+ # or, if your schema works on different storage drivers:
+ my $newconn = $c->model('FilmDB')->composed_schema->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+ # and again, a convenience shortcut
+ my $newconn = $c->model('FilmDB')->clone();
+ $newconn->storage_type('::LDAP');
+ $newconn->connection(...);
+
+=head1 DESCRIPTION
+
+This is a Catalyst Model for L<DBIx::Class::Schema>-based Models. See
+the documentation for L<Catalyst::Helper::Model::DBIC::Schema> for
+information on generating these Models via Helper scripts.
+
+=head1 CONFIG PARAMETERS
+
+=over 4
+
+=item schema_class
+
+This is the classname of your L<DBIx::Class::Schema> Schema. It needs
+to be findable in C<@INC>, but it does not need to be inside the
+C<Catalyst::Model::> namespace. This parameter is required.
+
+=item 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).
+
+This is not required if C<schema_class> already has connection information
+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
+parameters are your dsn, username, password, and connect options hashref.
+
+See L<DBIx::Class::Storage::DBI/connect_info> for a detailed explanation
+of the arguments supported.
+
+Examples:
+
+ connect_info => [ 'dbi:Pg:dbname=mypgdb', 'postgres', '' ],
+
+ connect_info => [
+ 'dbi:SQLite:dbname=foo.db',
+ {
+ on_connect_do => [
+ 'PRAGMA synchronous = OFF',
+ ],
+ }
+ ],
+
+ connect_info => [
+ 'dbi:Pg:dbname=mypgdb',
+ 'postgres',
+ '',
+ { AutoCommit => 0 },
+ {
+ on_connect_do => [
+ 'some SQL statement',
+ 'another SQL statement',
+ ],
+ }
+ ],
+
+=item storage_type
+
+Allows the use of a different C<storage_type> than what is set in your
+C<schema_class> (which in turn defaults to C<::DBI> if not set in current
+L<DBIx::Class>). Completely optional, and probably unnecessary for most
+people until other storage backends become available for L<DBIx::Class>.
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new
+
+Instantiates the Model based on the above-documented ->config parameters.
+The only required parameter is C<schema_class>. C<connect_info> is
+required in the case that C<schema_class> does not already have connection
+information defined for it.
+
+=item schema
+
+Accessor which returns the connected schema being used by the this model.
+There are direct shortcuts on the model class itself for
+schema->resultset, schema->source, and schema->class.
+
+=item composed_schema
+
+Accessor which returns the composed schema, which has no connection info,
+which was used in constructing the C<schema> above. Useful for creating
+new connections based on the same schema/model. There are direct shortcuts
+from the model object for composed_schema->clone and composed_schema->connect
+
+=item clone
+
+Shortcut for ->composed_schema->clone
+
+=item connect
+
+Shortcut for ->composed_schema->connect
+
+=item source
+
+Shortcut for ->schema->source
+
+=item class
+
+Shortcut for ->schema->class
+
+=item resultset
+
+Shortcut for ->schema->resultset
+
+=item storage
+
+Provides an accessor for the connected schema's storage object.
+Used often for debugging and controlling transactions.
+
+=back
+
+=cut
+
+sub new {
+ my $self = shift->NEXT::new(@_);
+
+ my $class = ref($self);
+ my $model_name = $class;
+ $model_name =~ s/^[\w:]+::(?:Model|M):://;
+
+ croak "->config->{schema_class} must be defined for this model"
+ unless $self->{schema_class};
+
+ my $schema_class = $self->{schema_class};
+
+ $schema_class->require
+ or croak "Cannot load schema class '$schema_class': $@";
+
+ if( !$self->{connect_info} ) {
+ if($schema_class->storage && $schema_class->storage->connect_info) {
+ $self->{connect_info} = $schema_class->storage->connect_info;
+ }
+ else {
+ croak "Either ->config->{connect_info} must be defined for $class"
+ . " or $schema_class must have connect info defined on it"
+ . "Here's what we got:\n"
+ . Dumper($self);
+ }
+ }
+
+ $self->composed_schema($schema_class->compose_namespace($class));
+ $self->schema($self->composed_schema->clone);
+
+ $self->schema->storage_type($self->{storage_type})
+ if $self->{storage_type};
+
+ $self->schema->connection(@{$self->{connect_info}});
+
+ no strict 'refs';
+ foreach my $moniker ($self->schema->sources) {
+ my $classname = "${class}::$moniker";
+ *{"${classname}::ACCEPT_CONTEXT"} = sub {
+ shift;
+ shift->model($model_name)->resultset($moniker);
+ }
+ }
+
+ return $self;
+}
+
+sub clone { shift->composed_schema->clone(@_); }
+
+sub connect { shift->composed_schema->connect(@_); }
+
+sub storage { shift->schema->storage(@_); }
+
+=head1 SEE ALSO
+
+General Catalyst Stuff:
+
+L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
+L<Catalyst::Response>, L<Catalyst::Helper>, L<Catalyst>,
+
+Stuff related to DBIC and this Model style:
+
+L<DBIx::Class>, L<DBIx::Class::Schema>,
+L<DBIx::Class::Schema::Loader>, L<Catalyst::Helper::Model::DBIC::Schema>
+
+=head1 AUTHOR
+
+Brandon L Black, C<blblack at gmail.com>
+
+=head1 COPYRIGHT
+
+This program is free software, you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/t)
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use strict;
-use Test::More tests => 2;
-
-BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
-BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/01use.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use strict;
+use Test::More tests => 2;
+
+BEGIN { use_ok('Catalyst::Model::DBIC::Schema') }
+BEGIN { use_ok('Catalyst::Helper::Model::DBIC::Schema') }
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,8 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod 1.14";
-plan skip_all => 'Test::Pod 1.14 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_files_ok();
-
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/02pod.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,8 @@
+use Test::More;
+
+eval "use Test::Pod 1.14";
+plan skip_all => 'Test::Pod 1.14 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_files_ok();
+
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,7 +0,0 @@
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.04";
-plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
-plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
-
-all_pod_coverage_ok();
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/03podcoverage.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,7 @@
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_coverage_ok();
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,5 +0,0 @@
-use Test::More;
-
-eval { require Test::Kwalitee; Test::Kwalitee->import() };
-
-plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/04kwalitee.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,5 @@
+use Test::More;
+
+eval { require Test::Kwalitee; Test::Kwalitee->import() };
+
+plan( skip_all => 'Test::Kwalitee not installed; skipping' ) if $@;
Deleted: tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t 2009-07-24 16:12:19 UTC (rev 10972)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -1,46 +0,0 @@
-use strict;
-use Test::More;
-use FindBin;
-use File::Spec;
-use File::Find;
-
-plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
- unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
-
-# XXX this test needs a re-write to fully test the current set of capabilities...
-
-my $test_params = [
- [ 'TestSchema', 'DBIC::Schema', '' ],
- [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass "{ AutoCommit => 1 }"} ],
-];
-
-plan tests => (2 * @$test_params);
-
-my $test_dir = $FindBin::Bin;
-my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
-my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
-my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
-my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
-my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
-
-chdir($test_dir);
-system("catalyst.pl TestApp");
-chdir($cat_dir);
-
-foreach my $tparam (@$test_params) {
- my ($model, $helper, $args) = @$tparam;
- system("$^X -I$blib_dir $creator model $model $helper $model $args");
- my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
- ok( -f $model_path, "$model_path is a file" );
- my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
- ok($compile_rv == 0, "perl -c $model_path");
-}
-
-chdir($test_dir);
-
-sub rm_rf {
- my $name = $File::Find::name;
- if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
- else { unlink $name or die "Cannot unlink $name: $!" }
-}
-finddepth(\&rm_rf, $cat_dir);
Copied: tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t (from rev 10972, tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t)
===================================================================
--- tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t (rev 0)
+++ tags/Catalyst-Model-DBIC-Schema/0.20/t/05testapp.t 2009-07-29 22:06:07 UTC (rev 11004)
@@ -0,0 +1,46 @@
+use strict;
+use Test::More;
+use FindBin;
+use File::Spec;
+use File::Find;
+
+plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
+ unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
+
+# XXX this test needs a re-write to fully test the current set of capabilities...
+
+my $test_params = [
+ [ 'TestSchema', 'DBIC::Schema', '' ],
+ [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass "{ AutoCommit => 1 }"} ],
+];
+
+plan tests => (2 * @$test_params);
+
+my $test_dir = $FindBin::Bin;
+my $blib_dir = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
+my $cat_dir = File::Spec->catdir ($test_dir, 'TestApp');
+my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
+my $creator = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
+my $model_dir = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
+
+chdir($test_dir);
+system("catalyst.pl TestApp");
+chdir($cat_dir);
+
+foreach my $tparam (@$test_params) {
+ my ($model, $helper, $args) = @$tparam;
+ system("$^X -I$blib_dir $creator model $model $helper $model $args");
+ my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
+ ok( -f $model_path, "$model_path is a file" );
+ my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
+ ok($compile_rv == 0, "perl -c $model_path");
+}
+
+chdir($test_dir);
+
+sub rm_rf {
+ my $name = $File::Find::name;
+ if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
+ else { unlink $name or die "Cannot unlink $name: $!" }
+}
+finddepth(\&rm_rf, $cat_dir);
More information about the Catalyst-commits
mailing list