remove_observers now accepts array of callbacks

callbacks aliases observers

patch bump
This commit is contained in:
onyx-and-iris 2023-08-03 14:15:46 +01:00
parent aeec0635ca
commit f669498c69
2 changed files with 5 additions and 3 deletions

View File

@ -47,10 +47,11 @@ module OBSWS
end end
def remove_observer(observer) def remove_observer(observer)
observers.delete(observer) observer = [observer] unless observer.respond_to? :each
observers.reject! { |o| observer.include? o }
end end
def notify_observers(event, data) private def notify_observers(event, data)
observers.each do |o| observers.each do |o|
if o.is_a? Method if o.is_a? Method
if o.name.to_s == "on_#{snakecase(event)}" if o.name.to_s == "on_#{snakecase(event)}"
@ -62,6 +63,7 @@ module OBSWS
end end
end end
alias_method :callbacks, :observers
alias_method :register, :add_observer alias_method :register, :add_observer
alias_method :deregister, :remove_observer alias_method :deregister, :remove_observer
end end

View File

@ -11,7 +11,7 @@ module OBSWS
end end
def patch def patch
0 1
end end
def to_a def to_a