class Case

Constants

S_CASE
S_ELSE
S_SPACE
S_WHEN

Public Class Methods

new(conditions) click to toggle source
# File lib/eno/expressions.rb, line 179
def initialize(conditions)
  @props = conditions
end

Public Instance Methods

to_sql(sql) click to toggle source
# File lib/eno/expressions.rb, line 188
def to_sql(sql)
  conditions = @props.inject([]) { |a, (k, v)|
    if k.is_a?(Symbol) && k == :default
      a
    else
      a << (S_WHEN % [sql.quote(k), sql.quote(v)])
    end
  }
  if default = @props[:default]
    conditions << (S_ELSE % sql.quote(default))
  end

  S_CASE % conditions.join(S_SPACE)
end