Sha256: e765a685638d9752058e48fdfc1987f9b9f237ac09e8434874e7a2ce76112792
Contents?: true
Size: 827 Bytes
Versions: 1
Compression:
Stored size: 827 Bytes
Contents
module Putter module Watcher extend MethodCreator @registry = {} 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 def self.registry @registry end def self.label_for(klass) @registry[klass].label end def self.methods_for(klass) @registry[klass].proxy_methods end 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_class_method_to_proxy(proxy, data) end proxy end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
putter-0.4.0 | lib/putter/watcher.rb |