Module: QueryKit::CaseWhenExtension

Defined in:
lib/querykit/extensions/case_when.rb

Overview

Extension module that adds CASE WHEN support to Query Include this in Query to enable select_case functionality

Instance Method Summary collapse

Instance Method Details

#select(*columns) ⇒ Object

Override select to handle CaseBuilder objects



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/querykit/extensions/case_when.rb', line 18

def select(*columns)
  columns.flatten.each do |col|
    if col.is_a?(CaseBuilder)
      @selects << col.to_sql
      @bindings.concat(col.bindings)
    else
      @selects << col
    end
  end
  self
end

#select_case(column = nil) ⇒ CaseBuilder

Start a CASE expression and return the builder The builder can be passed to select() like any other expression

Parameters:

  • column (String, nil) (defaults to: nil)

    Optional column for simple CASE

Returns:

  • (CaseBuilder)

    Builder for constructing CASE expression



13
14
15
# File 'lib/querykit/extensions/case_when.rb', line 13

def select_case(column = nil)
  CaseBuilder.new(column)
end