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]