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,19 +37,21 @@ module OBSWS
module Callbacks module Callbacks
include Util include Util
def observers
@observers ||= []
end
def add_observer(observer) def add_observer(observer)
@observers = [] unless defined?(@observers)
observer = [observer] if !observer.respond_to? :each observer = [observer] if !observer.respond_to? :each
observer.each { |o| @observers.append(o) } observer.each { |o| observers << o }
end end
def remove_observer(observer) def remove_observer(observer)
@observers.delete(observer) observers.delete(observer)
end end
def notify_observers(event, data) def notify_observers(event, data)
if defined?(@observers) observers.each do |o|
@observers.each do |o|
if o.respond_to? "on_#{event.to_snake}" if o.respond_to? "on_#{event.to_snake}"
if data.empty? if data.empty?
o.send("on_#{event.to_snake}") o.send("on_#{event.to_snake}")
@ -60,7 +62,6 @@ module OBSWS
end end
end end
end end
end
class Client class Client
include Logging include Logging