Class: HashUtils

Inherits:
Object
  • Object
show all
Defined in:
lib/utils/hash_utils.rb

Class Method Summary collapse

Class Method Details

.hash_to_open_struct(data_hash) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/utils/hash_utils.rb', line 3

def hash_to_open_struct(data_hash)
  elements_with_hash_values = data_hash.select { |key, value|  value.is_a? Hash }
  return OpenStruct.new(data_hash) if elements_with_hash_values.empty?

  result = OpenStruct.new(data_hash.select { |key, value|  !value.is_a?(Hash) })
  elements_with_hash_values.each do |key, value|
    result.send("#{key}=", hash_to_open_struct(value))
  end

  result.extend(OpenStructHashable) if RUBY_PLATFORM == "java"
  result
end