module BenchmarkDriver

def configure_defaults(klass, defaults)

def configure_defaults(klass, defaults)
  class << klass
    attr_accessor :defaults
  end
  klass.defaults = defaults
  klass.prepend(Module.new {
    def initialize(*)
      super
      self.class.defaults.each do |key, value|
        if public_send(key).nil?
          begin
            value = value.dup
          rescue TypeError # for Ruby <= 2.3, like `true.dup`
          end
          public_send("#{key}=", value)
        end
      end
    end
  })
  def klass.inherited(child)
    child.defaults = self.defaults
  end
end