Class: Jets::Pascalize

Inherits:
Object
  • Object
show all
Defined in:
lib/jets/pascalize.rb

Class Method Summary collapse

Class Method Details

.pascal_key(k, parent_key = nil) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/jets/pascalize.rb', line 22

def pascal_key(k, parent_key=nil)
  if parent_key == "Variables" # do not pascalize keys anything under Variables
    k
  else
    k = k.to_s.camelize
    k.slice(0,1).capitalize + k.slice(1..-1) # capitalize first letter only
  end
end

.pascalize(value, parent_key = nil) ⇒ Object

Specialized pascalize that will not pascalize keys under the Variables part of the hash structure. Based on: stackoverflow.com/questions/8706930/converting-nested-hash-keys-from-camelcase-to-snake-case-in-ruby



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/jets/pascalize.rb', line 7

def pascalize(value, parent_key=nil)
  case value
    when Array
      value.map { |v| pascalize(v) }
    when Hash
      initializer = value.map do |k, v|
        new_key = pascal_key(k, parent_key)
        [new_key, pascalize(v, new_key)]
      end
      Hash[initializer]
    else
      value
   end
end