Sha256: 4172ed75be938b5665e886046f816a5ff8e35e9b202854f2363f8f28bc109b8c

Contents?: true

Size: 725 Bytes

Versions: 2

Compression:

Stored size: 725 Bytes

Contents

module WebsocketRails
  class Channel

    attr_reader :name, :subscribers

    def initialize(channel_name)
      @subscribers = []
      @name        = channel_name
      @private     = false
    end

    def subscribe(connection)
      @subscribers << connection
    end

    def trigger(event_name,data={})
      data.merge! :channel => name
      event = Event.new event_name, data
      send_data event
    end

    def trigger_event(event)
      send_data event
    end
    
    def make_private
      @private = true
    end
    
    def is_private?
      @private
    end
    
    private

    def send_data(event)
      subscribers.each do |subscriber|
        subscriber.trigger event
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
websocket-rails-0.1.7 lib/websocket_rails/channel.rb
websocket-rails-0.1.6 lib/websocket_rails/channel.rb