Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/prigner/extensions.rb
Instance Method Summary collapse
-
#instance_variables_set_to(object) ⇒ Object
Set instance variables by key and value only if object respond to access method for variable.
-
#symbolize_keys ⇒ Object
Only symbolize all keys, including all key in sub-hashes.
-
#to_struct ⇒ Object
Convert to Struct including all values that are Hash class.
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_keys ⇒ Object
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_struct ⇒ Object
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 |