Sha256: 9d9241da755a864f3f3811e6e149b94c8a1639be0795f37c70e79dd8c9b9f597
Contents?: true
Size: 1.67 KB
Versions: 15
Compression:
Stored size: 1.67 KB
Contents
class Lono::Configset class Resolver extend Memoist @@dependencies = [] # save to later regsiter configsets @@resolving_message_shown = false def resolve(*unresolved) unresolved.flatten! # initially only top-level unresolved.uniq! { |jade| jade.name } puts "Resolving dependencies..." if !@@resolving_message_shown && !unresolved.empty? puts "Resolving #{unresolved.map(&:name)}" if ENV['LONO_DEBUG_CONFIGSET'] @@resolving_message_shown = true unresolved.each do |jade| jade.check_for_circular_dependency! jade.materialize jade.dependencies.each do |j| @@dependencies << j # store for later registration unless j.resolved? or unresolved.include?(j) resolve(j) end end jade.resolved! # resolve after depth-first tranversal. So all dependencies have also been resolved at this point. end end def register @@dependencies.each do |jade| # dependency jades have minimal registry info. For additional info is pulled from stored reference data in # jade like jade.resource_from_parent. registry = jade.registry registry.resource = jade.resource_from_parent # Always prepend to Register::Blueprint.configsets to ensure they are run before any other configset. # Leaving old code in place for now. Possibly revisit this approach. Register::Blueprint.prepend(registry) # if jade.type == "blueprint/configset" # Register::Blueprint.prepend(registry) # elsif jade.type == "configset" # Register::Project.prepend(registry) # end end end end end
Version data entries
15 entries across 15 versions & 1 rubygems