class Casbin::Util::Evaluator

Public Class Methods

eval(expr, funcs = {}, params = {}) click to toggle source

evaluate an expression, using the operators, functions and names previously setup.

# 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 = {}) click to toggle source
# 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