diff --git a/spec/query_generator_spec.rb b/spec/query_generator_spec.rb index bd617af..af5338c 100644 --- a/spec/query_generator_spec.rb +++ b/spec/query_generator_spec.rb @@ -98,6 +98,12 @@ class SqlGeneratorTester expect(@query.where_clause).to eq ['tags.name ILIKE ?', '%h1-r%'] end + it 'tests search with field mappings when fields array has same mapping' do + @query = TextToSqlQuery.new('tags:hs1-r', [:'players.title', :'players.tags', :'players.device_id'], :'players.device_id', { tags: "tags.name" }) + + expect(@query.where_clause).to eq ['tags.name ILIKE ?', '%hs1-r%'] + end + it 'tests complex query' do text = '(device_id:"with space" tags:mta no-quotes-id-123)'\ 'or "id with quotes-5" and ( ("id with q 10" or "id with q 20")'\ diff --git a/text_to_sql_query.rb b/text_to_sql_query.rb index a4d1a13..f0bbce2 100644 --- a/text_to_sql_query.rb +++ b/text_to_sql_query.rb @@ -10,6 +10,9 @@ class TextToSqlQuery mappings[field_name.to_sym] = field mappings end) + fields_mappings.each do |field, value| + @fields_mappings[field] = value if @fields_mappings[field] + end end def where_clause