lib/tapioca/helpers/config_helper.rb in tapioca-0.9.3 vs lib/tapioca/helpers/config_helper.rb in tapioca-0.9.4

- old
+ new

@@ -84,12 +84,11 @@ validate_config_options(command.options, config_key, config_options || {}) end.compact unless errors.empty? - print_errors(config_file, errors) - exit(1) + raise Thor::Error, build_error_message(config_file, errors) end ensure @validating_config = false end @@ -171,21 +170,22 @@ ConfigError.new( message_parts: message_parts ) end - sig { params(config_file: String, errors: T::Array[ConfigError]).void } - def print_errors(config_file, errors) - say_error("\nConfiguration file ", :red) - say_error("#{config_file} ", :blue, :bold) - say_error("has the following errors:\n\n", :red) + sig { params(config_file: String, errors: T::Array[ConfigError]).returns(String) } + def build_error_message(config_file, errors) + error_messages = errors.map do |error| + "- " + error.message_parts.map do |part| + T.unsafe(self).set_color(part.message, *part.colors) + end.join + end.join("\n") - errors.each do |error| - say_error("- ") - error.message_parts.each do |part| - T.unsafe(self).say_error(part.message, *part.colors) - end - end + <<~ERROR + #{set_color("\nConfiguration file", :red)} #{set_color(config_file, :blue, :bold)} #{set_color("has the following errors:", :red)} + + #{error_messages} + ERROR end sig do params(options: T.nilable(Thor::CoreExt::HashWithIndifferentAccess)) .returns(Thor::CoreExt::HashWithIndifferentAccess)