class RgGen::Core::Builder::Builder
Constants
- ALL_LAYERS
- COMPONENT_REGISTRIES
- REGISTER_MAP_LAYERS
Attributes
plugin_manager[R]
Public Class Methods
new()
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 9 def initialize initialize_component_registries initialize_layers @plugin_manager = PluginManager.new(self) end
Public Instance Methods
add_feature_registry(name, target_layer, registry)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 39 def add_feature_registry(name, target_layer, registry) target_layers = if target_layer Array(@layers[target_layer]) else @layers.values end target_layers .each { |layer| layer.add_feature_registry(name, registry) } end
build_factories(type, targets)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 76 def build_factories(type, targets) registries = if targets.empty? @component_registries[type] else @component_registries[type].slice(*targets) end registries.each_value.map(&:build_factory) end
build_factory(type, component)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 72 def build_factory(type, component) @component_registries[type][component].build_factory end
delete(layer, *args)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 86 def delete(layer, *args) @layers.key?(layer) && @layers[layer].delete(*args) end
disable(layer, *args)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 68 def disable(layer, *args) @layers.key?(layer) && @layers[layer].disable(*args) end
disable_all()
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 64 def disable_all @layers.each_value(&:disable) end
enable(layer, *args)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 60 def enable(layer, *args) @layers[layer].enable(*args) end
input_component_registry(name, &body)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 17 def input_component_registry(name, &body) component_registry(:input, name, &body) end
output_component_registry(name, &body)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 21 def output_component_registry(name, &body) component_registry(:output, name, &body) end
register_input_components()
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 90 def register_input_components Configuration.setup(self) RegisterMap.setup(self) end
register_map_layers()
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 35 def register_map_layers REGISTER_MAP_LAYERS end
Private Instance Methods
component_registry(type, name, &body)
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 129 def component_registry(type, name, &body) registries = @component_registries[type] registries.key?(name) || (registries[name] = COMPONENT_REGISTRIES[type].new(name, self)) body && Docile.dsl_eval(registries[name], &body) || registries[name] end
initialize_component_registries()
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 101 def initialize_component_registries @component_registries = {} [:input, :output].each do |type| @component_registries[type] = Hash.new do |_, component_name| raise BuilderError.new("unknown component: #{component_name}") end end end
initialize_layers()
click to toggle source
# File lib/rggen/core/builder/builder.rb, line 118 def initialize_layers @layers = Hash.new do |_, layer_name| raise BuilderError.new("unknown layer: #{layer_name}") end ALL_LAYERS.each { |layer| @layers[layer] = Layer.new(layer) } end