module Kernel
Public Instance Methods
peelr!()
click to toggle source
# File lib/peelr.rb, line 3 def peelr! caller_method, caller_parent = if Kernel.respond_to?(:caller_locations) [caller_locations(1,1)[0], caller_locations(2,1)[0]] else [caller[0], caller[1]] end catch(:no_parent) do throw(:no_parent) unless caller_parent if Kernel.respond_to?(:caller_locations) puts "### '#{caller_method.label}' called inside '#{caller_parent.label}' (#{caller_parent.path}:#{caller_parent.lineno})" else caller_method_parts = caller_method.split(":") caller_method_name = caller_method_parts[2].scan(/\w+/).last caller_parent_parts = caller_parent.split(":") caller_parent_file = caller_parent_parts[0] caller_parent_line = caller_parent_parts[1] caller_parent_name = (label=caller_parent_parts[2]) ? label.scan(/\w+/).last : "<main>" puts "### '#{caller_method_name}' called inside '#{caller_parent_name}' (#{caller_parent_file}:#{caller_parent_line})" end end end