Module: Elastic::Nodes::Concerns::Sortable
Constant Summary collapse
- ORDER =
[:asc, :desc]
- MODES =
[:min, :max, :sum, :avg, :median]
Instance Method Summary collapse
- #add_sort(_field, order: :asc, mode: nil, missing: nil) ⇒ Object
- #clone ⇒ Object
- #reset_sorts ⇒ Object
- #simplify ⇒ Object
- #sorts ⇒ Object
Instance Method Details
#add_sort(_field, order: :asc, mode: nil, missing: nil) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/elastic/nodes/concerns/sortable.rb', line 18 def add_sort(_field, order: :asc, mode: nil, missing: nil) raise ArgumentError, "invalid sort order #{order}" unless ORDER.include?(order.to_sym) raise ArgumentError, "invalid sort mode #{mode}" if mode && !MODES.include?(mode.to_sym) = { 'order' => order.to_s } ['mode'] = mode.to_s if mode.present? ['missing'] = missing if missing.present? registered_sorts << { _field.to_s => .freeze }.freeze self end |
#clone ⇒ Object
6 7 8 |
# File 'lib/elastic/nodes/concerns/sortable.rb', line 6 def clone copy_sorts super end |
#reset_sorts ⇒ Object
30 31 32 33 |
# File 'lib/elastic/nodes/concerns/sortable.rb', line 30 def reset_sorts @registered_sorts = nil self end |
#simplify ⇒ Object
10 11 12 |
# File 'lib/elastic/nodes/concerns/sortable.rb', line 10 def simplify copy_sorts super end |
#sorts ⇒ Object
14 15 16 |
# File 'lib/elastic/nodes/concerns/sortable.rb', line 14 def sorts registered_sorts.dup end |