Sha256: 49577cc488e64ccc7563e8165ac0f295a94de765cad58d6045f66ba4ea009bad

Contents?: true

Size: 1.22 KB

Versions: 3

Compression:

Stored size: 1.22 KB

Contents

require 'ceedling/constants'

##
# Utilities for raiser and reporting errors during building.
class BuildInvokerUtils

  constructor :configurator, :streaminator
 
  ##
  # 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.
  #
  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
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ceedling-0.31.1 lib/ceedling/build_invoker_utils.rb
ceedling-0.31.0 lib/ceedling/build_invoker_utils.rb
ceedling-0.30.0 lib/ceedling/build_invoker_utils.rb