Class: Chicago::Schema::QueryColumn Abstract
- Inherits:
-
Object
- Object
- Chicago::Schema::QueryColumn
- Defined in:
- lib/chicago/schema/query_column.rb
Overview
This class is abstract.
Decorates/adapts Columns so they can be used in SQL statements and in a User Interface.
Generate with the column method:
QueryColumn.column(owner, column, "some.alias")
Direct Known Subclasses
Class Method Summary collapse
-
.column(owner, column, column_alias) ⇒ Object
Factory method that returns a query column.
Instance Method Summary collapse
- #filter_dataset(ds, filter) ⇒ Object
-
#initialize(column) ⇒ QueryColumn
constructor
A new instance of QueryColumn.
- #method_missing(*args, &block) ⇒ Object
Constructor Details
#initialize(column) ⇒ QueryColumn
Returns a new instance of QueryColumn.
17 18 19 |
# File 'lib/chicago/schema/query_column.rb', line 17 def initialize(column) @column = column end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(*args, &block) ⇒ Object
22 23 24 |
# File 'lib/chicago/schema/query_column.rb', line 22 def method_missing(*args, &block) @column.send(*args, &block) end |
Class Method Details
.column(owner, column, column_alias) ⇒ Object
Factory method that returns a query column.
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/chicago/schema/query_column.rb', line 32 def self.column(owner, column, column_alias) if column.kind_of?(Chicago::Schema::Dimension) DimensionAsColumn.new(owner, column, column_alias) elsif owner.kind_of?(Chicago::Schema::Dimension) && owner.identifiable? && owner.identifiers.include?(column.name) DimensionIdentifierColumn.new(owner, column, column_alias) elsif column.calculated? VirtualColumn.new(owner, column, column_alias) else QualifiedColumn.new(owner, column, column_alias) end end |
Instance Method Details
#filter_dataset(ds, filter) ⇒ Object
44 45 46 |
# File 'lib/chicago/schema/query_column.rb', line 44 def filter_dataset(ds, filter) ds.filter(filter) end |