module GraphQL::Subscriptions::Serialize

def load_value(value)

Returns:
  • (Object) - An object that load Global::Identification recursive

Parameters:
  • value (Object) -- A parsed JSON object
def load_value(value)
  if value.is_a?(Array)
    value.map{|item| load_value(item)}
  elsif value.is_a?(Hash)
    if value.size == 1 && value.key?(GLOBALID_KEY)
      GlobalID::Locator.locate(value[GLOBALID_KEY])
    elsif value.size == 1 && value.key?(SYMBOL_KEY)
      value[SYMBOL_KEY].to_sym
    else
      loaded_h = {}
      sym_keys = value.fetch(SYMBOL_KEYS_KEY, [])
      value.each do |k, v|
        if k == SYMBOL_KEYS_KEY
          next
        end
        if sym_keys.include?(k)
          k = k.to_sym
        end
        loaded_h[k] = load_value(v)
      end
      loaded_h
    end
  else
    value
  end
end