Sha256: b44c9b9cf39114828aa7ed0255b1c3887bbdb45dfe72346f0cbf541fb0b14145
Contents?: true
Size: 823 Bytes
Versions: 1
Compression:
Stored size: 823 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.1 | lib/putter/watcher.rb |