class OpenStruct
Public Instance Methods
to_hash(options = {})
click to toggle source
# File lib/conjoin/recursive_ostruct.rb, line 39 def to_hash options = {} convert_to_hash_recursive(self, options) end
Private Instance Methods
convert_to_hash_recursive(obj, options)
click to toggle source
# File lib/conjoin/recursive_ostruct.rb, line 45 def convert_to_hash_recursive(obj, options) result = obj if result.is_a? OpenStruct result = result.dup.to_h.with_sym_keys result.each do |key, val| result[key] = convert_to_hash_recursive(val, options) unless options[:exclude].try(:include?, key) end result = HashIndifferent.new result elsif result.is_a? Array result = result.map { |r| convert_to_hash_recursive(r, options) } end return result end