NAME
    DBIx::Class::MooseColumns - Lets you write DBIC add_column() definitions
    as attribute options

VERSION
    Version 0.22

SYNOPSIS
      package MyApp::Schema::Result::Artist;

      use Moose;
      use DBIx::Class::MooseColumns;
      use namespace::autoclean;

      extends 'DBIx::Class::Core';

      __PACKAGE__->table('artist');

      has id => (
        isa => 'Int',
        is  => 'rw',
        add_column => {
          is_auto_increment => 1,
        },
      );

      has foo => (
        isa => 'Str',
        is  => 'rw',
        add_column => {
          data_type => 'datetime'
        },
      );

      has bar => (        # will call __PACKAGE__->add_column({})
        isa => 'Str',
        is  => 'rw',
        add_column => {
        },
      );

      has quux => (       # no __PACKAGE__->add_column() call
        isa => 'Str',
        is  => 'rw',
      );

      __PACKAGE__->set_primary_key('id');

      __PACKAGE__->meta->make_immutable( inline_constructor => 0 );

      1;

DISCLAIMER
    This is ALPHA SOFTWARE. Use at your own risk. Features may change.

DESCRIPTION
    This module allows you to put the arguments to "add_column" in
    DBIx::Class::ResultSource right into your attribute definitions and will
    automatically call it when it finds an "add_column" attribute option. It
    also replaces the DBIx::Class-generated accessor methods (these are
    Class::Accessor::Grouped-generated accessor methods under the hood) with
    the Moose-generated accessor methods so that you can use more of the
    wonderful powers of Moose (eg. type constraints, triggers, ...).

    *Note:* "__PACKAGE__->table(...)" must go before the "has" stanzas (the
    "table" in DBIx::Class::ResultSource is magic and does much more than
    setting the table name, thus the "__PACKAGE__->add_column(...)" calls
    that the "has" triggers won't work before that).

    *Note:* "__PACKAGE__->set_primary_key(...)" and
    "__PACKAGE__->add_unique_constraint(...)" calls must go after the "has"
    stanzas (since they depend on the referred columns being registered via
    "__PACKAGE__->add_column(...)" and that call is done when the "has"
    runs).

TODO
    *   convert the test harness to something sane - consider Fennec?

    *   delay ->add_column() calls until right after the ->table() call
        (collect the args and run them in an after method modifier of
        'table', possibly batched in a single ->add_columns() call)

SEE ALSO
    DBIx::Class, Moose

AUTHOR
    Norbert Buchmuller, "<norbi at nix.hu>"

BUGS
    Please report any bugs or feature requests to
    "bug-dbix-class-moosecolumns at rt.cpan.org", or through the web
    interface at
    <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DBIx-Class-MooseColumns>
    . I will be notified, and then you'll automatically be notified of
    progress on your bug as I make changes.

SUPPORT
    You can find documentation for this module with the perldoc command.

        perldoc DBIx::Class::MooseColumns

    You can also look for information at:

    *   RT: CPAN's request tracker

        <http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBIx-Class-MooseColumns>

    *   AnnoCPAN: Annotated CPAN documentation

        <http://annocpan.org/dist/DBIx-Class-MooseColumns>

    *   CPAN Ratings

        <http://cpanratings.perl.org/d/DBIx-Class-MooseColumns>

    *   Search CPAN

        <http://search.cpan.org/dist/DBIx-Class-MooseColumns/>

COPYRIGHT & LICENSE
    Copyright 2010 Norbert Buchmuller, all rights reserved.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

