Sha256: 6d3ad1b60f61176823e02546932d1f2e7b12f2c84e95278de4bebc4ed1fbc5f0

Contents?: true

Size: 1.36 KB

Versions: 5

Compression:

Stored size: 1.36 KB

Contents

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

require 'awesome_print'

require "source_route/version"
require "source_route/wrapper"
require "source_route/generate_result"
require "source_route/tp_result_chain"
require "source_route/tp_filter"
require 'source_route/json_overrides/activerecord_associations_association'

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

    if match
      wrapper.condition.method_id(match)
      wrapper.condition.defined_class(match)
    end

    wrapper.condition.instance_eval(&block) if block_given?

    wrapper.trace
  end

  # Not implemented. used in irb or pry.
  def trace(opt, &block)
    opt[:output_format] ||= :silence
    wrapper.reset
    opt.each do |k, v|
      wrapper.condition.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.disable
    SourceRoute::Formats::Html.slim_render(wrapper)
  end

  def output_html
    build_html_output
  end

  # Not implement yet
  class Logger < Logger
  end
end

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
source_route-0.1.7 lib/source_route.rb
source_route-0.1.6 lib/source_route.rb
source_route-0.1.5 lib/source_route.rb
source_route-0.1.4 lib/source_route.rb
source_route-0.1.3 lib/source_route.rb