Sha256: 6564bc80b7f2b47ca53229e35d63f721ea2743c8f7dfb7323e29cf865bee1be5

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'ostruct'
require 'logger'
require 'singleton'

require 'awesome_print'

require "source_route/version"
require "source_route/wrapper"
require "source_route/tp_result"
require "source_route/nature_value"

module SourceRoute
  extend self

  def wrapper
    @@wrapper ||= Wrapper.instance
  end

  def reset
    wrapper.reset
  end

  def disable
    wrapper.tp.disable
  end

  def enable(match = nil, &block)
    wrapper.reset

    wrapper.method_id(match) if match # TODO in future future: should add as wrapper.method_id_or(match)

    wrapper.instance_eval(&block) if block_given?

    wrapper.trace
  end

  # Not implemented. used in irb or pry.
  def trace(opt, &block)
    wrapper.reset
    opt.each do |k, v|
      wrapper.send(k, v)
    end
    wrapper.trace
    yield
    wrapper.tp.disable
    SourceRoute.build_html_output if opt[:output_format].to_sym == :html
  end

  def build_html_output
    SourceRoute::Formats::Html.render(wrapper)
  end

  # Not implement yet
  class Logger < Logger
  end
end

module SourceRoute
  module Formats
    autoload :Html, 'source_route/formats/html'
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
source_route-0.0.3 lib/source_route.rb