From a1466b692b299022ed24894e96291b15b8b2ef9c Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Wed, 18 Mar 2020 02:54:49 -0700 Subject: [PATCH] Added reorder [skip ci] --- lib/searchkick/relation.rb | 9 +++++++++ test/order_test.rb | 10 ++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) diff --git a/lib/searchkick/relation.rb b/lib/searchkick/relation.rb index 8182e01..2d241b7 100644 --- a/lib/searchkick/relation.rb +++ b/lib/searchkick/relation.rb @@ -78,6 +78,15 @@ module Searchkick self end + def reorder(*args) + spawn.reorder!(*args) + end + + def reorder!(*args) + options[:order] = args + self + end + def select(*fields, &block) if block_given? # TODO better error message diff --git a/test/order_test.rb b/test/order_test.rb index 0aee270..794c901 100644 --- a/test/order_test.rb +++ b/test/order_test.rb @@ -38,6 +38,16 @@ class OrderTest < Minitest::Test assert_equal expected, Product.search("product").order(:color).order(store_id: :desc).map(&:name) end + def test_reorder + store [ + {name: "Product A", color: "blue", store_id: 1}, + {name: "Product B", color: "red", store_id: 3}, + {name: "Product C", color: "red", store_id: 2} + ] + expected = ["Product C", "Product B", "Product A"] + assert_equal expected, Product.search("product").order(:store_id).reorder(name: :desc).map(&:name) + end + def test_order_unmapped_type assert_order "product", [], order: {not_mapped: {unmapped_type: "long"}} assert_search_relation [], Product.search("product").order(not_mapped: {unmapped_type: "long"}) -- libgit2 0.21.0