From: Rafael Kitover Date: Mon, 24 Aug 2009 10:24:03 +0000 (+0000) Subject: use BUILD's $args instead of %$self X-Git-Tag: v0.27~1 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Model-DBIC-Schema.git;a=commitdiff_plain;h=f27a05ea9be7ebf9d5082e3c735902cef5ee1f2e;hp=b9cc2f76b321808aa461f7c7c4f20418acc2695b use BUILD's $args instead of %$self --- diff --git a/lib/Catalyst/Model/DBIC/Schema.pm b/lib/Catalyst/Model/DBIC/Schema.pm index e33e260..0a6799a 100644 --- a/lib/Catalyst/Model/DBIC/Schema.pm +++ b/lib/Catalyst/Model/DBIC/Schema.pm @@ -469,7 +469,7 @@ has _default_cursor_class => ( ); sub BUILD { - my $self = shift; + my ($self, $args) = @_; my $class = $self->_original_class_name; my $schema_class = $self->schema_class; @@ -505,7 +505,7 @@ sub BUILD { $self->schema($self->composed_schema->clone); - $self->_pass_options_to_schema; + $self->_pass_options_to_schema($args); $self->schema->storage_type($self->storage_type) if $self->storage_type; @@ -621,13 +621,16 @@ sub _delegates { } sub _pass_options_to_schema { - my $self = shift; + my ($self, $args) = @_; + + my @attributes = map { + $_->init_arg || () + } $self->meta->get_all_attributes; - my @attributes = map $_->name, $self->meta->get_all_attributes; my %attributes; @attributes{@attributes} = (); - for my $opt (keys %$self) { + for my $opt (keys %$args) { if (not exists $attributes{$opt}) { next unless $self->schema->can($opt); $self->schema->$opt($self->{$opt});