class Qdsl::Column

Attributes

alias_name[R]
name[R]
source[R]

Public Class Methods

[](obj) click to toggle source
# File lib/column.rb, line 5
def self.[](obj)
  if obj.is_a?(Column)
    obj
  elsif obj.is_a?(String) || obj.is_a?(Symbol)
    Column.new(obj)
  else
    raise "Cannot convert object of class \"#{obj.class.name}\" to column"
  end
end
new(name, alias_name = nil, source = nil) click to toggle source
# File lib/column.rb, line 15
def initialize(name, alias_name = nil, source = nil)
  @name = name.to_s
  @alias_name = alias_name.nil? ? nil : alias_name.to_s
  @source = source
end

Public Instance Methods

as(alias_name)
Alias for: with_alias_name
equals(column) click to toggle source
# File lib/column.rb, line 50
def equals(column)
  Equals.new(self, column)
end
exists?() click to toggle source
# File lib/column.rb, line 34
def exists?
  @source.column_names.include?(@name)
end
render_sql(context, ids) click to toggle source
# File lib/column.rb, line 46
def render_sql(context, ids)
  SimpleRenderResult.new(@alias_name ? "#{@source.id}.#{@name} AS #{@alias_name}" : "#{@source.id}.#{@name}", {})
end
to_expression() click to toggle source
# File lib/column.rb, line 38
def to_expression
  true?
end
true?() click to toggle source
# File lib/column.rb, line 42
def true?
  IsTrue.new(self)
end
with_alias_name(alias_name) click to toggle source
# File lib/column.rb, line 25
def with_alias_name(alias_name)
  Column.new(@name, alias_name, @source)
end
Also aliased as: as
with_name(name) click to toggle source
# File lib/column.rb, line 21
def with_name(name)
  Column.new(name, @alias_name, @source)
end
with_source(source) click to toggle source
# File lib/column.rb, line 30
def with_source(source)
  Column.new(@name, @alias_name, source)
end