# encoding: UTF-8 # frozen_string_literal: true require 'regexp-match-polyfill' if RUBY_VERSION < '2.4' require 'active_support/core_ext/string/inflections' module HashTweaks module Camelize def camelize(first_letter = :upper) dup.camelize!(first_letter) end def camelize!(first_letter = :upper) keys.each do |key| # Check if key is symbol or string and if it is not CONSTANT_VARIABLE. if (Symbol === key || String === key) && !key.match?(/\A[A-Z_][A-Z_0-9]*\z/) new_key = (Symbol === key ? key.to_s : key).camelize(first_letter) self[Symbol === key ? new_key.to_sym : new_key] = self.delete(key) end end self end end end Hash.include HashTweaks::Camelize