class TorgMailruApi::APIRequest::DeepOpenStruct

Public Class Methods

load(item) click to toggle source
# File lib/torg_mailru_api.rb, line 54
def self.load item
  raise ArgumentError, "DeepOpenStruct must be passed a Hash or Array" unless(item.is_a?(Hash) || item.is_a?(Array))
  self.convert_from_hash_recursive item
end

Private Class Methods

convert_from_hash_recursive(obj) click to toggle source
# File lib/torg_mailru_api.rb, line 61
def self.convert_from_hash_recursive obj
  result = obj
  case result
    when Hash
      result = result.dup
      result.each do |k,v|
        result[k] = convert_from_hash_recursive(v)
      end
      result = DeepOpenStruct.new result
    when Array
      result = result.map { |v| convert_from_hash_recursive(v) }
  end
  result
end

Public Instance Methods

to_h() click to toggle source
# File lib/torg_mailru_api.rb, line 50
def to_h
  convert_to_hash_recursive self.dup
end

Private Instance Methods

convert_to_hash_recursive(obj) click to toggle source
# File lib/torg_mailru_api.rb, line 76
def convert_to_hash_recursive obj
  result = obj
  case result
    when OpenStruct
      result = result.marshal_dump
      result.each do |k,v|
        result[k] = convert_to_hash_recursive(v)
      end
    when Array
      result = result.map { |v| convert_to_hash_recursive(v) }
  end
  result
end