class RgGen::Core::Builder::LoaderRegistry

Public Class Methods

new() click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 7
def initialize
  @loaders = []
  @extractors = []
  @ignore_values = {}
end

Public Instance Methods

create_loaders() click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 35
def create_loaders
  @loaders.map { |loader| loader.new(@extractors, @ignore_values) }
end
define_value_extractor(layers, value, &body) click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 21
def define_value_extractor(layers, value, &body)
  @extractors << create_extractor(layers, value, &body)
end
ignore_value(layers, value) click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 25
def ignore_value(layers, value)
  ignore_values(layers, [value])
end
ignore_values(layers, values) click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 29
def ignore_values(layers, values)
  [layers].flatten.each do |layer|
    (@ignore_values[layer] ||= []).concat(Array(values))
  end
end
register_loader(loader) click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 13
def register_loader(loader)
  register_loaders([loader])
end
register_loaders(loaders) click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 17
def register_loaders(loaders)
  @loaders.concat(Array(loaders))
end

Private Instance Methods

create_extractor(layers, value, &body) click to toggle source
# File lib/rggen/core/builder/loader_registry.rb, line 41
def create_extractor(layers, value, &body)
  Class.new(Core::InputBase::InputValueExtractor, &body).new(layers, value)
end