class BuildInvokerUtils

Utilities for raiser and reporting errors during building.

Public Instance Methods

process_exception(exception, context, test_build=true) click to toggle source

Processes exceptions and tries to display a useful message for the user.

Attributes

  • exception: The exception given by a rescue statement.

  • context: A symbol representing where in the build the exception

occurs.

  • test_build: A bool to signify if the exception occurred while building

from test or source.

# File lib/ceedling/build_invoker_utils.rb, line 20
def process_exception(exception, context, test_build=true)
  if (exception.message =~ /Don't know how to build task '(.+)'/i)
    error_header  = "ERROR: Rake could not find file referenced in source"
    error_header += " or test" if (test_build) 
    error_header += ": '#{$1}'. Possible stale dependency."
    
    @streaminator.stderr_puts( error_header )

    if (@configurator.project_use_deep_dependencies)
      help_message = "Try fixing #include statements or adding missing file. Then run '#{REFRESH_TASK_ROOT}#{context.to_s}' task and try again."      
      @streaminator.stderr_puts( help_message )
    end
    
    raise ''
  else
    raise exception
  end
end