long awaited BUILDARGS to help with comments/options/extra
Justin Hunter [Tue, 9 Feb 2010 06:23:05 +0000 (22:23 -0800)]
lib/SQL/Translator/Object.pm

index 3091d79..67d9bed 100644 (file)
@@ -58,4 +58,14 @@ class SQL::Translator::Object with SQL::Translator::Object::Compat {
     multi method extra(Str $extra) { $self->get_extra($extra) }
     multi method extra(HashRef $extra) { $self->add_extra($_, $extra->{$_}) for keys %$extra; $self->extra }
     multi method extra { wantarray ? %{$self->_extra} : $self->_extra }
+
+    around BUILDARGS(ClassName $self: @args) {
+        my $args = $self->$orig(@args);
+
+        $args->{_comments} = delete $args->{comments} || [];
+        $args->{_options} = delete $args->{options} || [];
+        $args->{_extra} = delete $args->{extra} || {};
+
+        return $args;
+     }
 }