Sha256: dc1e78ed296bce27cfbe59ef23f21c038d6fac5bfb0edb2f784e7e6cf7c654af

Contents?: true

Size: 889 Bytes

Versions: 3

Compression:

Stored size: 889 Bytes

Contents

# frozen_string_literal: true

require_relative 'trace_location/collector'
require_relative 'trace_location/config'
require_relative 'trace_location/report'
require_relative 'trace_location/version'

module TraceLocation # :nodoc:
  def self.trace(options = {}, &block)
    match = options.delete(:match)
    ignore = options.delete(:ignore)
    methods = options.delete(:methods)

    result = Collector.collect(match: match, ignore: ignore, methods: methods, &block)
    Report.build(result.events, result.return_value, options).generate
    true
  rescue StandardError => e
    $stderr.puts "Failure: TraceLocation got an unexpected error."
    $stderr.puts e.full_message
    false
  end

  def self.configure
    yield config
  end

  def self.config
    @config ||= Config.new
  end
end

begin
  require 'rails'
  require_relative 'trace_location/railtie'
rescue LoadError
  nil
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trace_location-1.0 lib/trace_location.rb
trace_location-0.12.2 lib/trace_location.rb
trace_location-0.12.1 lib/trace_location.rb