lib/wolf_core/utils/hash_utils.rb



# frozen_string_literal: true

module WolfCore
  module HashUtils
    def deep_to_h(hash)
      hash.transform_values do |value|
        if value.is_a?(Hash)
          deep_to_h(value)
        elsif value.is_a?(Array)
          value.map { |v| deep_to_h(v) }
        elsif value.respond_to?(:to_h) && !value.is_a?(Hash)
          deep_to_h(value.to_h)
        else
          value
        end
      end
    end
  end
end