refactor Callbacks

This commit is contained in:
onyx-and-iris 2023-07-26 18:55:19 +01:00
parent 438f3b1659
commit d12a1a5954

View File

@ -37,25 +37,26 @@ module OBSWS
module Callbacks
include Util
def observers
@observers ||= []
end
def add_observer(observer)
@observers = [] unless defined?(@observers)
observer = [observer] if !observer.respond_to? :each
observer.each { |o| @observers.append(o) }
observer.each { |o| observers << o }
end
def remove_observer(observer)
@observers.delete(observer)
observers.delete(observer)
end
def notify_observers(event, data)
if defined?(@observers)
@observers.each do |o|
if o.respond_to? "on_#{event.to_snake}"
if data.empty?
o.send("on_#{event.to_snake}")
else
o.send("on_#{event.to_snake}", data)
end
observers.each do |o|
if o.respond_to? "on_#{event.to_snake}"
if data.empty?
o.send("on_#{event.to_snake}")
else
o.send("on_#{event.to_snake}", data)
end
end
end