def setup(*groups)
clean_load_path
specs = groups.any? ? @definition.specs_for(groups) : requested_specs
setup_environment
cripple_rubygems(specs)
specs.each do |spec|
unless spec.loaded_from
raise GemNotFound, "#{spec.full_name} is missing. Run `bundle` to get it."
end
if activated_spec = Gem.loaded_specs[spec.name] and activated_spec.version != spec.version
e = Gem::LoadError.new "You have already activated #{activated_spec.name} #{activated_spec.version}, " \
"but your Gemfile requires #{spec.name} #{spec.version}. Consider using bundle exec."
e.name = spec.name
e.version_requirement = Gem::Requirement.new(spec.version.to_s)
raise e
end
Gem.loaded_specs[spec.name] = spec
load_paths = spec.load_paths.reject {|path| $LOAD_PATH.include?(path)}
$LOAD_PATH.unshift(*load_paths)
end
lock
self
end