def use(model, *options)
check!
mod = begin
Rainbows.const_get(model)
rescue NameError => e
warn "error loading #{model.inspect}: #{e}"
e.backtrace.each { |l| warn l }
abort "concurrency model #{model.inspect} not supported"
end
Module === mod or abort "concurrency model #{model.inspect} not supported"
options.each do |opt|
case opt
when Hash
Rainbows::O.merge!(opt)
when Symbol
Rainbows::O[opt] = true
else
abort "cannot handle option: #{opt.inspect} in #{options.inspect}"
end
end
mod.setup if mod.respond_to?(:setup)
set[:use] = mod
end