Class: Qdsl::Column

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, alias_name = nil, source = nil) ⇒ Column

Returns a new instance of Column.



15
16
17
18
19
# 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

Instance Attribute Details

#alias_nameObject (readonly)

Returns the value of attribute alias_name.



3
4
5
# File 'lib/column.rb', line 3

def alias_name
  @alias_name
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/column.rb', line 3

def name
  @name
end

#sourceObject (readonly)

Returns the value of attribute source.



3
4
5
# File 'lib/column.rb', line 3

def source
  @source
end

Class Method Details

.[](obj) ⇒ Object



5
6
7
8
9
10
11
12
13
# 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

Instance Method Details

#equals(column) ⇒ Object



38
39
40
# File 'lib/column.rb', line 38

def equals(column)
  Equals.new(self, column)
end

#render(context, id) ⇒ Object



34
35
36
# File 'lib/column.rb', line 34

def render(context, id)
  @alias_name ? "#{id}.#{@name} AS #{@alias_name}" : "#{id}.#{@name}"
end

#with_alias_name(alias_name) ⇒ Object Also known as: as



25
26
27
# File 'lib/column.rb', line 25

def with_alias_name(alias_name)
  Column.new(@name, alias_name, @source)
end

#with_name(name) ⇒ Object



21
22
23
# File 'lib/column.rb', line 21

def with_name(name)
  Column.new(name, @alias_name, @source)
end

#with_source(source) ⇒ Object



30
31
32
# File 'lib/column.rb', line 30

def with_source(source)
  Column.new(@name, @alias_name, source)
end