Module: Parliament::NTriple::Utils
- Defined in:
- lib/parliament/ntriple/utils.rb
Overview
Namespace for helper methods used with parliament-ruby.
Class Method Summary collapse
-
.multi_direction_sort(args) ⇒ Array<Object>
Sort an array of objects in ascending or descending order.
-
.reverse_sort_by(args) ⇒ Array<Object>
Sort an Array of Objects in descending order.
-
.sort_by(args) ⇒ Array<Object>
Sort an Array of Objects in ascending order.
-
.sort_defaults ⇒ Hash
Default arguments hash for #sort_by and #reverse_sort_by.
Class Method Details
.multi_direction_sort(args) ⇒ Array<Object>
Sort an array of objects in ascending or descending order.
125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/parliament/ntriple/utils.rb', line 125 def self.multi_direction_sort(args) rejected = [] args = sort_defaults.merge(args) list = args[:list].dup sort_directions = args[:parameters] list, rejected = prune_list(list, rejected, sort_directions.keys, nil) list = multi_sort_list(list, sort_directions) # Any rejected (nil) values will be added to the start of the result unless specified otherwise args[:prepend_rejected] ? rejected.concat(list) : list.concat(rejected) end |
.reverse_sort_by(args) ⇒ Array<Object>
Sort an Array of Objects in descending order. Largely, this implementation runs Parliament::NTriple::Utils.sort_by and calls reverse! on the result.
86 87 88 |
# File 'lib/parliament/ntriple/utils.rb', line 86 def self.reverse_sort_by(args) Parliament::NTriple::Utils.sort_by(args).reverse! end |
.sort_by(args) ⇒ Array<Object>
Sort an Array of Objects in ascending order. The major difference between this implementation of sort_by and the standard one is that our implementation includes objects that return nil for our parameter values.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/parliament/ntriple/utils.rb', line 39 def self.sort_by(args) rejected = [] args = sort_defaults.merge(args) list = args[:list].dup parameters = args[:parameters] block = args[:block] list, rejected = prune_list(list, rejected, parameters, block) list = sort_list(list, parameters, block) # Any rejected (nil) values will be added to the start of the result unless specified otherwise args[:prepend_rejected] ? rejected.concat(list) : list.concat(rejected) end |
.sort_defaults ⇒ Hash
Default arguments hash for #sort_by and #reverse_sort_by.
96 97 98 |
# File 'lib/parliament/ntriple/utils.rb', line 96 def self.sort_defaults { prepend_rejected: true } end |