class Knowledge::Initializer

Description

We all need an initializer, here's this lib's initializer. Its role is to gather all informations and run the enabled adapters.

Usage

@example:

Knowledge::Initializer.new(adapters: adapters, params: { foo: :bar }, setter: setter, variables: variables).run

# or

Knowledge::Initializer.run(adapters: adapters, params: { foo: :bar }, setter: setter, variables: variables)

Attributes

@attr_reader [Array<String | Symbol>] adapters @attr_reader [Hash] params @attr_reader [Class] setter @attr_reader [Hash] variables

Attributes

adapters[R]

Adapters that will be used to retrieve variables' values

params[R]

Additionnal parameters to pass to the adapters

setter[R]

Setter used to set variables after having retrieved their values

variables[R]

Descriptor for the variables to retrieve/fetch

Public Class Methods

new(adapters:, params:, setter:, variables:) click to toggle source

Just initializes instance variables with given params.

Parameters

@param :adapters [Array<Class>] @param :params [Hash] @param :setter [Class] @param :variables [Hash]

# File lib/knowledge/initializer.rb, line 53
def initialize(adapters:, params:, setter:, variables:)
  @adapters = adapters
  @params = params
  @setter = setter
  @variables = variables
end
run(adapters:, params:, setter:, variables: {}) click to toggle source

Instanciates the current class and runs all registered adapters.

Parameters

@param :adapters [Hash{Symbol => Class}] @param :params [Hash] @param :setter [Class] @param :variables [Hash]

# File lib/knowledge/initializer.rb, line 72
def run(adapters:, params:, setter:, variables: {})
  new(adapters: adapters, params: params, setter: setter, variables: variables).run
end

Public Instance Methods

run() click to toggle source

Runs all registered adapters.

# File lib/knowledge/initializer.rb, line 82
def run
  Hash(adapters).each do |name, adapter|
    adapter.new(
      params: params[name.to_sym] || params,
      setter: setter,
      variables: variables[name.to_sym] || variables
    ).run
  end
end