Skip to content

Commit

Permalink
Fix linter problems
Browse files Browse the repository at this point in the history
  • Loading branch information
ellnix committed Feb 12, 2024
1 parent 1eb2b84 commit cc9f4aa
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 31 deletions.
18 changes: 8 additions & 10 deletions lib/meilisearch/rails/multi_search/result.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ def initialize(searches, raw_results)

include Enumerable

def each_hit
def each_hit(&block)
@results.each do |_index_target, results|
results.each { |res| yield res }
results.each(&block)

Check warning on line 28 in lib/meilisearch/rails/multi_search/result.rb

View check run for this annotation

Codecov / codecov/patch

lib/meilisearch/rails/multi_search/result.rb#L27-L28

Added lines #L27 - L28 were not covered by tests
end
end
alias_method :each, :each_hit
alias each each_hit

def each_result
@results.each
Expand All @@ -37,20 +37,18 @@ def each_result
def to_a
@results.values.flatten(1)
end
alias_method :to_ary, :to_a
alias to_ary to_a

def to_h
@results
end
alias_method :to_hash, :to_h
alias to_hash to_h

private

def load_results(klass, result)
pk_method = klass.ms_primary_key_method
pk_method = pk_method.in if Utilities.is_mongo_model?(klass)

ms_pk = klass.meilisearch_options[:primary_key] || IndexSettings::DEFAULT_PRIMARY_KEY
pk_method = pk_method.in if Utilities.mongo_model?(klass)

condition_key = pk_is_virtual?(klass, pk_method) ? klass.primary_key : pk_method

Expand Down Expand Up @@ -78,8 +76,8 @@ def load_results(klass, result)

def pk_is_virtual?(model_class, pk_method)
model_class.columns
.map(&(Utilities.is_sequel_model?(model_class) ? :to_s : :name))
.exclude?(pk_method.to_s)
.map(&(Utilities.sequel_model?(model_class) ? :to_s : :name))
.exclude?(pk_method.to_s)
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/meilisearch/rails/utilities.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ def indexable?(record, options)
true
end

def is_mongo_model?(model_class)
def mongo_model?(model_class)
defined?(::Mongoid::Document) && model_class.include?(::Mongoid::Document)
end

def is_sequel_model?(model_class)
def sequel_model?(model_class)
defined?(::Sequel::Model) && model_class < Sequel::Model
end

Expand Down
38 changes: 19 additions & 19 deletions spec/multi_search/result_spec.rb
Original file line number Diff line number Diff line change
@@ -1,30 +1,27 @@
require 'spec_helper'

describe MeiliSearch::Rails::MultiSearchResult do
it 'is enumerable' do
expect(described_class).to include(Enumerable)
end

describe MeiliSearch::Rails::MultiSearchResult do # rubocop:todo RSpec/FilePath
let(:raw_results) do
[
{ 'indexUid' => 'books_index',
'hits' => [{ 'name' => 'Steve Jobs', 'id' => '3', 'author' => 'Walter Isaacson', 'premium' => nil, 'released' => nil, 'genre' => nil }],
'query' => 'Steve', 'processingTimeMs' => 0, 'limit' => 20, 'offset' => 0, 'estimatedTotalHits' => 1
},
'query' => 'Steve', 'processingTimeMs' => 0, 'limit' => 20, 'offset' => 0, 'estimatedTotalHits' => 1 },
{ 'indexUid' => 'products_index',
'hits' => [{ 'id' => '4', 'href' => 'ebay', 'name' => 'palm pixi plus' }],
'query' => 'palm', 'processingTimeMs' => 0, 'limit' => 1, 'offset' => 0, 'estimatedTotalHits' => 2
},
'query' => 'palm', 'processingTimeMs' => 0, 'limit' => 1, 'offset' => 0, 'estimatedTotalHits' => 2 },
{ 'indexUid' => 'color_index',
'hits' => [
{ 'name' => 'black', 'id' => '5', 'short_name' => 'bla', 'hex' => 0 },
{ 'name' => 'blue', 'id' => '4', 'short_name' => 'blu', 'hex' => 255 }
],
'query' => 'bl', 'processingTimeMs' => 0, 'limit' => 20, 'offset' => 0, 'estimatedTotalHits' => 2
}
'query' => 'bl', 'processingTimeMs' => 0, 'limit' => 20, 'offset' => 0, 'estimatedTotalHits' => 2 }
]
end

it 'is enumerable' do
expect(described_class).to include(Enumerable)
end

context 'with index name keys' do
subject(:result) { described_class.new(searches, raw_results) }

Expand All @@ -48,13 +45,16 @@
it 'enumerates through the hits of each result with #each_result' do
expect(result.each_result).to be_an(Enumerator)
expect(result.each_result).to contain_exactly(
[ 'books_index', contain_exactly(
a_hash_including('author' => 'Walter Isaacson', 'name' => 'Steve Jobs')) ],
[ 'products_index', contain_exactly(
a_hash_including('name' => 'palm pixi plus')) ],
[ 'color_index', contain_exactly(
a_hash_including('name' => 'blue', 'short_name' => 'blu'),
a_hash_including('name' => 'black', 'short_name' => 'bla')) ]
['books_index', contain_exactly(
a_hash_including('author' => 'Walter Isaacson', 'name' => 'Steve Jobs')
)],
['products_index', contain_exactly(
a_hash_including('name' => 'palm pixi plus')
)],
['color_index', contain_exactly(
a_hash_including('name' => 'blue', 'short_name' => 'blu'),
a_hash_including('name' => 'black', 'short_name' => 'bla')
)]
)
end

Expand All @@ -69,7 +69,7 @@
end

it 'aliases as #to_ary' do
expect(subject.method(:to_ary).original_name).to eq :to_a
expect(result.method(:to_ary).original_name).to eq :to_a
end
end

Expand Down

0 comments on commit cc9f4aa

Please sign in to comment.