Class: Chicago::Schema::CalculatedColumn Abstract

Inherits:
QueryColumn show all
Defined in:
lib/chicago/schema/query_column.rb

Overview

This class is abstract.

Direct Known Subclasses

AggregateColumn, CountColumn

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from QueryColumn

column, #method_missing

Constructor Details

#initialize(column, operation) ⇒ CalculatedColumn

Returns a new instance of CalculatedColumn.



119
120
121
122
123
124
# File 'lib/chicago/schema/query_column.rb', line 119

def initialize(column, operation)
  super column
  @operation = operation
  @defined_operation = operation
  normalize_operation
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Chicago::Schema::QueryColumn

Class Method Details

.make(operation, column) ⇒ Object



111
112
113
114
115
116
117
# File 'lib/chicago/schema/query_column.rb', line 111

def self.make(operation, column)
  if operation == :count
    CountColumn.new(column)
  else
    AggregateColumn.new(column, operation)
  end
end

Instance Method Details

#column_aliasObject



126
127
128
# File 'lib/chicago/schema/query_column.rb', line 126

def column_alias
  "#{@column.column_alias}.count".to_sym
end

#filter_dataset(ds, filter) ⇒ Object



134
135
136
# File 'lib/chicago/schema/query_column.rb', line 134

def filter_dataset(ds, filter)
  ds.having(filter)
end

#group_nameObject



130
131
132
# File 'lib/chicago/schema/query_column.rb', line 130

def group_name
  nil
end