82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/mud/context.rb', line 82
def resolve(module_or_list)
modules = module_or_list.is_a?(Mud::Module) ? [module_or_list] : module_or_list
resolved = []
resolver = proc do |modules|
modules.each do |mod|
next if resolved.include?(mod)
resolved.unshift(mod) if mod.is_a?(Mud::InstalledModule)
dep = mod.unresolvable_dependencies.first
raise Mud::ResolveError.new(dep) if dep
dependencies = mod.dependencies.map(&:resolve).delete_if { |m| resolved.include?(m) }
resolver.call(dependencies) unless dependencies.empty?
end
end
resolver.call(modules)
resolved
end
|