module Putter::Watcher
Public Class Methods
class_proxy(klass)
click to toggle source
# File lib/putter/watcher.rb, line 29 def self.class_proxy(klass) proxy = MethodProxy.new Putter::Watcher.methods_for(klass).each do |method| data = ProxyMethodData.new(label: Putter::Watcher.label_for(klass), method: method) add_putter_method_to_proxy(proxy, data) end proxy end
label_for(klass)
click to toggle source
# File lib/putter/watcher.rb, line 21 def self.label_for(klass) @registry[klass].label end
methods_for(klass)
click to toggle source
# File lib/putter/watcher.rb, line 25 def self.methods_for(klass) @registry[klass].proxy_methods end
registry()
click to toggle source
# File lib/putter/watcher.rb, line 17 def self.registry @registry end
watch(obj, options={})
click to toggle source
# File lib/putter/watcher.rb, line 7 def self.watch(obj, options={}) data = WatcherData.new(options, obj) @registry[obj.singleton_class] = data class << obj prepend InstanceFollower prepend Putter::Watcher.class_proxy(self) end end