Sha256: 40788b9b114ad52a3b6bd2c80ced17bcba080cf2353213f396037c0901e92afb

Contents?: true

Size: 813 Bytes

Versions: 1

Compression:

Stored size: 813 Bytes

Contents

module RShade
  class Trace
    attr_reader :config, :event_store
    
    # @param [RShade::Config,RShade::Config::Store] config
    def initialize(config)
      @config = fetch_config(config)
      @event_store = EventTree.new
    end

    def self.reveal(config=nil, &block)
      new(config).reveal(&block)
    end

    def reveal(&block)
      processor = EventProcessor.new(@event_store)
      observer = EventObserver.new(config, processor)
      observable = RShade::TraceObservable.new([observer], config)
      observable.reveal &block
      self
    end

    def show
      config.formatter.call(event_store)
    end

    private
    def fetch_config(config)
      config = config || ::RShade::Config.default
      config = config.value if config.is_a?(::RShade::Config)
      config
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rshade-0.1.9 lib/rshade/trace.rb