Re: [Catalyst] sub-modules for model

2013-01-10 Thread Alejandro Imass
On Wed, Dec 19, 2012 at 12:53 PM, will trillich
will.trill...@serensoft.com wrote:

 Spent a bit of time googlilng this and apparnelty I'm not searching very 
 effectively today...



 Short version:

 What's best-practices to get model library sub-modules hooked in to the main 
 model?


Hi there. As in all Perl there is always more than one way.

I too had great confusion regarding Cat models when I started and
certain pods and books will tell you _what_ is the best practice but
not necessarily __how__.

I wrote this a while back mainly as refrence to myself and later posted it here:

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] sub-modules for model

2013-01-10 Thread Alejandro Imass
On Thu, Jan 10, 2013 at 10:37 PM, Alejandro Imass
alejandro.im...@gmail.com wrote:
 On Wed, Dec 19, 2012 at 12:53 PM, will trillich
 will.trill...@serensoft.com wrote:

 Spent a bit of time googlilng this and apparnelty I'm not searching very 
 effectively today...



 Short version:

 What's best-practices to get model library sub-modules hooked in to the main 
 model?


 Hi there. As in all Perl there is always more than one way.

 I too had great confusion regarding Cat models when I started and
 certain pods and books will tell you _what_ is the best practice but
 not necessarily __how__.

 I wrote this a while back mainly as refrence to myself and later posted it 
 here:

Sorry, forgot the link :)

http://www.perlmonks.org/?node_id=915657

Let me know if you have trouble downloading the sample code from our
svn server since someone recently wiped all the server's config.

Good luck,

--
Alejandro Imass

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] sub-modules for model

2012-12-20 Thread Lukas Thiemeier
Hi,

when Catalyst::Model::DBIC::Schema is in use, you get this for free.

I assume that your sub-modules match your database tables. In that case,
you will have
Thingy::Schema::Result::User,
Thingy::Schema::Result::Team and  
Thingy::Schema::Result::Incident.

You can access them like this:
 my $users = $c-model(DB::User);

Now you can edit lib/Thingy/schema/Result/User.pm and add your
user-related code.

If you need code which operates on a resultset, instead of a single row,
you can create and/or edit Thingy::Schema::Resultset::User.

If you want to create your own Model for some reason, I suggest you to
take a look at Catalyst::Model::Adaptor.

There are tons of examples in Catalyst::Manual::Tutorial,
DBIx::Class::Manual and DBIx::Class::Tutorial (I haven't read the last one)

I am sure that the Catalyst manual contains a section about passing
configuration to the model, and that the DBIC manual will teach you how
to manually add modules to the schema.

To deploy shared code to several result classes, you can use Moose,
MooseX::NonMoose and Moose::Role, which have their own manuals.

cheers, Lukas




On 12/19/2012 06:53 PM, will trillich wrote:
 Spent a bit of time googlilng this and apparnelty I'm not searching very
 effectively today...
 
 
 
 Short version:
 
 What's best-practices to get model library sub-modules hooked in to the
 main model?
 
 
 
 Long version:
 
 *catalyst.pl http://catalyst.pl Thingy*
 *cd Thingy*
 *script/thingy_create.pl http://thingy_create.pl model DB DBIC::Schema \*
 *   Thingy::Schema::DB create=static dbi:mysql:thingy \
 *
 *   dbuser dbpasswd*
 
 So now we have lib/Thingy/Model/DB like so:
 
 *package Thingy::Model::DB;*
 *
 *
 *use strict;*
 *use base 'Catalyst::Model::DBIC::Schema';*
 *
 *
 *__PACKAGE__-config(*
 *schema_class = 'Thingy::Schema::DB',*
 *   *
 *connect_info = {*
 *dsn = 'dbi:mysql:thingy',*
 *user = 'dbuser',*
 *password = 'dbpasswd',*
 *}*
 *);*
 
 This is a top-level module. Instead of a monolithic mess with all
 possible library routines in one package, we want to modularize
 sub-functions into, say
 
 *Thingy::Model::DB::Team*
 *Thingy::Model::DB::User*
 *Thingy::Model::DB::Incident*
 etc
 
 Do we have those sub-modules use the top-level Thingy::Model::DB? Do
 we have Thingy::Model::DB use the sub-modules? 
 
 Do we have the sub-modules use base 'Catalyst::Model::DBIC::Schema'?
 Or can they just extends 'Catalyst::Model' and if so how do they hook
 in with $c?
 
 Is there an elegant way to have all the sub-module models use the same
 DB config as the top model?
 
 ...or...
 
 What's the best practice for getting separate modules to work as models
 in the MVC universe?
 
 -- 
  Will Trillich :: 812.454.6431
 
 “Grading takes away all the fun from failing. And a huge part of
 education is about failure.”  -- Shimon Schocken
 
 
 ___
 List: Catalyst@lists.scsys.co.uk
 Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
 Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
 Dev site: http://dev.catalyst.perl.org/


___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/