class Temill::Emitters::Base

Public Class Methods

new(options) click to toggle source
# File lib/temill/emitter.rb, line 7
def initialize(options)
  @options = options
end

Public Instance Methods

annotation(ip, output_line_for_caller) click to toggle source
# File lib/temill/emitter.rb, line 39
def annotation(ip, output_line_for_caller)
  "temill showing #{ip.results.size} results" +
    " for line #{ip.caller_lineno}" +
    " (line #{output_line_for_caller} in this output)"
end
call(source_files) click to toggle source

@param [Array<SourceFile>] source_files

# File lib/temill/emitter.rb, line 16
def call(source_files)
  execute(source_files)
end
emit_for_source_file(sf, out_f) click to toggle source
# File lib/temill/emitter.rb, line 20
def emit_for_source_file(sf, out_f)
  lines_map = [] # map source lineno to output lineno
  compact_ranges = sf.insertion_points.map{| ip | ip.caller_lineno .. ip.emitter_lineno }
  printer = Printer.new(out_f, **@options)
  sf.each_source_line{| line,i |
    lines_map[i] = printer.lineno
    printer.print_raw(line) if not @options[:compact] or compact_ranges.any?{| r | r.cover?(i) }
    if ips = sf.insertion_points.at_emitter_lineno(i)
      ips.each{| ip |
        printer.indent = ip.indent
        printer.print_str(annotation(ip, lines_map[ip.caller_lineno]))
        ip.results.each{| obj |
          printer.print(obj)
        }
      }
    end
  }
end
execute(source_files) click to toggle source

@param [Hash<String, SourceFile>] source_files

# File lib/temill/emitter.rb, line 12
def execute(source_files)
end