module MultiJson::ConvertibleHashKeys
def convert_hash_keys(value, &key_modifier)
-
(Object)- converted value
Other tags:
- Yield: - block to transform each key
Parameters:
-
value(Object) -- value to convert
Other tags:
- Api: - private
def convert_hash_keys(value, &key_modifier) case value when Hash value.to_h { |k, v| [key_modifier.call(k), convert_hash_keys(v, &key_modifier)] } when Array value.map { |v| convert_hash_keys(v, &key_modifier) } else convert_simple_object(value) end end
def convert_simple_object(obj)
-
(Object)- converted object
Parameters:
-
obj(Object) -- object to convert
Other tags:
- Api: - private
def convert_simple_object(obj) return obj if simple_object?(obj) || obj.respond_to?(:to_json) obj.respond_to?(:to_s) ? obj.to_s : obj end
def simple_object?(obj)
-
(Boolean)- true if object is a simple type
Parameters:
-
obj(Object) -- object to check
Other tags:
- Api: - private
def simple_object?(obj) SIMPLE_OBJECT_CLASSES.any? { |klass| obj.is_a?(klass) } end
def stringify_keys(value)
-
(Object)- value with stringified keys
Parameters:
-
value(Object) -- value to convert
Other tags:
- Api: - private
def stringify_keys(value) convert_hash_keys(value) { |key| key.respond_to?(:to_s) ? key.to_s : key } end
def symbolize_keys(value)
-
(Object)- value with symbolized keys
Parameters:
-
value(Object) -- value to convert
Other tags:
- Api: - private
def symbolize_keys(value) convert_hash_keys(value) { |key| key.respond_to?(:to_sym) ? key.to_sym : key } end