Class: MaterialRaingular::Websocket::Emitter

Inherits:
Object
  • Object
show all
Defined in:
lib/material_raingular/websocket/emitter.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(channel = nil) ⇒ Emitter

Returns a new instance of Emitter.



22
23
24
# File 'lib/material_raingular/websocket/emitter.rb', line 22

def initialize(channel=nil)
  self.channel = channel
end

Instance Attribute Details

#channelObject

Returns the value of attribute channel.



25
26
27
# File 'lib/material_raingular/websocket/emitter.rb', line 25

def channel
  @channel
end

Class Method Details

.[](channel) ⇒ Object



5
6
7
# File 'lib/material_raingular/websocket/emitter.rb', line 5

def [](channel)
  new(channel)
end

.publish(channel, action, data) ⇒ Object



10
# File 'lib/material_raingular/websocket/emitter.rb', line 10

def publish(channel,action,data) new(channel).publish(action,data) end

.redisObject



8
# File 'lib/material_raingular/websocket/emitter.rb', line 8

def redis() new.redis end

.token(channel) ⇒ Object



9
# File 'lib/material_raingular/websocket/emitter.rb', line 9

def token(channel) new(channel).token end

Instance Method Details

#publish(action, data) ⇒ Object



18
19
20
21
# File 'lib/material_raingular/websocket/emitter.rb', line 18

def publish(action,data)
  return unless token.present?
  redis.publish "websocket_rails.events", [action,{data: data,channel: channel, token: token}].to_json
end

#redisObject



12
13
14
# File 'lib/material_raingular/websocket/emitter.rb', line 12

def redis()
  @redis ||= Redis.new(WebsocketRails.config.redis_options.reject{|k,v| k.to_sym == :driver})
end

#tokenObject



15
16
17
# File 'lib/material_raingular/websocket/emitter.rb', line 15

def token
  @token ||= redis.hget "websocket_rails.channel_tokens", channel
end