class TypedRb::TypeCheckError
Attributes
node[R]
Public Class Methods
new(msg, node = nil)
click to toggle source
Calls superclass method
# File lib/typed/types.rb, line 5 def initialize(msg, node = nil) super(build_message_error(msg, node)) @node = node end
Private Instance Methods
build_message_error(msg, nodes)
click to toggle source
# File lib/typed/types.rb, line 12 def build_message_error(msg, nodes) file = $TYPECHECK_FILE || 'NO FILE' if nodes && nodes.is_a?(Array) num_columns = (nodes.last.loc.column - 2) num_columns = num_columns < 0 ? 0 : num_columns "\n #{msg}\n...\n>>>#{file}:#{nodes.first.loc.line}\n#{'=' * (nodes.first.loc.column - 2)}> #{nodes.first.loc.expression.source}\n\ ##{file}:#{nodes.last.loc.line}\n#{'=' * num_columns}> #{nodes.last.loc.expression.source}\n...\n" elsif nodes line = nodes.loc.line num_columns = (nodes.loc.column - 2) num_columns = num_columns < 0 ? 0 : num_columns "\n>>>#{file}:#{line}\n #{msg}\n...\n#{'=' * num_columns}> #{nodes.loc.expression.source}\n...\n" else msg end end