Sha256: 86d9bc656b6e734fdc3505ba1be67a18e2875ec35603496f9bfcf178333c0093

Contents?: true

Size: 595 Bytes

Versions: 10

Compression:

Stored size: 595 Bytes

Contents

require 'active_support/hash_with_indifferent_access'

module WebsocketRails

  class << self

    def channel_manager
      @channel_manager ||= ChannelManager.new
    end

    def [](channel)
      channel_manager[channel]
    end

  end

  class ChannelManager

    attr_reader :channels

    def initialize
      @channels = HashWithIndifferentAccess.new
    end

    def [](channel)
      @channels[channel] ||= Channel.new channel
    end

    def unsubscribe(connection)
      @channels.each do |channel_name, channel|
        channel.unsubscribe(connection)
      end
    end

  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
websocket-rails-0.4.9 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.8 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.7 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.6 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.5 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.4 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.3 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.2 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.1 lib/websocket_rails/channel_manager.rb
websocket-rails-0.4.0 lib/websocket_rails/channel_manager.rb