class SearchCop::Visitors::Visitor
Attributes
connection[RW]
rubocop:disable Naming/MethodName
Public Class Methods
new(connection)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 8 def initialize(connection) @connection = connection extend(SearchCop::Visitors::Mysql) if @connection.adapter_name =~ /mysql|trilogy/i extend(SearchCop::Visitors::Postgres) if @connection.adapter_name =~ /postgres|postgis/i extend(SearchCop::Visitors::Sqlite) if @connection.adapter_name =~ /sqlite/i end
Public Instance Methods
quote(value)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 88 def quote(value) connection.quote value end
Also aliased as: visit_TrueClass, visit_FalseClass, visit_String, visit_Time, visit_Date, visit_Float, visit_Fixnum, visit_Symbol, visit_Integer
quote_column_name(name)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 68 def quote_column_name(name) connection.quote_column_name name end
quote_table_name(name)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 64 def quote_table_name(name) connection.quote_table_name name end
visit(visit_node = node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 16 def visit(visit_node = node) send "visit_#{visit_node.class.name.gsub("::", "_")}", visit_node end
visit_SearchCopGrammar_Nodes_And(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 20 def visit_SearchCopGrammar_Nodes_And(node) "(#{node.nodes.collect { |n| visit n }.join(" AND ")})" end
visit_SearchCopGrammar_Nodes_Equality(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 44 def visit_SearchCopGrammar_Nodes_Equality(node) "#{visit node.left} = #{visit node.right}" end
visit_SearchCopGrammar_Nodes_Generator(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 60 def visit_SearchCopGrammar_Nodes_Generator(node) instance_exec visit(node.left), node.right[:value], &node.right[:generator] end
visit_SearchCopGrammar_Nodes_GreaterThan(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 28 def visit_SearchCopGrammar_Nodes_GreaterThan(node) "#{visit node.left} > #{visit node.right}" end
visit_SearchCopGrammar_Nodes_GreaterThanOrEqual(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 32 def visit_SearchCopGrammar_Nodes_GreaterThanOrEqual(node) "#{visit node.left} >= #{visit node.right}" end
visit_SearchCopGrammar_Nodes_LessThan(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 36 def visit_SearchCopGrammar_Nodes_LessThan(node) "#{visit node.left} < #{visit node.right}" end
visit_SearchCopGrammar_Nodes_LessThanOrEqual(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 40 def visit_SearchCopGrammar_Nodes_LessThanOrEqual(node) "#{visit node.left} <= #{visit node.right}" end
visit_SearchCopGrammar_Nodes_Matches(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 52 def visit_SearchCopGrammar_Nodes_Matches(node) "(#{visit node.left} IS NOT NULL AND #{visit node.left} LIKE #{visit node.right} ESCAPE #{visit "\\"})" end
visit_SearchCopGrammar_Nodes_Not(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 56 def visit_SearchCopGrammar_Nodes_Not(node) "NOT (#{visit node.object})" end
visit_SearchCopGrammar_Nodes_NotEqual(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 48 def visit_SearchCopGrammar_Nodes_NotEqual(node) "#{visit node.left} != #{visit node.right}" end
visit_SearchCopGrammar_Nodes_Or(node)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 24 def visit_SearchCopGrammar_Nodes_Or(node) "(#{node.nodes.collect { |n| visit n }.join(" OR ")})" end
visit_attribute(attribute)
click to toggle source
# File lib/search_cop/visitors/visitor.rb, line 72 def visit_attribute(attribute) "#{quote_table_name attribute.table_alias}.#{quote_column_name attribute.column_name}" end
Also aliased as: visit_SearchCopGrammar_Attributes_String, visit_SearchCopGrammar_Attributes_Text, visit_SearchCopGrammar_Attributes_Float, visit_SearchCopGrammar_Attributes_Integer, visit_SearchCopGrammar_Attributes_Decimal, visit_SearchCopGrammar_Attributes_Datetime, visit_SearchCopGrammar_Attributes_Timestamp, visit_SearchCopGrammar_Attributes_Timestamptz, visit_SearchCopGrammar_Attributes_Date, visit_SearchCopGrammar_Attributes_Time, visit_SearchCopGrammar_Attributes_Boolean