class DslEvaluator::Printer

Public Class Methods

new(error) click to toggle source
# File lib/dsl_evaluator/printer.rb, line 3
def initialize(error)
  @error = error
end

Public Instance Methods

info() click to toggle source
# File lib/dsl_evaluator/printer.rb, line 16
def info
  @error.message.include?("syntax") ? info_from_message : info_from_backtrace
end
info_from_backtrace() click to toggle source
# File lib/dsl_evaluator/printer.rb, line 26
def info_from_backtrace
  lines = @error.backtrace

  backtrace_reject = DslEvaluator.backtrace_reject
  lines = lines.reject { |l| l.include?(backtrace_reject) } if backtrace_reject
  lines = lines.reject { |l| l.include?("lib/dsl_evaluator") } # ignore internal lib/dsl_evaluator backtrace lines

  error_info = lines.first
  path, line_number, _ = error_info.split(':')
  {path: path, line_number: line_number}
end
info_from_message() click to toggle source
# File lib/dsl_evaluator/printer.rb, line 20
def info_from_message
  error_info = @error.message
  path, line_number, _ = error_info.split(':')
  {path: path, line_number: line_number}
end
message() click to toggle source
# File lib/dsl_evaluator/printer.rb, line 7
def message
  @error.message
end
print() click to toggle source

Prints out a user friendly task_definition error message

print_source(info={}) click to toggle source