class Temill::SourceFile::InsertionPointSet
represent a set of insertion points in a single source file
Public Class Methods
new()
click to toggle source
# File lib/temill/core.rb, line 243 def initialize @caller_lineno_to_ip = {} @emitter_lineno_to_ips = {} end
Public Instance Methods
add(ip)
click to toggle source
# File lib/temill/core.rb, line 248 def add(ip) if @caller_lineno_to_ip[ip.caller_lineno] false else @caller_lineno_to_ip[ip.caller_lineno] = ip ((@emitter_lineno_to_ips[ip.emitter_lineno] ||= []) << ip).sort_by!{| ips | ips.caller_lineno } true end end
at_caller_lineno(lineno)
click to toggle source
@return [InsertionPoint] @return [nil]
# File lib/temill/core.rb, line 262 def at_caller_lineno(lineno) @caller_lineno_to_ip[lineno] end
at_emitter_lineno(lineno)
click to toggle source
@return [Array<InsertionPoint>] @return [nil]
# File lib/temill/core.rb, line 268 def at_emitter_lineno(lineno) @emitter_lineno_to_ips[lineno] end
each(&block)
click to toggle source
# File lib/temill/core.rb, line 272 def each(&block) @caller_lineno_to_ip.values.each(&block) end