Commit a1466b692b299022ed24894e96291b15b8b2ef9c

Authored by Andrew Kane
1 parent 7727d533
Exists in relation

Added reorder [skip ci]

Showing 2 changed files with 19 additions and 0 deletions   Show diff stats
lib/searchkick/relation.rb
... ... @@ -78,6 +78,15 @@ module Searchkick
78 78 self
79 79 end
80 80  
  81 + def reorder(*args)
  82 + spawn.reorder!(*args)
  83 + end
  84 +
  85 + def reorder!(*args)
  86 + options[:order] = args
  87 + self
  88 + end
  89 +
81 90 def select(*fields, &block)
82 91 if block_given?
83 92 # TODO better error message
... ...
test/order_test.rb
... ... @@ -38,6 +38,16 @@ class OrderTest < Minitest::Test
38 38 assert_equal expected, Product.search("product").order(:color).order(store_id: :desc).map(&:name)
39 39 end
40 40  
  41 + def test_reorder
  42 + store [
  43 + {name: "Product A", color: "blue", store_id: 1},
  44 + {name: "Product B", color: "red", store_id: 3},
  45 + {name: "Product C", color: "red", store_id: 2}
  46 + ]
  47 + expected = ["Product C", "Product B", "Product A"]
  48 + assert_equal expected, Product.search("product").order(:store_id).reorder(name: :desc).map(&:name)
  49 + end
  50 +
41 51 def test_order_unmapped_type
42 52 assert_order "product", [], order: {not_mapped: {unmapped_type: "long"}}
43 53 assert_search_relation [], Product.search("product").order(not_mapped: {unmapped_type: "long"})
... ...