On Tue, May 20, 2008 at 2:32 AM, John Napiorkowski <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I need help for my module name, hoping for someone's creative insight.  Also 
> would enjoy any comments.  This is a DBIC::Schema component and stand alone 
> class this is like a $schema->populate on steroids.  What it does is make it 
> easier when you are doing a first time setup and need to insert a bunch of 
> rows, like the first time you deploy a new database, or after you update it.  
> It's not as full featured as DBIC::Fixtures, and is targeted more directly at 
> making it easier to just take a perl structure, or one loaded from a 
> configuration file, and setup your database.
>
> Basically all it does is take:
>
> my $setup_rows = [
>
>  {Gender => {
>    fields => 'label',
>    data => {
>      male => 'male',
>      female => 'female',
>    }}},
>
>  {Person  => {
>    fields => ['name', 'age', 'gender', 'emails'],
>    data => {
>      john => ['john', 38, "!Index:Gender.male", {
>        fields => ['email', 'private'],
>        data => {
>          personal => ['[EMAIL PROTECTED]', 1],
>          work => ['[EMAIL PROTECTED]', 0],
>        },
>      }],
>      jane => ['jane', 40, '!Index:Gender.female'],
>    }}},
>
>  {FriendList => {
>    fields => ['person', 'friend'],
>    data => {
>      john_jane => ['!Index:Person.john', '!Index:Person.jane'],
>    }}},
> ];
>
> and let's you put rows into your schema with:
>
> $schema->populate_via_hashref($setup_rows);
>
> The main thing over the standard populate -or even insert- is that each 
> $setup_rows is traversed via a visitor class so it can process the values and 
> expand a macro-like "!Macro:args".  This makes it easier to do things like 
> setup a database with relationships and not have to predetermine the keys, or 
> include defaults dates (with something like "!Date:now' or 
> "!Date::yesterday") or even base inserted values on %ENV.  Your thoughts on 
> additional builtin macros wanted.
>
> I'm actually using DBIC::Fixtures myself now, but I wrote this for some 
> previous jobs and thought it might come in handy for someone else.  It's 
> probably not what you want to use if you are installing 100's of rows, need 
> to dump and reload your db, since DBIC::Fixtures is great for that.  It's got 
> a decent test suite and all, just need a good name for it to live on CPAN.  I 
> just need a name (been using DBIx::Class::PopulateViaHashRef internally) and 
> your comments.
>

Sounds interesting. Any chance of seeing the code and tests?

Cheers,
Luke.

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to