def load_dependency(name, clr, *ver, &blk)
begin
dep = name.is_a?(Gem::Dependency) ? name : track_dependency(name, clr, *ver, &blk)
return unless dep.require_as
Gem.activate(dep)
rescue Gem::LoadError => e
e.set_backtrace dep.original_caller
Merb.fatal! "The gem #{name}, #{ver.inspect} was not found", e
end
begin
require dep.require_as
rescue LoadError => e
e.set_backtrace dep.original_caller
Merb.fatal! "The file #{dep.require_as} was not found", e
end
if block = dep.require_block
dep.require_block = nil
block.call
end
Merb.logger.verbose!("loading gem '#{dep.name}' ...")
return dep
end