Module: Ruby::Rego::Builtins::Comparisons

Extended by:
RegistryHelpers
Defined in:
lib/ruby/rego/builtins/comparisons.rb,
lib/ruby/rego/builtins/comparisons/casts.rb

Overview

Built-in comparison and casting helpers.

Defined Under Namespace

Modules: Casts

Constant Summary collapse

COMPARISON_FUNCTIONS =
{
  "equal" => { arity: 2, handler: :equal },
  "to_number" => { arity: 1, handler: :to_number },
  "cast_string" => { arity: 1, handler: :cast_string },
  "cast_boolean" => { arity: 1, handler: :cast_boolean },
  "cast_array" => { arity: 1, handler: :cast_array },
  "cast_set" => { arity: 1, handler: :cast_set },
  "cast_object" => { arity: 1, handler: :cast_object }
}.freeze

Class Method Summary collapse

Methods included from RegistryHelpers

register_configured_functions

Class Method Details

.cast_array(value) ⇒ Ruby::Rego::ArrayValue

Parameters:

Returns:



64
65
66
# File 'lib/ruby/rego/builtins/comparisons.rb', line 64

def self.cast_array(value)
  Casts.cast_array(value)
end

.cast_boolean(value) ⇒ Ruby::Rego::BooleanValue

Parameters:

Returns:



58
59
60
# File 'lib/ruby/rego/builtins/comparisons.rb', line 58

def self.cast_boolean(value)
  Casts.cast_boolean(value)
end

.cast_object(value) ⇒ Ruby::Rego::ObjectValue

Parameters:

Returns:



76
77
78
# File 'lib/ruby/rego/builtins/comparisons.rb', line 76

def self.cast_object(value)
  Casts.cast_object(value)
end

.cast_set(value) ⇒ Ruby::Rego::SetValue

Parameters:

Returns:



70
71
72
# File 'lib/ruby/rego/builtins/comparisons.rb', line 70

def self.cast_set(value)
  Casts.cast_set(value)
end

.cast_string(value) ⇒ Ruby::Rego::StringValue

Parameters:

Returns:



52
53
54
# File 'lib/ruby/rego/builtins/comparisons.rb', line 52

def self.cast_string(value)
  Casts.cast_string(value)
end

.equal(left, right) ⇒ Ruby::Rego::BooleanValue

Parameters:

Returns:



40
41
42
# File 'lib/ruby/rego/builtins/comparisons.rb', line 40

def self.equal(left, right)
  BooleanValue.new(left == right)
end

.register!Ruby::Rego::Builtins::BuiltinRegistry



27
28
29
30
31
32
33
# File 'lib/ruby/rego/builtins/comparisons.rb', line 27

def self.register!
  registry = BuiltinRegistry.instance

  register_configured_functions(registry, COMPARISON_FUNCTIONS)

  registry
end

.to_number(value) ⇒ Ruby::Rego::NumberValue

Parameters:

Returns:



46
47
48
# File 'lib/ruby/rego/builtins/comparisons.rb', line 46

def self.to_number(value)
  Casts.to_number(value)
end