NAME

DBIx::Class::InflateColumn::Object::Enum - Allows a DBIx::Class user to define a Object::Enum column

VERSION

Version 0.03

SYNOPSIS

Load this module via load_components and utilize is_enum and values property to define Enumuration columns via Object::Enum

package TableClass;

use strict;
use warnings;
use base 'DBIx::Class';

__PACKAGE__->load_components(qw/InflateColumn::Object::Enum Core/);
__PACKAGE__->table('testtable');
__PACKAGE__->add_columns(
    color => {
        data_type => 'varchar',
        is_enum => 1,
        extra => {
            list => [qw/red green blue/]
        }
    }
    color_native => { # works inline with native enum type
        data_type => 'enum',
        is_enum => 1,
        extra => {
            list => [qw/red green blue/]
        }
    }
);

1;

Now you may treat the column as an Object::Enum object.

my $table_rs = $db->resultset('TableClass')->create({
    color => undef
});

$table_rs->color->set_red; # sets color to red
$table_rs->color->is_red; # would return true
$table_rs->color->is_green; # would return false
print $table_rs->color->value; # would print 'red'
$table_rs->color->unset; # set the value to 'undef' or 'null'
$table_rs->color->is_red; # returns false now

METHODS

register_column

Internal chained method with "register_column" in DBIx::Class::Row. Users do not call this directly!

AUTHOR

Jason M. Mills, <jmmills at cpan.org>

BUGS

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

CAVEATS

  • Please note that when a column definition is_nullable then Object::Enum will insist that there be a default_value set.

SUPPORT

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

perldoc DBIx::Class::InflateColumn::Object::Enum

You can also look for information at:

SEE ALSO

Object::Enum, DBIx::Class, DBIx::Class::InflateColumn::URI

COPYRIGHT & LICENSE

Copyright 2008 Jason M. Mills, all rights reserved.

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