class DaFunk::EventListener
Attributes
listeners[RW]
block_check[RW]
block_finish[RW]
block_start[RW]
handlers[RW]
type[R]
Public Class Methods
add_handler(handler)
click to toggle source
# File lib/da_funk/event_listener.rb, line 25 def self.add_handler(handler) if listener = self.listeners[handler.type] listener.handlers = listener.handlers.dup listener.handlers[handler.option] = handler end end
check(_type = nil)
click to toggle source
# File lib/da_funk/event_listener.rb, line 9 def self.check(_type = nil) if _type self.listeners.each { |type, listener| listener.check if type == _type } else self.listeners.each { |type, listener| listener.check } end end
delete(event_listener)
click to toggle source
# File lib/da_funk/event_listener.rb, line 21 def self.delete(event_listener) self.listeners.delete(event_listener.type) end
new(type) { |self| ... }
click to toggle source
# File lib/da_funk/event_listener.rb, line 35 def initialize(type) @type = type @handlers = Hash.new yield self if block_given? self.register self.start end
register(event_listener)
click to toggle source
# File lib/da_funk/event_listener.rb, line 17 def self.register(event_listener) self.listeners[event_listener.type] = event_listener end
Public Instance Methods
check(&block)
click to toggle source
# File lib/da_funk/event_listener.rb, line 64 def check(&block) if block_given? @block_check = block else if @block_check && ! self.handlers.empty? && self.started? @block_check.call end end end
delete()
click to toggle source
# File lib/da_funk/event_listener.rb, line 47 def delete self.finish if self.started? EventListener.delete(self) end
finish(&block)
click to toggle source
# File lib/da_funk/event_listener.rb, line 74 def finish(&block) if block_given? @block_finish = block else @started = false @block_finish.call if @block_finish end end
register()
click to toggle source
# File lib/da_funk/event_listener.rb, line 43 def register EventListener.register(self) end
start(&block)
click to toggle source
# File lib/da_funk/event_listener.rb, line 52 def start(&block) if block_given? @block_start = block else if @block_start @started = @block_start.call else @started = true end end end
started?()
click to toggle source
# File lib/da_funk/event_listener.rb, line 83 def started? @started end