Class: Temill::Emitters::Base
- Inherits:
-
Object
- Object
- Temill::Emitters::Base
show all
- Defined in:
- lib/temill/emitter.rb
Instance Method Summary
collapse
Constructor Details
#initialize(options) ⇒ Base
Returns a new instance of Base.
7
8
9
|
# File 'lib/temill/emitter.rb', line 7
def initialize(options)
@options = options
end
|
Instance Method Details
#annotation(ip, output_line_for_caller) ⇒ Object
39
40
41
42
43
|
# 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) ⇒ Object
16
17
18
|
# File 'lib/temill/emitter.rb', line 16
def call(source_files)
execute(source_files)
end
|
#emit_for_source_file(sf, out_f) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/temill/emitter.rb', line 20
def emit_for_source_file(sf, out_f)
lines_map = []
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) ⇒ Object
12
13
|
# File 'lib/temill/emitter.rb', line 12
def execute(source_files)
end
|