Compare commits

..

No commits in common. "4c4746fe8a5e3f31b21d51ee332489b41ac5194e" and "a4b70b6a98a42570416fc5ab46bf1b8c451816ac" have entirely different histories.

5 changed files with 18 additions and 20 deletions

View File

@ -1,7 +1,7 @@
PATH
remote: .
specs:
obsws (0.6.1)
obsws (0.6.0)
waitutil (~> 0.2.1)
websocket-driver (~> 0.7.5)

View File

@ -28,8 +28,8 @@ module OBSWS
ALL = LOW_VOLUME | HIGH_VOLUME
end
module Director
using Util::CoreExtensions
module EventDirector
include Util::String
def observers
@observers ||= {}
@ -50,13 +50,13 @@ module OBSWS
end
def fire(event, data)
observers[event.snakecase.to_sym]&.each { |block| data.empty? ? block.call : block.call(data) }
observers[snakecase(event).to_sym]&.each { |block| data.empty? ? block.call : block.call(data) }
end
end
class Client
include Logging
include Events::Director
include EventDirector
include Mixin::TearDown
include Mixin::OPCodes

View File

@ -1,17 +1,16 @@
module OBSWS
module Mixin
module Meta
using Util::CoreExtensions
include Util::String
def make_field_methods(*params)
params.each do |param|
define_singleton_method(param.to_s.snakecase) { @resp[param] }
define_singleton_method(snakecase(param.to_s)) { @resp[param] }
end
end
end
class MetaObject
using Util::CoreExtensions
include Mixin::Meta
def initialize(resp, fields)
@ -22,7 +21,7 @@ module OBSWS
def empty? = @fields.empty?
def attrs = @fields.map { |f| f.to_s.snakecase }
def attrs = @fields.map { |f| snakecase(f.to_s) }
end
# Represents a request response object

View File

@ -1,16 +1,15 @@
module OBSWS
module Util
module CoreExtensions
refine String do
def camelcase
split("_").map(&:capitalize).join
end
module String
def camelcase(s)
s.split("_").map(&:capitalize).join
end
def snakecase
gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
.downcase
end
def snakecase(s)
s
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
.downcase
end
end
end

View File

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