class TraceTree::Point::Loader

Attributes

config[R]
point_classes[R]

Public Class Methods

new(*enhancement, config) click to toggle source
# File lib/trace_tree/point.rb, line 188
def initialize *enhancement, config
  @config = config
  @bases = Point.bases
  @bases = @bases.map{ |b| b = b.clone; b.prepend(*enhancement); b } unless enhancement.empty?
  sort_bases
end

Public Instance Methods

create(point) click to toggle source
# File lib/trace_tree/point.rb, line 208
def create point
  point_klass =
    if events = @methods[point.method_id]
      if klasses = events[point.event]
        klasses[point.defined_class] || @common
      else
        @common
      end
    else
      @common
    end

  poi = point_klass.new point
  poi.config = config
  poi
end
sort_bases() click to toggle source
# File lib/trace_tree/point.rb, line 195
def sort_bases
  @methods = {}

  @bases.each do |b|
    event, klass, method = b.event_class_method
    events = (@methods[method] ||= {})
    klasses = (events[event] ||= {})
    klasses[klass] = b
  end

  @common = @methods[nil][:common][nil]
end