Class: Knowledge::Initializer

Inherits:
Object
  • Object
show all
Defined in:
lib/knowledge/initializer.rb

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapters:, params:, setter:, variables:) ⇒ Initializer

Just initializes instance variables with given params.

Parameters

Parameters:

  • :adapters (Array<Class>)
  • :params (Hash)
  • :setter (Class)
  • :variables (Hash)


53
54
55
56
57
58
# File 'lib/knowledge/initializer.rb', line 53

def initialize(adapters:, params:, setter:, variables:)
  @adapters = adapters
  @params = params
  @setter = setter
  @variables = variables
end

Instance Attribute Details

#adaptersObject (readonly)

Adapters that will be used to retrieve variables’ values



26
27
28
# File 'lib/knowledge/initializer.rb', line 26

def adapters
  @adapters
end

#paramsObject (readonly)

Additionnal parameters to pass to the adapters



26
27
28
# File 'lib/knowledge/initializer.rb', line 26

def params
  @params
end

#setterObject (readonly)

Setter used to set variables after having retrieved their values



26
27
28
# File 'lib/knowledge/initializer.rb', line 26

def setter
  @setter
end

#variablesObject (readonly)

Descriptor for the variables to retrieve/fetch



26
27
28
# File 'lib/knowledge/initializer.rb', line 26

def variables
  @variables
end

Class Method Details

.run(adapters:, params:, setter:, variables: {}) ⇒ Object

Instanciates the current class and runs all registered adapters.

Parameters

Parameters:

  • :adapters (Hash{Symbol => Class})
  • :params (Hash)
  • :setter (Class)
  • :variables (Hash)


72
73
74
# File 'lib/knowledge/initializer.rb', line 72

def run(adapters:, params:, setter:, variables: {})
  new(adapters: adapters, params: params, setter: setter, variables: variables).run
end

Instance Method Details

#runObject

Runs all registered adapters.



82
83
84
85
86
87
88
89
90
# 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