module Alki::Assembly::InstanceBuilder
Public Class Methods
build(executor, assembly,overrides,&instance_wrapper)
click to toggle source
# File lib/alki/assembly/instance_builder.rb, line 11 def build(executor, assembly,overrides,&instance_wrapper) assembly = Alki.load(assembly) overrides = inject_assembly_instance overrides, instance_wrapper executor.root = Types.build :assembly, assembly.root, overrides.root executor.meta = IceNine.deep_freeze(assembly.meta.dup.append! overrides.meta) executor.call [:assembly_instance] end
Private Class Methods
assembly_instance()
click to toggle source
# File lib/alki/assembly/instance_builder.rb, line 31 def assembly_instance Types.build(:service,-> { root }) end
inject_assembly_instance(overrides,instance_wrapper)
click to toggle source
# File lib/alki/assembly/instance_builder.rb, line 24 def inject_assembly_instance(overrides,instance_wrapper) root = overrides.root.dup root.children = root.children.merge(assembly_instance: assembly_instance) meta = wrap_assembly_instance(overrides.meta,instance_wrapper) Overrides.new(root,meta) end
wrap_assembly_instance(meta,wrapper)
click to toggle source
# File lib/alki/assembly/instance_builder.rb, line 35 def wrap_assembly_instance(meta,wrapper) meta.dup.add Meta::Overlay.new( :value, [:assembly_instance], wrapper, [] ) end