mirror of
https://github.com/onyx-and-iris/obsws-ruby.git
synced 2024-11-16 03:00:47 +00:00
54 lines
940 B
Ruby
54 lines
940 B
Ruby
|
require_relative "util"
|
||
|
|
||
|
module OBSWS
|
||
|
module Mixin
|
||
|
module Meta
|
||
|
include Util
|
||
|
|
||
|
def make_response_methods(*params)
|
||
|
params.each do |param|
|
||
|
define_singleton_method(param.to_s.to_snake) { @resp[param] }
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class MetaObject
|
||
|
include Mixin::Meta
|
||
|
|
||
|
def initialize(resp, fields)
|
||
|
@resp = resp
|
||
|
@fields = fields
|
||
|
self.make_response_methods *fields
|
||
|
end
|
||
|
|
||
|
def empty? = @fields.empty?
|
||
|
|
||
|
def attrs = @fields.map { |f| f.to_s.to_snake }
|
||
|
end
|
||
|
|
||
|
class Response < MetaObject
|
||
|
end
|
||
|
|
||
|
class Data < MetaObject
|
||
|
end
|
||
|
|
||
|
module TearDown
|
||
|
def close
|
||
|
@base_client.driver.close
|
||
|
end
|
||
|
end
|
||
|
|
||
|
module OPCodes
|
||
|
HELLO = 0
|
||
|
IDENTIFY = 1
|
||
|
IDENTIFIED = 2
|
||
|
REIDENTIFY = 3
|
||
|
EVENT = 5
|
||
|
REQUEST = 6
|
||
|
REQUESTRESPONSE = 7
|
||
|
REQUESTBATCH = 8
|
||
|
REQUESTBATCHRESPONSE = 9
|
||
|
end
|
||
|
end
|
||
|
end
|