Module: LightRulesEngine

Defined in:
lib/light_rules_engine.rb,
lib/light_rules_engine/config.rb,
lib/light_rules_engine/version.rb,
lib/light_rules_engine/base_rule.rb,
lib/light_rules_engine/operators.rb,
lib/light_rules_engine/operators/eq.rb,
lib/light_rules_engine/operators/gt.rb,
lib/light_rules_engine/operators/lt.rb,
lib/light_rules_engine/data_provider.rb,
lib/light_rules_engine/operators/all.rb,
lib/light_rules_engine/operators/any.rb,
lib/light_rules_engine/value_resolver.rb,
lib/light_rules_engine/operator_contxt.rb,
lib/light_rules_engine/operators/range.rb,
lib/light_rules_engine/data_container_builder.rb,
lib/light_rules_engine/conditions_applicable_checker.rb

Defined Under Namespace

Modules: Operators Classes: BaseRule, ConditionsApplicableChecker, Config, DataContainerBuilder, DataProvider, OperatorContxt, ValueResolver

Constant Summary collapse

VERSION =
'0.1.0'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.applicable_conditions?(data_container, conditions) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/light_rules_engine.rb', line 20

def self.applicable_conditions?(data_container, conditions)
  ConditionsApplicableChecker.new(data_container: data_container, conditions: conditions).applable?
end

.configObject



12
13
14
# File 'lib/light_rules_engine.rb', line 12

def self.config
  @config || Config::DEFAULT_CONFIG
end

.setup_config(opts = {}) ⇒ Object



16
17
18
# File 'lib/light_rules_engine.rb', line 16

def self.setup_config(opts = {})
  @config = Config::DEFAULT_CONFIG.merge(opts)
end

Instance Method Details

#rules_applicable?(data_container, *rules) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
# File 'lib/light_rules_engine.rb', line 24

def rules_applicable?(data_container, *rules)
  rules.map do |rule|
    rule if rules_applicable?(data_container, rule.conditions)
  end.compact
end