mirror of
https://github.com/onyx-and-iris/obsws-ruby.git
synced 2025-01-18 05:20:47 +00:00
now using String refinement
Events Director module renamed patch bump
This commit is contained in:
parent
3a0f298045
commit
4c4746fe8a
@ -28,8 +28,8 @@ module OBSWS
|
||||
ALL = LOW_VOLUME | HIGH_VOLUME
|
||||
end
|
||||
|
||||
module EventDirector
|
||||
include Util::String
|
||||
module Director
|
||||
using Util::CoreExtensions
|
||||
|
||||
def observers
|
||||
@observers ||= {}
|
||||
@ -50,13 +50,13 @@ module OBSWS
|
||||
end
|
||||
|
||||
def fire(event, data)
|
||||
observers[snakecase(event).to_sym]&.each { |block| data.empty? ? block.call : block.call(data) }
|
||||
observers[event.snakecase.to_sym]&.each { |block| data.empty? ? block.call : block.call(data) }
|
||||
end
|
||||
end
|
||||
|
||||
class Client
|
||||
include Logging
|
||||
include EventDirector
|
||||
include Events::Director
|
||||
include Mixin::TearDown
|
||||
include Mixin::OPCodes
|
||||
|
||||
|
@ -1,16 +1,17 @@
|
||||
module OBSWS
|
||||
module Mixin
|
||||
module Meta
|
||||
include Util::String
|
||||
using Util::CoreExtensions
|
||||
|
||||
def make_field_methods(*params)
|
||||
params.each do |param|
|
||||
define_singleton_method(snakecase(param.to_s)) { @resp[param] }
|
||||
define_singleton_method(param.to_s.snakecase) { @resp[param] }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class MetaObject
|
||||
using Util::CoreExtensions
|
||||
include Mixin::Meta
|
||||
|
||||
def initialize(resp, fields)
|
||||
@ -21,7 +22,7 @@ module OBSWS
|
||||
|
||||
def empty? = @fields.empty?
|
||||
|
||||
def attrs = @fields.map { |f| snakecase(f.to_s) }
|
||||
def attrs = @fields.map { |f| f.to_s.snakecase }
|
||||
end
|
||||
|
||||
# Represents a request response object
|
||||
|
@ -1,16 +1,17 @@
|
||||
module OBSWS
|
||||
module Util
|
||||
module String
|
||||
def camelcase(s)
|
||||
s.split("_").map(&:capitalize).join
|
||||
module CoreExtensions
|
||||
refine String do
|
||||
def camelcase
|
||||
split("_").map(&:capitalize).join
|
||||
end
|
||||
|
||||
def snakecase(s)
|
||||
s
|
||||
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
||||
def snakecase
|
||||
gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
||||
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
||||
.downcase
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -11,7 +11,7 @@ module OBSWS
|
||||
end
|
||||
|
||||
def patch
|
||||
1
|
||||
2
|
||||
end
|
||||
|
||||
def to_a
|
||||
|
Loading…
Reference in New Issue
Block a user