Class: Tamashii::Server::Subscription::Redis
- Inherits:
-
Object
- Object
- Tamashii::Server::Subscription::Redis
- Defined in:
- lib/tamashii/server/subscription/redis.rb
Overview
:nodoc:
Instance Method Summary collapse
- #broadcast(payload) ⇒ Object
-
#initialize(server) ⇒ Redis
constructor
A new instance of Redis.
- #pack(data) ⇒ Object
- #prepare ⇒ Object
- #shutdown ⇒ Object
- #subscribe ⇒ Object
- #unpack(data) ⇒ Object
Constructor Details
#initialize(server) ⇒ Redis
Returns a new instance of Redis.
8 9 10 |
# File 'lib/tamashii/server/subscription/redis.rb', line 8 def initialize(server) @server = server end |
Instance Method Details
#broadcast(payload) ⇒ Object
12 13 14 15 |
# File 'lib/tamashii/server/subscription/redis.rb', line 12 def broadcast(payload) Server.logger.info("Broadcasting: #{payload}") broadcast_conn.publish('_tamashii_internal', pack(payload)) end |
#pack(data) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/tamashii/server/subscription/redis.rb', line 29 def pack(data) case data when Numeric then "N:#{data}" when String then "S:#{data}" else "B:#{data.pack('C*')}" end end |
#prepare ⇒ Object
25 26 27 |
# File 'lib/tamashii/server/subscription/redis.rb', line 25 def prepare ensure_listener_running end |
#shutdown ⇒ Object
21 22 23 |
# File 'lib/tamashii/server/subscription/redis.rb', line 21 def shutdown subscription_conn.unsubscribe end |
#subscribe ⇒ Object
17 18 19 |
# File 'lib/tamashii/server/subscription/redis.rb', line 17 def subscribe ensure_listener_running end |
#unpack(data) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/tamashii/server/subscription/redis.rb', line 38 def unpack(data) case data[0..1] when 'N:' then data[2..-1].to_i when 'S:' then data[2..-1] else data[2..-1].unpack('C*') end end |