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