mirror of
https://github.com/onyx-and-iris/obsws-ruby.git
synced 2026-04-13 11:23:31 +00:00
Callbacks module extended
Now supports callback methods as well observer classes levels example now uses callback methods register,deregister now alias add/remove observer methods minor version bump
This commit is contained in:
@@ -43,7 +43,7 @@ module OBSWS
|
||||
|
||||
def add_observer(observer)
|
||||
observer = [observer] if !observer.respond_to? :each
|
||||
observer.each { |o| observers << o }
|
||||
observer.each { |o| observers << o unless observers.include? o }
|
||||
end
|
||||
|
||||
def remove_observer(observer)
|
||||
@@ -52,15 +52,18 @@ module OBSWS
|
||||
|
||||
def notify_observers(event, data)
|
||||
observers.each do |o|
|
||||
if o.respond_to? "on_#{snakecase(event)}"
|
||||
if data.empty?
|
||||
o.send("on_#{snakecase(event)}")
|
||||
else
|
||||
o.send("on_#{snakecase(event)}", data)
|
||||
if o.is_a? Method
|
||||
if o.name.to_s == "on_#{snakecase(event)}"
|
||||
data.empty? ? o.call : o.call(data)
|
||||
end
|
||||
elsif o.respond_to? "on_#{snakecase(event)}"
|
||||
data.empty? ? o.send("on_#{snakecase(event)}") : o.send("on_#{snakecase(event)}", data)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
alias_method :register, :add_observer
|
||||
alias_method :deregister, :remove_observer
|
||||
end
|
||||
|
||||
class Client
|
||||
|
||||
@@ -7,11 +7,11 @@ module OBSWS
|
||||
end
|
||||
|
||||
def minor
|
||||
3
|
||||
4
|
||||
end
|
||||
|
||||
def patch
|
||||
3
|
||||
0
|
||||
end
|
||||
|
||||
def to_a
|
||||
|
||||
Reference in New Issue
Block a user