Class: Lono::Configset::Resolver
- Inherits:
-
Object
- Object
- Lono::Configset::Resolver
- Extended by:
- Memoist
- Defined in:
- lib/lono/configset/resolver.rb
Constant Summary collapse
- @@dependencies =
save to later regsiter configsets
[]
- @@resolving_message_shown =
false
Instance Method Summary collapse
Instance Method Details
#register ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/lono/configset/resolver.rb', line 29 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 |
#resolve(*unresolved) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lono/configset/resolver.rb', line 8 def resolve(*unresolved) unresolved.flatten! # initially only top-level unresolved.uniq! { |jade| jade.name } puts "Resolving dependencies..." if ! && !unresolved.empty? puts "Resolving #{unresolved.map(&:name)}" if ENV['LONO_DEBUG_CONFIGSET'] = 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 |