Class: Array
- Inherits:
-
Object
- Object
- Array
- Defined in:
- lib/json/ld/extensions.rb
Constant Summary collapse
- KW_ORDER =
Sort values, but impose special keyword ordering
%w(@base @id @value @type @language @vocab @container @graph @list @set @index).freeze
- KW_ORDER_CACHE =
KW_ORDER.each_with_object({}) do |kw, memo| memo[kw] = "@#{KW_ORDER.index(kw)}" end.freeze
Instance Method Summary collapse
-
#kw_sort ⇒ Object
Order, considering keywords to come before other strings.
-
#term_sort ⇒ Object
Order terms, length first, then lexographically.
Instance Method Details
#kw_sort ⇒ Object
Order, considering keywords to come before other strings
25 26 27 28 29 |
# File 'lib/json/ld/extensions.rb', line 25 def kw_sort self.sort do |a, b| KW_ORDER_CACHE.fetch(a, a) <=> KW_ORDER_CACHE.fetch(b, b) end end |
#term_sort ⇒ Object
Order terms, length first, then lexographically
32 33 34 35 36 37 |
# File 'lib/json/ld/extensions.rb', line 32 def term_sort self.sort do |a, b| len_diff = a.length <=> b.length len_diff == 0 ? a <=> b : len_diff end end |