class CqlRuby::ConsolePrinter

Prints to console.

Attributes

color_on[W]
file_on[W]
source_on[W]
surrounding_lines[W]

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/cql_ruby/console_printer.rb, line 13
def initialize
  super

  @color_on = true
  @file_on = true
  @source_on = true
  @surrounding_lines = 0
  @counter = 0
end

Public Instance Methods

print(crumb) click to toggle source

@param crumb [CqlRuby::Crumb]

Private Instance Methods

bold() click to toggle source
# File lib/cql_ruby/console_printer.rb, line 58
def bold
  if @color_on
    "\e[1m"
  else
    ''
  end
end
color(code) click to toggle source
# File lib/cql_ruby/console_printer.rb, line 50
def color(code)
  if @color_on
    "\e[#{code}m"
  else
    ''
  end
end
decor_reset() click to toggle source
# File lib/cql_ruby/console_printer.rb, line 66
def decor_reset
  if @color_on
    "\e[0m"
  else
    ''
  end
end
decorate_source_line(crumb) click to toggle source

@param [CqlRuby::Crumb] crumb @return [String]

# File lib/cql_ruby/console_printer.rb, line 76
def decorate_source_line(crumb)
  source = crumb.source
  from = crumb.line_col_no
  to = from + crumb.expression_size

  prefix = if from > 0
    source[0..from - 1] || ''
  else
    ''
  end
  subject = source[from..to - 1] || ''
  suffix = source[to..] || ''

  color(97) +
    prefix +
    decor_reset +
    color(31) +
    bold +
    subject +
    decor_reset +
    color(97) +
    suffix +
    decor_reset
end