Module: Ruby::Rego::Builtins::Collections::ArrayOps
- Defined in:
- lib/ruby/rego/builtins/collections/array_ops.rb
Overview
Array-focused collection helpers.
Class Method Summary collapse
-
.array_concat(left, right) ⇒ Ruby::Rego::ArrayValue
-
.array_slice(array, start, stop) ⇒ Ruby::Rego::ArrayValue
-
.reverse(array) ⇒ Ruby::Rego::ArrayValue
-
.sort(array) ⇒ Ruby::Rego::ArrayValue
Class Method Details
.array_concat(left, right) ⇒ Ruby::Rego::ArrayValue
34 35 36 37 38 |
# File 'lib/ruby/rego/builtins/collections/array_ops.rb', line 34 def self.array_concat(left, right) left_values = array_values(left, name: "array.concat left") right_values = array_values(right, name: "array.concat right") ArrayValue.new(left_values + right_values) end |
.array_slice(array, start, stop) ⇒ Ruby::Rego::ArrayValue
44 45 46 47 48 |
# File 'lib/ruby/rego/builtins/collections/array_ops.rb', line 44 def self.array_slice(array, start, stop) elements = array_values(array, name: "array.slice array") start_index, stop_index = slice_indices(start, stop) ArrayValue.new(slice_elements(elements, start_index, stop_index)) end |
.reverse(array) ⇒ Ruby::Rego::ArrayValue
26 27 28 29 |
# File 'lib/ruby/rego/builtins/collections/array_ops.rb', line 26 def self.reverse(array) elements = array_values(array, name: "array.reverse") ArrayValue.new(elements.reverse) end |
.sort(array) ⇒ Ruby::Rego::ArrayValue
15 16 17 18 19 20 21 22 |
# File 'lib/ruby/rego/builtins/collections/array_ops.rb', line 15 def self.sort(array) elements = array_values(array, name: "sort") return ArrayValue.new([]) if elements.empty? ensure_uniform_sort_type(elements) sorted = elements.sort_by(&:to_ruby) ArrayValue.new(sorted) end |