Commit acb7013b93743e96bfa669c0bb4be0d15e171e2c

Authored by Andrew Kane
1 parent 3517290f

Added select option for load: false - closes #225

CHANGELOG.md
  1 +## 0.7.8
  2 +
  3 +- Added `select` option for `load: false`
  4 +
1 5 ## 0.7.7
2 6  
3 7 - Added support for automatic failover
... ...
lib/searchkick/results.rb
... ... @@ -38,7 +38,12 @@ module Searchkick
38 38 end.compact
39 39 else
40 40 hits.map do |hit|
41   - result = hit.except("_source").merge(hit["_source"])
  41 + result =
  42 + if hit["_source"]
  43 + hit.except("_source").merge(hit["_source"])
  44 + else
  45 + hit.except("fields").merge(Hash[ hit["fields"].map{|k, v| [k, v.first] } ])
  46 + end
42 47 result["id"] ||= result["_id"] # needed for legacy reasons
43 48 Hashie::Mash.new(result)
44 49 end
... ...
test/sql_test.rb
... ... @@ -274,6 +274,13 @@ class TestSql < Minitest::Unit::TestCase
274 274 assert_kind_of Hash, Product.search("product", load: false, include: [:store]).first
275 275 end
276 276  
  277 + # select
  278 +
  279 + def test_select
  280 + store [{name: "Product A", store_id: 1}]
  281 + assert_equal %w[id name store_id], Product.search("product", load: false, select: [:name, :store_id]).first.keys.reject{|k| k.start_with?("_") }.sort
  282 + end
  283 +
277 284 # TODO see if Mongoid is loaded
278 285 if !defined?(Mongoid)
279 286 def test_include
... ...