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.
# File lib/sequel/sql.rb, line 1065 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
Whether to use an expression for this CASE expression.
# File lib/sequel/sql.rb, line 1071 def expression? !@no_expression end
Merge the CASE expression into the conditions, useful for databases that don't support CASE expressions.
# File lib/sequel/sql.rb, line 1077 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
Generated with the Darkfish Rdoc Generator 2.