module AttrSearchable::Arel::Visitors::MySQL
Public Instance Methods
visit_AttrSearchableGrammar_Attributes_Collection(o, a)
click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 91 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 109 def visit_AttrSearchableGrammar_Nodes_And_Fulltext(o, a) res = o.nodes.collect do |node| if node.is_a?(AttrSearchableGrammar::Nodes::MatchesFulltextNot) visit node, a else node.nodes.size > 1 ? "+(#{visit node, a})" : "+#{visit node, a}" end end res.join " " end
visit_AttrSearchableGrammar_Nodes_FulltextExpression(o, a)
click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 95 def visit_AttrSearchableGrammar_Nodes_FulltextExpression(o, a) "MATCH(#{visit o.collection, a}) AGAINST(#{visit visit(o.node, a), a} IN BOOLEAN MODE)" end
visit_AttrSearchableGrammar_Nodes_MatchesFulltext(o, a)
click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 103 def visit_AttrSearchableGrammar_Nodes_MatchesFulltext(o, a) words = o.right.split(/[\s+'"<>()~-]+/) words.size > 1 ? "\"#{words.join " "}\"" : words.first end
visit_AttrSearchableGrammar_Nodes_MatchesFulltextNot(o, a)
click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 99 def visit_AttrSearchableGrammar_Nodes_MatchesFulltextNot(o, a) o.right.split(/[\s+'"<>()~-]+/).collect { |word| "-#{word}" }.join(" ") end
visit_AttrSearchableGrammar_Nodes_Or_Fulltext(o, a)
click to toggle source
# File lib/attr_searchable/arel/visitors.rb, line 121 def visit_AttrSearchableGrammar_Nodes_Or_Fulltext(o, a) o.nodes.collect { |node| "(#{visit node, a})" }.join(" ") end