Class: Ably::Realtime::Channels

Inherits:
Object
  • Object
show all
Includes:
Modules::ChannelsCollection
Defined in:
lib/ably/realtime/channels.rb

Overview

Class that maintains a map of Channels ensuring Channels are reused

Instance Attribute Summary

Attributes included from Modules::ChannelsCollection

#length

Instance Method Summary collapse

Methods included from Modules::ChannelsCollection

#each

Constructor Details

#initialize(client) ⇒ Ably::Realtime::Channels



9
10
11
# File 'lib/ably/realtime/channels.rb', line 9

def initialize(client)
  super client, Ably::Realtime::Channel
end

Instance Method Details

#fetch(*args) {|options| ... } ⇒ Ably::Realtime::Channel

Return a Ably::Realtime::Channel for the given name if it exists, else the block will be called. This method is intentionally similar to Hash#fetch providing a simple way to check if a channel exists or not without creating one

Parameters:

  • name (String)

    The name of the channel

Yields:

  • (options)

    (optional) if a missing_block is passed to this method and no channel exists matching the name, this block is called

Yield Parameters:

  • name (String)

    of the missing channel

Returns:



33
34
35
# File 'lib/ably/realtime/channels.rb', line 33

def fetch(*args)
  super
end

#get(*args) ⇒ Ably::Realtime::Channel

Return a Ably::Realtime::Channel for the given name

Parameters:

Returns:



20
21
22
# File 'lib/ably/realtime/channels.rb', line 20

def get(*args)
  super
end

#release(channel) ⇒ void

This method returns an undefined value.

Detaches the Realtime Channel and releases all associated resources.

Releasing a Realtime Channel is not typically necessary as a channel, once detached, consumes no resources other than the memory footprint of the Realtime Channel object. Release channels to free up resources if required



44
45
46
47
48
# File 'lib/ably/realtime/channels.rb', line 44

def release(channel)
  get(channel).detach do
    @channels.delete(channel)
  end if @channels.has_key?(channel)
end