class Jylis::DataType::UJSON
Unordered JSON.
Public Instance Methods
clr(*keys)
click to toggle source
Remove all data stored at or under the given `key`.
# File lib/jylis-rb/data_types/ujson.rb, line 32 def clr(*keys) unless keys.count >= 1 raise ArgumentError.new("Must provide at least one key") end params = ["UJSON", "CLR"] + keys result = connection.query(*params) unless result == "OK" raise "Failed: UJSON CLR #{params.join(' ')}" end end
get(*keys)
click to toggle source
Get the JSON representation of the data currently held at `key`.
# File lib/jylis-rb/data_types/ujson.rb, line 12 def get(*keys) unless keys.count >= 1 raise ArgumentError.new("Must provide at least one key") end params = ["UJSON", "GET"] + keys result = connection.query(*params) result == "" ? result : Oj.load(result) end
ins(*args)
click to toggle source
Insert the given `value` as a new element in the set of values stored at `key`.
@overload ins(*keys, value)
# File lib/jylis-rb/data_types/ujson.rb, line 50 def ins(*args) key_value_query(__method__, *args) end
rm(*args)
click to toggle source
Remove the specified `value` from the set of values stored at `key`.
@overload rm(*keys, value)
# File lib/jylis-rb/data_types/ujson.rb, line 57 def rm(*args) key_value_query(__method__, *args) end
set(*args)
click to toggle source
Store the given `ujson` data at the given `key`.
@overload set(*keys, value)
# File lib/jylis-rb/data_types/ujson.rb, line 27 def set(*args) key_value_query(__method__, *args) end
Private Instance Methods
key_value_query(function, *args)
click to toggle source
Execute a query consisting of (*keys, value) that returns “OK” on success.
@param function [String, Symbol] the Jylis
function name @param args [Array] the list of keys, with the value last
# File lib/jylis-rb/data_types/ujson.rb, line 67 def key_value_query(function, *args) unless args.count >= 2 raise ArgumentError.new("Must provide at least one key and the value") end function = function.to_s.upcase value = args.pop keys = args params = ["UJSON", function] + keys params.push Oj.dump(value) result = connection.query(*params) unless result == "OK" raise "Failed: UJSON #{function} #{params.join(' ')}" end end