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