Class: Arel::Visitors::ToSql

Inherits:
Object
  • Object
show all
Defined in:
lib/active_median.rb

Instance Method Summary collapse

Instance Method Details

#visit_Arel_Nodes_Median(o, a = nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/active_median.rb', line 78

def visit_Arel_Nodes_Median o, a=nil
  if Gem::Version.new(Arel::VERSION) >= Gem::Version.new("6.0.0")
    aggregate "MEDIAN", o, a
  elsif a
    "MEDIAN(#{o.distinct ? 'DISTINCT ' : ''}#{o.expressions.map { |x|
    visit x, a }.join(', ')})#{o.alias ? " AS #{visit o.alias, a}" : ''}"
  else
    "MEDIAN(#{o.distinct ? 'DISTINCT ' : ''}#{o.expressions.map { |x|
    visit x }.join(', ')})#{o.alias ? " AS #{visit o.alias}" : ''}"
  end
end