Sha256: 0b52b3779b904178adfcc91c6d6969eba136c55b418685f0fffba6c6defb7ca2

Contents?: true

Size: 1.11 KB

Versions: 7

Compression:

Stored size: 1.11 KB

Contents

module Doppelserver
  class Data
    def initialize
      @data = {}
      @next_keys = {}
    end

    def clear
      @data = {}
      @next_keys = {}
    end

    def collection?(name)
      @data.key?(name)
    end

    def collection_key?(collection, key)
      collection?(collection) && @data[collection].key?(key)
    end

    def get_collection(name)
      @data[name]
    end

    def get_value(collection, key)
      @data[collection][key]
    end

    def add(collection, data)
      unless collection?(collection)
        @data[collection] = {}
        @next_keys[collection] = 0
      end
      next_key = @next_keys[collection]
      @data[collection][next_key.to_s] = data
      @next_keys[collection] += 1
      next_key.to_s
    end

    def update?(collection, id, data)
      data.each_key do |key|
        return false unless @data[collection][id].key?(key)
      end
      data.each do |key, value|
        @data[collection][id][key] = value
      end
      true
    end

    def delete(collection, key)
      @data[collection].delete(key)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
doppelserver-0.2.6 lib/doppelserver/data.rb
doppelserver-0.2.5 lib/doppelserver/data.rb
doppelserver-0.2.4 lib/doppelserver/data.rb
doppelserver-0.2.3 lib/doppelserver/data.rb
doppelserver-0.2.2 lib/doppelserver/data.rb
doppelserver-0.2.1 lib/doppelserver/data.rb
doppelserver-0.2.0 lib/doppelserver/data.rb