Class: Jaql::SqlGeneration::AssociationFunctionField

Inherits:
Field
  • Object
show all
Includes:
AssociationSQL
Defined in:
lib/jaql/sql_generation/association_function_field.rb

Overview

Allows for creation of fields from some column on some association, e.g. creator.last_name

Constant Summary collapse

COUNT_FUNCTION =
'count'
EXISTS_FUNCTION =
'exists'
SUPPORTED_FUNCTIONS =
[COUNT_FUNCTION, EXISTS_FUNCTION]

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(association, function_name, display_name = nil, subquery = nil) ⇒ AssociationFunctionField



20
21
22
23
24
25
26
# File 'lib/jaql/sql_generation/association_function_field.rb', line 20

def initialize(association, function_name, display_name=nil, subquery=nil)
  @association = association
  @function_name = function_name.to_s.downcase
  @display_name = display_name
  @subquery = subquery
  @associated_table_alias = subquery.table_name_alias
end

Class Method Details

.supports?(function_name) ⇒ Boolean



12
13
14
# File 'lib/jaql/sql_generation/association_function_field.rb', line 12

def self.supports?(function_name)
  SUPPORTED_FUNCTIONS.include?(function_name.downcase)
end

Instance Method Details

#to_sqlObject



28
29
30
# File 'lib/jaql/sql_generation/association_function_field.rb', line 28

def to_sql
  [comment_sql, field_sql].join("\n")
end