module PayPoint::Blue::Utils

Miscellaneous helper methods used in multiple places.

Public Instance Methods

camelcase(original) click to toggle source
# File lib/paypoint/blue/utils.rb, line 41
def camelcase(original)
  string = original.is_a?(Symbol) ? original.to_s : original.dup
  string.gsub!(/_([a-z\d]*)/) { Regexp.last_match(1).capitalize }
  string.to_sym
end
camelcase_and_symbolize_keys(hash) click to toggle source
# File lib/paypoint/blue/utils.rb, line 20
def camelcase_and_symbolize_keys(hash)
  case hash
  when Hash
    hash.each_with_object({}) do |(key, value), camelized|
      camelized[camelcase(key)] = camelcase_and_symbolize_keys(value)
    end
  when Enumerable
    hash.map { |v| camelcase_and_symbolize_keys(v) }
  else
    hash
  end
end
snakecase(original) click to toggle source
# File lib/paypoint/blue/utils.rb, line 33
def snakecase(original)
  string = original.is_a?(Symbol) ? original.to_s : original.dup
  string.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
  string.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
  string.downcase!
  string.to_sym
end
snakecase_and_symbolize_keys(hash) click to toggle source
# File lib/paypoint/blue/utils.rb, line 7
def snakecase_and_symbolize_keys(hash)
  case hash
  when Hash
    hash.each_with_object({}) do |(key, value), snakified|
      snakified[snakecase(key)] = snakecase_and_symbolize_keys(value)
    end
  when Enumerable
    hash.map { |v| snakecase_and_symbolize_keys(v) }
  else
    hash
  end
end