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