lib/pg_search/features/trigram.rb in pg_search-0.5.7 vs lib/pg_search/features/trigram.rb in pg_search-0.6.0

- old
+ new

@@ -1,19 +1,29 @@ module PgSearch module Features class Trigram < Feature def conditions - [ - "(#{normalize(document)}) % #{normalize(":query")}", - {:query => query} - ] + Arel::Nodes::Grouping.new( + Arel::Nodes::InfixOperation.new("%", normalized_document, normalize(query)) + ) end def rank - [ - "similarity((#{normalize(document)}), #{normalize(":query")})", - {:query => query} - ] + Arel::Nodes::Grouping.new( + Arel::Nodes::NamedFunction.new( + "similarity", + [ + normalized_document, + normalize(query) + ] + ) + ) + end + + private + + def normalized_document + Arel::Nodes::Grouping.new(normalize(Arel.sql(document))) end end end end