class BN::Middleware::KeyConverter

Recursively convert all keys in a Hash from camelCase or dashed-delimited Strings into underscore_delimited Symbols.

Public Instance Methods

execute(value) click to toggle source

Execute the middleware.

@param [#to_h] value @return [Hash]

# File lib/bn/middleware/key_converter.rb, line 11
def execute(value)
  convert_keys(value.to_h)
end

Protected Instance Methods

convert_keys(data) click to toggle source
# File lib/bn/middleware/key_converter.rb, line 17
def convert_keys(data)
  data.keys.each do |key|
    value = data.delete(key)
    value = convert_keys(value) if value.is_a?(Hash)
    key = key.gsub(/([a-z\d])([A-Z])/, "\1_\2").tr("-", "_").downcase.to_sym

    data[key] = value
  end
end