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
namespace::autoclean;
__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
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
CPAN Ratings
Search CPAN
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.