Module: PusherFake::Channel
- Defined in:
- lib/pusher-fake/channel.rb,
lib/pusher-fake/channel/public.rb,
lib/pusher-fake/channel/private.rb,
lib/pusher-fake/channel/presence.rb
Overview
Channel creation and management.
Defined Under Namespace
Classes: Presence, Private, Public
Constant Summary collapse
- PRIVATE_CHANNEL_PREFIX =
Prefix for private channels.
"private-"
- PRESENCE_CHANNEL_PREFIX =
Prefix for presence channels.
"presence-"
Class Attribute Summary collapse
-
.channels ⇒ Hash
Cache of existing channels.
Class Method Summary collapse
-
.factory(name) ⇒ Public|Private
Create a channel, determining the type by the name.
-
.remove(connection) ⇒ Object
Remove a connection from all channels.
-
.reset ⇒ Object
Reset the channel cache.
Class Attribute Details
.channels ⇒ Hash
Returns Cache of existing channels.
21 22 23 |
# File 'lib/pusher-fake/channel.rb', line 21 def channels @channels ||= {} end |
Class Method Details
.factory(name) ⇒ Public|Private
Create a channel, determining the type by the name.
29 30 31 32 |
# File 'lib/pusher-fake/channel.rb', line 29 def factory(name) self.channels ||= {} self.channels[name] ||= class_for(name).new(name) end |
.remove(connection) ⇒ Object
Remove a connection from all channels.
Also deletes the channel if it is empty.
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/pusher-fake/channel.rb', line 39 def remove(connection) return if channels.nil? channels.each do |name, channel| channel.remove(connection) if channels[name].connections.empty? channels.delete(name) end end end |
.reset ⇒ Object
Reset the channel cache.
52 53 54 |
# File 'lib/pusher-fake/channel.rb', line 52 def reset self.channels = {} end |