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
that will be used to retrieve variables' values
Additionnal parameters to pass to the adapters
Setter
used to set variables after having retrieved their values
Descriptor for the variables to retrieve/fetch
Public Class Methods
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
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
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