Sha256: 0665f8d5540429e214aecd301d4178f1b81516942e4571b5c44dc8e562fce97e
Contents?: true
Size: 1.44 KB
Versions: 7
Compression:
Stored size: 1.44 KB
Contents
#-- # Copyright (C)2007 Tony Arcieri # You can redistribute this under the terms of the Ruby license # See file LICENSE for details #++ module Rev module Meta # Use an alternate watcher with the attach/detach/enable/disable methods # if it is presently assigned. This is useful if you are waiting for # an event to occur before the current watcher can be used in earnest, # such as making an outgoing TCP connection. def watcher_delegate(proxy_var) %w{attach detach enable disable}.each do |method| module_eval <<-EOD def #{method}(*args) if #{proxy_var} #{proxy_var}.#{method}(*args) return self end super end EOD end end # Define callbacks whose behavior can be changed on-the-fly per instance. # This is done by giving a block to the callback method, which is captured # as a proc and stored for later. If the method is called without a block, # the stored block is executed if present, otherwise it's a noop. def event_callback(*methods) methods.each do |method| module_eval <<-EOD def #{method}(*args, &block) if block @#{method}_callback = block return end if @#{method}_callback instance_exec(*args, &@#{method}_callback) end end EOD end end end end
Version data entries
7 entries across 7 versions & 1 rubygems
Version | Path |
---|---|
rev-0.3.2 | lib/rev/meta.rb |
rev-0.3.1 | lib/rev/meta.rb |
rev-0.3.0 | lib/rev/meta.rb |
rev-0.2.1 | lib/rev/meta.rb |
rev-0.2.4 | lib/rev/meta.rb |
rev-0.2.2 | lib/rev/meta.rb |
rev-0.2.3 | lib/rev/meta.rb |