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