Sha256: a334e9a48b17fc48163dc6a883e3e8bf46925545fdd164d1eca746bb56f6732e

Contents?: true

Size: 732 Bytes

Versions: 1

Compression:

Stored size: 732 Bytes

Contents

module SourceRoute

  class Proxy
    include Singleton

    attr_accessor :config, :tp, :result_builder

    def initialize
      reset
    end

    def reset
      @tp.disable if defined? @tp
      @config = Config.new
      # only init once, so its @collected_data seems not useful
      @result_builder = GenerateResult.new(self)
      GenerateResult.clear_wanted_attributes
      self
    end

    def trace
      trace_filter = TraceFilter.new(config)
      track = TracePoint.new(*config.event) do |tp|
        next if trace_filter.block_it?(tp)
        @result_builder.output(tp)
      end
      track.enable
      self.tp = track
    end

    def trace_chain
      result_builder.trace_chain
    end
  end # END Proxy

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
source_route-0.6.0 lib/source_route/proxy.rb