module DropletKit::Utils

Public Class Methods

camelize(term) click to toggle source
# File lib/droplet_kit/utils.rb, line 3
def self.camelize(term)
  string = term.to_s
  string.sub!(/^[a-z\d]*/, &:capitalize)
  string.gsub!(%r{(?:_|(/))([a-z\d]*)}i) { $2.capitalize }
  string.gsub!('/'.freeze, '::'.freeze)
  string
end
transform_keys(hash, &block) click to toggle source
# File lib/droplet_kit/utils.rb, line 22
def self.transform_keys(hash, &block)
  return hash.transform_keys(&block) if hash.respond_to?(:transform_keys)
  return to_enum(__caller__) unless block_given?

  {}.tap do |result|
    hash.each do |key, value|
      result[block.call(key)] = value
    end
  end
end
underscore(term) click to toggle source
# File lib/droplet_kit/utils.rb, line 11
def self.underscore(term)
  return term unless /[A-Z-]|::/ =~ term

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