class Cordon::Violation

Constants

CustomFilterProcs
SelfRegex

Attributes

method_descriptor[RW]

Public Class Methods

add_custom_backtrace_filter(&proc) click to toggle source
# File lib/cordon/violation.rb, line 6
def self.add_custom_backtrace_filter(&proc)
  CustomFilterProcs << proc
end
clear_custom_backtrace_filters() click to toggle source
# File lib/cordon/violation.rb, line 10
def self.clear_custom_backtrace_filters
  CustomFilterProcs.clear
end
from_invocation(subject, method, args) click to toggle source
# File lib/cordon/violation.rb, line 14
def self.from_invocation(subject, method, args)
  method_descriptor = '%s#%s' % [subject, method]
  message = '%s(%s)' % [method_descriptor, args.map(&:inspect).join(', ')]
  new(message).tap { |e| e.method_descriptor = method_descriptor }
end

Public Instance Methods

backtrace() click to toggle source
Calls superclass method
# File lib/cordon/violation.rb, line 22
def backtrace
  bt = super
  return if bt.nil?

  # Take anything in 'lib/cordon*.rb' off of the *top* of the backtrace so users don't get distracted by it
  bt.shift while bt.first =~ SelfRegex

  # Apply any other custom filters to the backtrace before returning it
  CustomFilterProcs.each do |filter|
    bt = filter.call(bt)
  end

  return bt
end