module Elastic::Nodes::Concerns::Sortable

Constants

MODES
ORDER

Attributes

registered_sorts[W]

Public Instance Methods

add_sort(_field, order: :asc, mode: nil, missing: nil) click to toggle source
# 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)

  options = { 'order' => order.to_s }
  options['mode'] = mode.to_s if mode.present?
  options['missing'] = missing if missing.present?

  registered_sorts << { _field.to_s => options.freeze }.freeze
  self
end
clone() click to toggle source
Calls superclass method
# File lib/elastic/nodes/concerns/sortable.rb, line 6
def clone
  copy_sorts super
end
reset_sorts() click to toggle source
# File lib/elastic/nodes/concerns/sortable.rb, line 30
def reset_sorts
  @registered_sorts = nil
  self
end
simplify() click to toggle source
Calls superclass method
# File lib/elastic/nodes/concerns/sortable.rb, line 10
def simplify
  copy_sorts super
end
sorts() click to toggle source
# File lib/elastic/nodes/concerns/sortable.rb, line 14
def sorts
  registered_sorts.dup
end

Private Instance Methods

copy_sorts(_clone) click to toggle source
# File lib/elastic/nodes/concerns/sortable.rb, line 41
def copy_sorts(_clone)
  _clone.registered_sorts = sorts
  _clone
end
registered_sorts() click to toggle source
# File lib/elastic/nodes/concerns/sortable.rb, line 50
def registered_sorts
  @registered_sorts ||= []
end
render_sorts() click to toggle source
# File lib/elastic/nodes/concerns/sortable.rb, line 46
def render_sorts
  sorts
end