Class: Arel::Sql::SelectClause

Inherits:
Formatter show all
Defined in:
lib/arel/engines/sql/formatters.rb

Instance Attribute Summary

Attributes inherited from Formatter

#christener, #engine, #environment

Instance Method Summary collapse

Methods inherited from Formatter

#initialize, #name_for, #quote, #quote_column_name, #quote_table_name

Constructor Details

This class inherits a constructor from Arel::Sql::Formatter

Instance Method Details

#attribute(attribute) ⇒ Object



30
31
32
33
# File 'lib/arel/engines/sql/formatters.rb', line 30

def attribute(attribute)
  "#{quote_table_name(name_for(attribute.original_relation))}.#{quote_column_name(attribute.name)}" +
  (attribute.alias ? " AS #{quote(attribute.alias.to_s)}" : "")
end

#expression(expression) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'lib/arel/engines/sql/formatters.rb', line 35

def expression(expression)
  if expression.function_sql == "DISTINCT"
    "#{expression.function_sql} #{expression.attribute.to_sql(self)}" +
    (expression.alias ? " AS #{quote_column_name(expression.alias)}" : '')
  else
    "#{expression.function_sql}(#{expression.attribute.to_sql(self)})" +
    (expression.alias ? " AS #{quote_column_name(expression.alias)}" : " AS #{expression.function_sql.to_s.downcase}_id")
  end
end

#select(select_sql, table) ⇒ Object



45
46
47
# File 'lib/arel/engines/sql/formatters.rb', line 45

def select(select_sql, table)
  "(#{select_sql}) AS #{quote_table_name(name_for(table))}"
end

#value(value) ⇒ Object



49
50
51
# File 'lib/arel/engines/sql/formatters.rb', line 49

def value(value)
  value
end