'
. ($ref eq 'HASH'
? ''
: '
warning_message(
+ qq{PGresponsegroup::append_response error: There is already an answer labeled "$response_label".});
}
} else {
- $self->internal_debug_message('PGresponsegroup::append_response error: undefined or empty response label');
+ $self->warning_message('PGresponsegroup::append_response error: Undefined or empty response label.');
}
return;
}
@@ -82,13 +83,14 @@ sub replace_response {
sub extend_response {
my ($self, $response_label, $new_value_key, $selected) = @_;
- if (defined $self->{responses}{$response_label}) {
+ if (defined $response_label && defined $self->{responses}{$response_label}) {
my $response_value = $self->{responses}{$response_label};
$response_value //= [];
if (ref($response_value) !~ /^(HASH|ARRAY)$/) {
- $self->internal_debug_message("PGresponsegroup::extend_response: error in extending response ",
- ref($response_value), $response_value);
+ $self->warning_message('PGresponsegroup::extend_response error: Invalid value type "'
+ . (ref($response_value) || 'scalar')
+ . qq{" for $response_label.});
$response_value = [ [ $response_value => $selected ] ];
}
@@ -99,7 +101,12 @@ sub extend_response {
$self->{responses}{$response_label} = $response_value;
return $response_value;
} else {
- $self->internal_debug_message("PGresponsegroup::extend_response: response label |$response_label| not defined");
+ if (defined $response_label) {
+ $self->warning_message(
+ qq{PGresponsegroup::extend_response error: Response label "$response_label" not defined.});
+ } else {
+ $self->warning_message('PGresponsegroup::extend_response error: Response label not provided.');
+ }
return;
}
}
diff --git a/macros/PG.pl b/macros/PG.pl
index aea6e6a3b..d363e3948 100644
--- a/macros/PG.pl
+++ b/macros/PG.pl
@@ -111,14 +111,13 @@ =head2 DOCUMENT
sub DOCUMENT {
# get environment
- $rh_envir = \%envir; #KLUDGE FIXME
- # warn "rh_envir is ",ref($rh_envir);
- $PG = new PGcore(
- $rh_envir, # can add key/value options to modify
+ $rh_envir = \%envir; #KLUDGE FIXME
+
+ $PG = new PGcore(
+ $rh_envir, # can add key/value options to modify
);
- $PG->clear_internal_debug_messages;
- # initialize main:: variables
+ # initialize main:: variables
$ANSWER_PREFIX = $PG->{ANSWER_PREFIX};
$QUIZ_PREFIX = $PG->{QUIZ_PREFIX};
$showPartialCorrectAnswers = $PG->{flags}->{showPartialCorrectAnswers};
@@ -620,7 +619,7 @@ sub NEW_ANS_ARRAY_NAME_EXTENSION {
}
my $ans_label = $PG->new_ans_name();
my $element_ans_label = $PG->new_array_element_label($ans_label, $row_num, $col_num, vec_num => $vecnum);
- my $response = new PGresponsegroup($ans_label, $element_ans_label, undef);
+ my $response = PGresponsegroup->new($ans_label, $element_ans_label, undef);
$PG->extend_ans_group($ans_label, $response);
return $element_ans_label;
}
@@ -632,7 +631,7 @@ sub CLEAR_RESPONSES {
if (ref($responsegroup)) {
$responsegroup->clear;
} else {
- $responsegroup = $PG->{PG_ANSWERS_HASH}{$ans_label}{response} = new PGresponsegroup($label);
+ $responsegroup = $PG->{PG_ANSWERS_HASH}{$ans_label}{response} = PGresponsegroup->new($ans_label);
}
}
return;