def []=(key, value=nil)  

      # If we are assigning something to nil, let's remove it
      if value.nil?
        delete(key)
        sleep @key_sleep.to_f
        nil
      else
	    persistent = (value[:persistent].nil? ? 0 : (value[:persistent] ? 1 : 0))
	  
        Klass.addKey(@handle, key.to_s, value[:value].to_s, persistent)
        sleep @key_sleep.to_f
        value[:value].to_s
      end
    end
def []=(key, value=nil)  

      # If we are assigning something to nil, let's remove it
      if value.nil?
        delete(key)
        sleep @key_sleep.to_f
        nil
      else
	    persistent = (value[:persistent].nil? ? 0 : (value[:persistent] ? 1 : 0))
	  
        Klass.addKey(@handle, key.to_s, value[:value].to_s, persistent)
        sleep @key_sleep.to_f
        value[:value].to_s
      end
    end
Adds a key/value pair to the dictionary. Or, changes an existing key's value.
 @param [String] key key
 @param [String, Boolean] Value <b>:value</b> => value, <b>:persistent</b> => whether the key stays in the dictionary after the client that created it disconnects. Persistent is optional. Defaults to false

 @example
  dict["key1"] = ["value1", true] #adds value1 to dict["key1"] with persistent = true
  dict["key2"] = ["value2", false] #adds value2 to dict["key2"] with persistent = false
  dict["key3"] = ["value3"] #adds value to to dict["key3"] with the default persistent = false
  dict["key1"] = nil #removes the value of dict["key1"]

 @return [Boolean] returns true or raises an error