module Awsmeta::Helpers::Hash

a set of hash processors

Public Instance Methods

symbolize_and_underscore_keys(obj) click to toggle source
# File lib/awsmeta/helpers/hash/hash.rb, line 20
def symbolize_and_underscore_keys(obj)
  obj.each_with_object({}) do |(k, v), h|
    h[k.nil? ? k : underscore(k).to_sym] = v
  end
end
underscore(camel_cased_word) click to toggle source
# File lib/awsmeta/helpers/hash/hash.rb, line 10
def underscore(camel_cased_word)
  return camel_cased_word unless /[A-Z-]|::/.match?(camel_cased_word)

  word = camel_cased_word.to_s.gsub('::', '/')
  word.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
      .gsub(/([a-z\d])([A-Z])/, '\1_\2')
      .tr('-', '_')
      .downcase
end