Class: Wamp::Manager::Base

Inherits:
SimpleDelegator
  • Object
show all
Includes:
WebSocket::Driver::EventEmitter
Defined in:
lib/wamp/manager/base.rb,
lib/wamp/manager/hello_event.rb

Overview

handles hello event

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, session) ⇒ Base



13
14
15
16
17
# File 'lib/wamp/manager/base.rb', line 13

def initialize(options = {})
  super()
  @options = options
  @session = Session.new(self)
end

Instance Attribute Details

#sessionObject (readonly)

Returns the value of attribute session.



11
12
13
# File 'lib/wamp/manager/base.rb', line 11

def session
  @session
end

Class Method Details

.constantize(camel_cased_word) ⇒ Object



35
36
37
# File 'lib/wamp/manager/hello_event.rb', line 35

def self.constantize(camel_cased_word)
  Object.const_get(camel_cased_word)
end

.demodulize(path) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/wamp/manager/hello_event.rb', line 26

def self.demodulize(path)
  path = path.to_s
  if i = path.rindex("::") # rubocop:disable Lint/AssignmentInCondition
    path[(i + 2), path.length]
  else
    path
  end
end

.instance_from(message, session) ⇒ Object



20
21
22
23
24
# File 'lib/wamp/manager/hello_event.rb', line 20

def self.instance_from(message, session)
  klass_name = demodulize(message.class.name)
  klass = constantize("Wamp::Manager::#{klass_name}Event")
  klass.new(message, session)
end

Instance Method Details

#authObject



26
27
28
# File 'lib/wamp/manager/base.rb', line 26

def auth
  @options.fetch(:auth, Auth::Anonymous.new)
end

#authenticate(challenge) ⇒ Object



36
37
38
# File 'lib/wamp/manager/base.rb', line 36

def authenticate(challenge)
  auth.authenticate(challenge)
end

#emit_event(message) ⇒ Object



16
17
18
# File 'lib/wamp/manager/hello_event.rb', line 16

def emit_event(message)
  session.emit(emit_event_name, message)
end

#on_message(message) ⇒ Object



21
22
23
24
# File 'lib/wamp/manager/base.rb', line 21

def on_message(message)
  manager = Manager::Event.resolve(message, session)
  manager.emit_event(message)
end

#runObject



30
31
32
33
34
# File 'lib/wamp/manager/base.rb', line 30

def run
  message = Message::Hello.new("realm1")
  manager = Manager::Event::Hello.new(message, session)
  manager.add_event_listener # adds on :join event listener
end

#transmit(data) ⇒ Object



19
# File 'lib/wamp/manager/base.rb', line 19

def transmit(data); end