Skip to content

Commit

Permalink
defaults on compound fields handled by _result_from_object
Browse files Browse the repository at this point in the history
  • Loading branch information
gshank committed Mar 21, 2012
1 parent 1cea84b commit 634f768
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions lib/HTML/FormHandler/InitResult.pm
Expand Up @@ -14,6 +14,15 @@ Internal role for initializing the result objects.
# formerly _init
sub _result_from_fields {
my ( $self, $self_result ) = @_;

if ( my @values = $self->get_default_value ) {
my $value = @values > 1 ? \@values : shift @values;
if( ref $value eq 'HASH' || blessed $value ) {
return $self->_result_from_object( $self_result, $value );
}
$self->init_value($value) if defined $value;
$self_result->_set_value($value) if defined $value;
}
for my $field ( $self->sorted_fields ) {
next if ($field->inactive && !$field->_active);
my $result = HTML::FormHandler::Field::Result->new(
Expand All @@ -23,13 +32,6 @@ sub _result_from_fields {
$result = $field->_result_from_fields($result);
$self_result->add_result($result) if $result;
}
# this is for compound fields. form-level would use init_object instead
# which is a little strange.
if ( my @values = $self->get_default_value ) {
my $value = @values > 1 ? \@values : shift @values;
$self->init_value($value) if defined $value;
$self_result->_set_value($value) if defined $value;
}
$self->_set_result($self_result);
$self_result->_set_field_def($self) if $self->DOES('HTML::FormHandler::Field');
return $self_result;
Expand Down

0 comments on commit 634f768

Please sign in to comment.