Module: Ruby::Rego::Builtins::TermOrder
- Defined in:
- lib/ruby/rego/builtins/term_order.rb
Overview
OPA’s canonical term ordering, shared by the builtins that serialize a Rego set deterministically (json.marshal, yaml.marshal). Rego sets are unordered; OPA emits their elements sorted by term order: null < bool < number < string < array < object < set. Composites compare element-wise (a nested set ranks as a set, above an object — not as its array form), so the comparator runs on the raw value before any JSON/YAML conversion that would flatten sets into arrays.
Class Method Summary collapse
-
.sorted(set) ⇒ Array<Object>
Returns a set’s elements sorted into term order.
Class Method Details
.sorted(set) ⇒ Array<Object>
Returns a set’s elements sorted into term order.
16 17 18 |
# File 'lib/ruby/rego/builtins/term_order.rb', line 16 def self.sorted(set) set.to_a.sort_by { |element| sort_key(element) } end |