class RgGen::Core::Base::ComponentFactory
Attributes
component_name[R]
layer[R]
Public Class Methods
new(component_name, layer) { |self| ... }
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 7 def initialize(component_name, layer) @component_name = component_name @layer = layer @root_factory = false block_given? && yield(self) end
Public Instance Methods
create(*args)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 25 def create(*args) parent, sources = if root_factory? [nil, preprocess(args)] else [args.first, preprocess(args[1..-1])] end create_component(parent, sources) do |component| build_component(parent, component, sources) root_factory? && finalize(component) end end
root_factory()
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 21 def root_factory @root_factory = true end
Private Instance Methods
build_component(parent, component, sources)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 57 def build_component(parent, component, sources) do_create_features(component, sources) do_create_children(component, sources) post_build(component) parent&.add_child(component) end
create_child(component, *args)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 94 def create_child(component, *args) find_child_factory(*args).create(component, *args) end
create_children?(component)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 76 def create_children?(component) @component_factories && component.need_children? end
create_component(parent, sources, &block)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 44 def create_component(parent, sources, &block) actual_sources = Array(select_actual_sources(*sources)) create_component?(*actual_sources) && @target_component.new(parent, component_name, layer, *actual_sources, &block) end
create_component?(*_sources)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 53 def create_component?(*_sources) true end
create_feature(component, factory, *args)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 90 def create_feature(component, factory, *args) factory.create(component, *args) end
create_features?()
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 68 def create_features? @feature_factories end
do_create_children(component, sources)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 72 def do_create_children(component, sources) create_children?(component) && create_children(component, *sources) end
do_create_features(component, sources)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 64 def do_create_features(component, sources) create_features? && create_features(component, *sources) end
finalize(_component)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 87 def finalize(_component) end
post_build(_component)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 84 def post_build(_component) end
preprocess(args)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 80 def preprocess(args) args end
root_factory?()
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 40 def root_factory? @root_factory end
select_actual_sources(*_sources)
click to toggle source
# File lib/rggen/core/base/component_factory.rb, line 50 def select_actual_sources(*_sources) end