class EZFormat::Hash

Public Class Methods

to_snake_case(hash) click to toggle source
# File lib/ezformat.rb, line 4
def to_snake_case(hash)
  hash.map do |key, value|
    value = to_snake_case(value) if value.is_a?(::Hash)

    snake_cased_key = snake_case_key(key)

    [snake_cased_key, value]
  end.to_h
end

Private Class Methods

snake_case_key(key) click to toggle source
# File lib/ezformat.rb, line 16
def snake_case_key(key)
  snake_cased_key = ''

  key.to_s.split('') do |letter|
    snake_cased_key += '_' if letter != letter.downcase
    snake_cased_key += letter.downcase
  end

  return snake_cased_key.to_sym if key.is_a?(Symbol)

  snake_cased_key
end