class HTTP::Options
def def_option(name, &interpreter)
def def_option(name, &interpreter) defined_options << name.to_sym interpreter ||= lambda { |v| v } attr_accessor name protected :"#{name}=" define_method(:"with_#{name}") do |value| dup { |opts| opts.send(:"#{name}=", instance_exec(value, &interpreter)) } end end