Sha256: 17c467799b8905b4707a1d669fac641a9679e8260061564e4ded3a2c94a2b201
Contents?: true
Size: 949 Bytes
Versions: 1
Compression:
Stored size: 949 Bytes
Contents
require_relative 'state_inspector' require_relative 'reporter' module StateInspector module Snoop def Snoop.extended(base) base.include ClassMethods end module ClassMethods def state_inspector StateInspector.new(self) end def tell_si *args, &block if informant? key = self.respond_to?(:class_eval) ? self : self.class key = Reporter.has_key?(key) ? key : self Reporter[key].update(self, *args, &block) end end def toggle_informant state_inspector.snoop_setters( *(self.respond_to?(:class_eval) ? self : self.class). instance_methods.grep(/=\z/) - Object.methods ) unless @state_inspector || self.class.instance_variable_get(:@state_inspector) @informant = !@informant end def informant? @informant || self.class.instance_variable_get(:@informant) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
state_inspector-1.0.3 | lib/state_inspector/snoop.rb |