Module: DropletKit::Utils

Defined in:
lib/droplet_kit/utils.rb

Class Method Summary collapse

Class Method Details

.camelize(term) ⇒ Object



3
4
5
6
7
8
9
# 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) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# 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) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# 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