Methods
Public Class
Public Instance
Attributes
conditions | [R] |
An array of all two pairs with the first element specifying the condition and the second element specifying the result if the condition matches. |
default | [R] |
The default value if no conditions match. |
expression | [R] |
The expression to test the conditions against |
Public Class methods
new
(conditions, default, expression=(no_expression=true; nil))
Create an object with the given conditions and default value. An expression can be provided to test each condition against, instead of having all conditions represent their own boolean expression.
[show source]
# File lib/sequel/sql.rb, line 1066 def initialize(conditions, default, expression=(no_expression=true; nil)) raise(Sequel::Error, 'CaseExpression conditions must be a hash or array of all two pairs') unless Sequel.condition_specifier?(conditions) @conditions, @default, @expression, @no_expression = conditions.to_a, default, expression, no_expression end
Public Instance methods
expression?
()
Whether to use an expression for this CASE expression.
[show source]
# File lib/sequel/sql.rb, line 1072 def expression? !@no_expression end
with_merged_expression
()
Merge the CASE expression into the conditions, useful for databases that don’t support CASE expressions.
[show source]
# File lib/sequel/sql.rb, line 1078 def with_merged_expression if expression? e = expression CaseExpression.new(conditions.map{|c, r| [::Sequel::SQL::BooleanExpression.new(:'=', e, c), r]}, default) else self end end