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