Sha256: f245bb0c73cd2b722a88ddcbb977035f295e4dab83350a9221462a3bf9983418
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
module PrivatePlease ; module Tracking class LineChangeTracker class << self attr_accessor :prev_prev_self, :prev_self, :curr_self @@prev_self = @@curr_self = nil end MY_TRACE_FUN = lambda do |event, file, line, id, binding, klass| return unless 'line'==event LineChangeTracker.prev_prev_self = LineChangeTracker.prev_self LineChangeTracker.prev_self = LineChangeTracker.curr_self LineChangeTracker.curr_self = (eval 'self', binding) #puts "my : #{event} in #{file}/#{line} id:#{id} klass:#{klass} - self = #{(eval'self', binding).inspect}" end def self.outside_instance_method_call_detected?(zelf) caller_class != zelf.class end def self.outside_class_method_call_detected?(zelf_class) caller_class != zelf_class end private def self.caller_class call_initiator = LineChangeTracker.prev_self (caller_is_class_method = call_initiator.is_a?(Class)) ? call_initiator : call_initiator.class end end end end set_trace_func(PrivatePlease::Tracking::LineChangeTracker::MY_TRACE_FUN) #
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
private_please-0.0.3 | lib/private_please/tracking/line_change_tracker.rb |