规则引擎 0.0.1

规则引擎 0.0.1

Jiabin Geng 维护。



  • Adobe Experience Platform SDK 团队

规则引擎

概述

Swift 中的简单、通用、可扩展的规则引擎。

安装

Swift 包管理器

一旦您设置了 Swift 包,将 RuleEngine 添加为依赖项就像将其添加到 Package.swift 中的 dependencies 值一样简单。

示例

dependencies: [
.package(url: "https://github.com/adobe/aepsdk-rulesengine-ios.git", from: "0.0.1")
]

用法

初始化规则引擎

要创建一个 RuleEngine 实例,首先定义一个 Evaluator,然后将其作为参数传递给 RuleEngine

let evaluator = ConditionEvaluator(options: .caseInsensitive)
let rulesEngine = RulesEngine(evaluator: evaluator)

定义规则

任何符合 Rule 协议的事物都可以用作规则。最简单的方法是使用内建的 ConsequenceRule

let condition = ComparisonExpression(lhs: "abc", operationName: "equals", rhs: "abc")
let rule = ConsequenceRule(id: "sample-rule", condition: condition)
rulesEngine.addRules(rules: [rule])

然而,这样的规则没有动态获取值的能力,它始终会是真或假,而不具有实际意义。

let mustache = Operand<String>(mustache: "{{company}}")
let condition = ComparisonExpression(lhs: mustache, operationName: "equals", rhs: "adobe")
let rule = ConsequenceRule(id: "sample-rule", condition: condition)
rulesEngine.addRules(rules: [rule])

评估数据

使用 evaluate 方法在可以被遍历的输入数据上运行规则引擎。

let matchedRules = rulesEngine.evaluate(data: ["company":"adobe"])

贡献

欢迎贡献!阅读贡献指南获取更多信息。

许可协议

本项目采用 Apache V2 许可证。更多信息请参阅LICENSE