Class: Casbin::Util::Evaluator
- Inherits:
-
Object
- Object
- Casbin::Util::Evaluator
- Defined in:
- lib/casbin-ruby/util/evaluator.rb
Defined Under Namespace
Classes: NamesConflictError
Class Method Summary collapse
-
.eval(expr, funcs = {}, params = {}) ⇒ Object
evaluate an expression, using the operators, functions and names previously setup.
- .validate_names(funcs = {}, params = {}) ⇒ Object
Class Method Details
.eval(expr, funcs = {}, params = {}) ⇒ Object
evaluate an expression, using the operators, functions and names previously setup.
12 13 14 15 |
# File 'lib/casbin-ruby/util/evaluator.rb', line 12 def eval(expr, funcs = {}, params = {}) validate_names funcs, params Keisan::Calculator.new.evaluate expr, funcs.merge(params) end |
.validate_names(funcs = {}, params = {}) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/casbin-ruby/util/evaluator.rb', line 17 def validate_names(funcs = {}, params = {}) conflicted_names = funcs.keys & params.keys return if conflicted_names.empty? raise NamesConflictError, "You can't use function names as parameter names: " \ "#{conflicted_names.map { |name| "`#{name}`" }.join ', '}" end |