use warnings;
use strict;
-use self;
use Carp qw/croak confess/;
use Object::Enum;
=cut
-our $VERSION = '0.03';
+# Dist::Zill should handle this now
+# ABSTRACT: Allows a DBIx::Class user to define a Object::Enum column
+#our $VERSION = '0.04';
=head1 SYNOPSIS
=cut
sub register_column {
- my ($column, $info) = args;
+ my $self = shift;
+ my ($column, $info) = @_;
- self->next::method(args);
+ $self->next::method(@_);
return unless defined $info->{is_enum} and $info->{is_enum};
my $values = $info->{extra}->{list};
my %values = map {$_=>1} @{$values};
-
- if ( defined($info->{default_value}) && !exists $values{$info->{default_value}}) {
- push(@{$values},$info->{default_value});
- $values->{$info->{default_value}} = 1;
- }
-
- self->inflate_column(
+
+ push(@{$values},$info->{default_value})
+ if defined($info->{default_value})
+ && !exists $values{$info->{default_value}};
+
+ push(@{$values}, undef)
+ if defined($info->{is_nullable})
+ && $info->{is_nullable};
+
+ $self->inflate_column(
$column => {
inflate => sub {
my $val = shift;
my $e = Object::Enum->new({values=>$values});
- $e->value($val) if $val and exists $values{$val};
+ $e->value($val);
return $e;
},
deflate => sub {