Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/prigner/extensions.rb

Instance Method Summary collapse

Instance Method Details

#instance_variables_set_to(object) ⇒ Object

Set instance variables by key and value only if object respond to access method for variable.



27
28
29
30
31
32
# File 'lib/prigner/extensions.rb', line 27

def instance_variables_set_to(object)
  collect do |variable, value|
    object.instance_variable_set("@#{variable}", value) if object.respond_to? variable
  end
  object
end

#symbolize_keysObject

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



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/prigner/extensions.rb', line 13

def symbolize_keys
  return self.clone if self.empty?
  self.inject({}) do |hash, (key, value)|
    hash[key.to_sym] = if value.kind_of? Hash
                         value.symbolize_keys
                       else
                         value
                       end
    hash
  end
end

#to_structObject

Convert to Struct including all values that are Hash class.



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/prigner/extensions.rb', line 35

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