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

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

Constructor =================================================================================================

Parameters:

  • [Array<Class>] (Hash)

    a customizable set of options

  • [Hash] (Hash)

    a customizable set of options

  • [Class] (Hash)

    a customizable set of options



35
36
37
38
39
40
# File 'lib/knowledge/initializer.rb', line 35

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

Instance Attribute Details

#adaptersObject (readonly)

Attributes ==================================================================================================



24
25
26
# File 'lib/knowledge/initializer.rb', line 24

def adapters
  @adapters
end

#paramsObject (readonly)

Attributes ==================================================================================================



24
25
26
# File 'lib/knowledge/initializer.rb', line 24

def params
  @params
end

#setterObject (readonly)

Attributes ==================================================================================================



24
25
26
# File 'lib/knowledge/initializer.rb', line 24

def setter
  @setter
end

#variablesObject (readonly)

Attributes ==================================================================================================



24
25
26
# File 'lib/knowledge/initializer.rb', line 24

def variables
  @variables
end

Class Method Details

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

Description ===

Instanciates the current class and runs all registered adapters.

Parameters ===

Parameters:

  • [Hash{Symbol (Hash)

    a customizable set of options

  • [Hash] (Hash)

    a customizable set of options

  • [Class] (Hash)

    a customizable set of options



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

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

Instance Method Details

#runObject

Instance methods ============================================================================================

Description ===

Runs all registered adapters.



67
68
69
70
71
72
73
74
75
# File 'lib/knowledge/initializer.rb', line 67

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