Module: HashTweaks::Camelize

Defined in:
lib/hash-tweaks.rb

Instance Method Summary collapse

Instance Method Details

#camelize(first_letter = :upper) ⇒ Object



9
10
11
# File 'lib/hash-tweaks.rb', line 9

def camelize(first_letter = :upper)
  dup.camelize!(first_letter)
end

#camelize!(first_letter = :upper) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/hash-tweaks.rb', line 13

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