Class: Hash

Inherits:
Object show all
Defined in:
lib/git/lighttp/extensions.rb

Instance Method Summary collapse

Instance Method Details

#symbolize_keysObject

Only symbolize all keys, including all key in sub-hashes.



34
35
36
37
38
39
40
# File 'lib/git/lighttp/extensions.rb', line 34

def symbolize_keys
  return self.clone if self.empty?
  self.inject({}) do |h, (k, v)|
    h[k.to_sym] = (v.kind_of? Hash) ? v.symbolize_keys : v
    h
  end
end

#to_structObject

Convert to Struct including all values that are Hash class.



43
44
45
46
47
48
49
# File 'lib/git/lighttp/extensions.rb', line 43

def to_struct
  keys    = self.keys.sort
  members = keys.map(&:to_sym)
  Struct.new(*members).new(*keys.map do |key|
    (self[key].kind_of? Hash) ?  self[key].to_struct : self[key]
  end) unless self.empty?
end