def build_responses(message_source = answer_type, new_hash_wins = false)
append_default unless default.nil?
choice_error_str_func = lambda do
message_source.is_a?(Array) \
? '[' + message_source.map { |s| "#{s}" }.join(', ') + ']' \
: message_source.inspect
end
old_hash = @responses
new_hash = { :ambiguous_completion =>
"Ambiguous choice. Please choose one of " +
choice_error_str_func.call + '.',
:ask_on_error =>
"? ",
:invalid_type =>
"You must enter a valid #{message_source}.",
:no_completion =>
"You must choose one of " + choice_error_str_func.call + '.',
:not_in_range =>
"Your answer isn't within the expected range " +
"(#{expected_range}).",
:mismatch =>
"Your entries didn't match.",
:not_valid =>
"Your answer isn't valid (must match " +
"#{@validate.inspect})." }
@responses = new_hash_wins ? old_hash.merge(new_hash) : new_hash.merge(old_hash)
end