module AttrSearchable::Arel::Visitors::PostgreSQL

Public Instance Methods

visit_AttrSearchableGrammar_Attributes_Collection(o, a) click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 163
def visit_AttrSearchableGrammar_Attributes_Collection(o, a)
  o.attributes.collect { |attribute| visit attribute.attribute, a }.join(" || ' ' || ")
end
visit_AttrSearchableGrammar_Nodes_And_Fulltext(o, a) click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 181
def visit_AttrSearchableGrammar_Nodes_And_Fulltext(o, a)
  o.nodes.collect { |node| "(#{visit node, a})" }.join(" & ")
end
visit_AttrSearchableGrammar_Nodes_FulltextExpression(o, a) click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 167
def visit_AttrSearchableGrammar_Nodes_FulltextExpression(o, a)
  dictionary = o.collection.options[:dictionary] || "simple"

  "to_tsvector(#{visit dictionary, a}, #{visit o.collection, a}) @@ to_tsquery(#{visit dictionary, a}, #{visit visit(o.node, a), a})"
end
visit_AttrSearchableGrammar_Nodes_MatchesFulltext(o, a) click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 177
def visit_AttrSearchableGrammar_Nodes_MatchesFulltext(o, a)
  "'#{o.right.gsub /[\s&|!:'"]+/, " "}'"
end
visit_AttrSearchableGrammar_Nodes_MatchesFulltextNot(o, a) click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 173
def visit_AttrSearchableGrammar_Nodes_MatchesFulltextNot(o, a)
  "!'#{o.right}'"
end
visit_AttrSearchableGrammar_Nodes_Or_Fulltext(o, a) click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 185
def visit_AttrSearchableGrammar_Nodes_Or_Fulltext(o, a)
  o.nodes.collect { |node| "(#{visit node, a})" }.join(" | ")
end