module Synthetics::Util

This module holds general purpose utilities for the gem.

Public Instance Methods

camelize(str) click to toggle source
# File lib/synthetics/util.rb, line 27
def camelize(str)
  first, *rest = str.split('_')
  rest.each_with_object(first) { |word, memo| memo << word.capitalize }
end
deep_camelize_keys(object) click to toggle source
# File lib/synthetics/util.rb, line 10
def deep_camelize_keys(object)
  deep_transform_keys(object) { |key| camelize(key.to_s) }
end
deep_snakeify_keys(object) click to toggle source
# File lib/synthetics/util.rb, line 6
def deep_snakeify_keys(object)
  deep_transform_keys(object) { |key| snakeify(key).to_sym }
end
deep_transform_keys(object) { |key] = deep_transform_keys(value, &block)| ... } click to toggle source
# File lib/synthetics/util.rb, line 14
def deep_transform_keys(object, &block)
  case object
  when Hash
    object.each_with_object({}) do |(key, value), hash|
      hash[yield key] = deep_transform_keys(value, &block)
    end
  when Array
    object.map { |elem| deep_transform_keys(elem, &block) }
  else
    object
  end
end
snakeify(str) click to toggle source
# File lib/synthetics/util.rb, line 32
def snakeify(str)
  str.gsub(/[A-Z]/) { |letter| "_#{letter.downcase}" }
end