class LightRulesEngine::ValueResolver

Attributes

data_provider[R]

Public Class Methods

new(data_provider:) click to toggle source
# File lib/light_rules_engine/value_resolver.rb, line 3
def initialize(data_provider:)
  @data_provider = data_provider
end

Public Instance Methods

resolve(value) click to toggle source
# File lib/light_rules_engine/value_resolver.rb, line 7
def resolve(value)
  kind = value[:kind]
  send("process_#{kind}", value)
end

Private Instance Methods

config() click to toggle source
# File lib/light_rules_engine/value_resolver.rb, line 32
def config
  @config ||= LightRulesEngine.config
end
process_const(value) click to toggle source
# File lib/light_rules_engine/value_resolver.rb, line 24
def process_const(value)
  config[:consts][value[:value]]
end
process_data(value) click to toggle source
# File lib/light_rules_engine/value_resolver.rb, line 20
def process_data(value)
  data_provider.value_for(value[:type])
end
process_operator(value) click to toggle source
# File lib/light_rules_engine/value_resolver.rb, line 16
def process_operator(value)
  config[:operation_context_class].new(value, data_provider).result
end
process_value(value) click to toggle source
# File lib/light_rules_engine/value_resolver.rb, line 28
def process_value(value)
  value[:value]
end