Class: Sequel::SQL::CaseExpression
- Inherits:
-
GenericExpression
- Object
- Expression
- GenericExpression
- Sequel::SQL::CaseExpression
- Defined in:
- lib/sequel/sql.rb
Overview
Represents an SQL CASE expression, used for conditional branching in SQL.
Instance Attribute Summary collapse
-
#conditions ⇒ Object
readonly
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 ⇒ Object
readonly
The default value if no conditions match.
-
#expression ⇒ Object
readonly
The expression to test the conditions against.
Instance Method Summary collapse
-
#expression? ⇒ Boolean
Whether to use an expression for this CASE expression.
-
#initialize(conditions, default, expression = (no_expression=true; nil)) ⇒ CaseExpression
constructor
Create an object with the given conditions and default value.
Methods included from SubscriptMethods
Methods included from StringMethods
Methods included from OrderMethods
Methods included from ComplexExpressionMethods
#extract, #sql_boolean, #sql_number, #sql_string
Methods included from CastMethods
#cast, #cast_numeric, #cast_string
Methods included from BooleanMethods
Methods included from AliasMethods
Methods inherited from Expression
#==, attr_reader, comparison_attrs, #eql?, #hash, #inspect, #lit, #sql_literal
Constructor Details
#initialize(conditions, default, expression = (no_expression=true; nil)) ⇒ CaseExpression
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.
621 622 623 624 |
# File 'lib/sequel/sql.rb', line 621 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 |
Instance Attribute Details
#conditions ⇒ Object (readonly)
An array of all two pairs with the first element specifying the condition and the second element specifying the result if the condition matches.
609 610 611 |
# File 'lib/sequel/sql.rb', line 609 def conditions @conditions end |
#default ⇒ Object (readonly)
The default value if no conditions match.
612 613 614 |
# File 'lib/sequel/sql.rb', line 612 def default @default end |
#expression ⇒ Object (readonly)
The expression to test the conditions against
615 616 617 |
# File 'lib/sequel/sql.rb', line 615 def expression @expression end |
Instance Method Details
#expression? ⇒ Boolean
Whether to use an expression for this CASE expression.
627 628 629 |
# File 'lib/sequel/sql.rb', line 627 def expression? !@no_expression end |