Sha256: 8fa993c079ecd9e3b003fe4efe44269e93c28164411d6aa8b78a7bd83d544418

Contents?: true

Size: 652 Bytes

Versions: 1

Compression:

Stored size: 652 Bytes

Contents

require 'deepstream/record'

module Deepstream
  class List < Record
    def initialize(*args)
      super
      @data = []
    end

    def add(record_name)
      set(@data << record_name) unless @data.include?(record_name)
    end

    def read(version, data)
      @version = version.to_i
      data = JSON.parse(data)
      if data.is_a?(Array)
        @data.concat(data).uniq!
        set(@data) if @data.size > data.size
      end
    end

    def remove(record_name)
      set(@data) if @data.delete(record_name)
    end

    def keys
      @data
    end

    def all
      @data.map { |record_name| @client.get(record_name) }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
deepstream-0.2.7 lib/deepstream/list.rb