class JanusGateway::Resource::Plugin
Attributes
name[R]
@return [String]
session[R]
@return [JanusGateway::Resource::Session]
Public Class Methods
new(client, session, plugin_name)
click to toggle source
@param [JanusGateway::Client] client @param [JanusGateway::Resource::Session] session @param [String] plugin_name
Calls superclass method
JanusGateway::Resource::new
# File lib/janus_gateway/resource/plugin.rb, line 12 def initialize(client, session, plugin_name) @session = session @name = plugin_name super(client) end
Public Instance Methods
create()
click to toggle source
@return [Concurrent::Promise]
# File lib/janus_gateway/resource/plugin.rb, line 20 def create promise = Concurrent::Promise.new client.send_transaction( janus: 'attach', plugin: name, session_id: @session.id ).then do |*args| _on_created(*args) promise.set(self).execute end.rescue do |error| promise.fail(error).execute end promise end
destroy()
click to toggle source
# File lib/janus_gateway/resource/plugin.rb, line 38 def destroy promise = Concurrent::Promise.new _on_destroyed promise.set(self).execute promise end
Private Instance Methods
_on_created(data)
click to toggle source
# File lib/janus_gateway/resource/plugin.rb, line 49 def _on_created(data) @id = data['data']['id'] session.on :destroy do |_data| destroy end emit :create end
_on_destroyed()
click to toggle source
# File lib/janus_gateway/resource/plugin.rb, line 59 def _on_destroyed emit :destroy end