module Arsi::ArelTreeManager
Constants
- AREL_WHERE_SQL_ARITY_1
- AREL_WHERE_SQL_ENGINE_ACCESSOR
Public Instance Methods
where_sql(provided_engine = :none)
click to toggle source
This is from Arel::SelectManager which inherits from Arel::TreeManager. We need where_sql
on both Arel::UpdateManager and Arel::DeleteManager so we add it to the parent class.
# File lib/arsi/arel_tree_manager.rb, line 10 def where_sql(provided_engine = :none) return if @ctx.wheres.empty? selected_engine = provided_engine if selected_engine == :none selected_engine = if AREL_WHERE_SQL_ENGINE_ACCESSOR self.engine || ::Arel::Table.engine else Arel::Table.engine end end viz = if AREL_WHERE_SQL_ARITY_1 ::Arel::Visitors::WhereSql.new selected_engine.connection else ::Arel::Visitors::WhereSql.new(selected_engine.connection.visitor, selected_engine.connection) end ::Arel::Nodes::SqlLiteral.new viz.accept(@ctx, ::Arel::Collectors::SQLString.new).value end