Class: Sequel::SQL::CaseExpression
- Inherits:
-
GenericExpression
- Object
- Expression
- GenericExpression
- Sequel::SQL::CaseExpression
- Defined in:
- lib/sequel_core/sql.rb
Overview
Represents an SQL CASE expression, used for conditions.
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.
-
#default ⇒ Object
readonly
The default value if no conditions are true.
-
#expression ⇒ Object
readonly
The expression to test the conditions against.
Instance Method Summary collapse
-
#initialize(conditions, default, expression = nil) ⇒ CaseExpression
constructor
Create an object with the given conditions and default value.
-
#to_s(ds) ⇒ Object
Delegate the creation of the resulting SQL to the given dataset, since it may be database dependent.
Methods included from StringMethods
Methods included from BooleanMethods
Methods included from ComplexExpressionMethods
#extract, #sql_boolean, #sql_number, #sql_string
Methods included from OrderMethods
Methods included from CastMethods
#cast, #cast_numeric, #cast_string
Methods included from AliasMethods
Methods inherited from Expression
Constructor Details
#initialize(conditions, default, expression = nil) ⇒ CaseExpression
Create an object with the given conditions and default value.
492 493 494 495 |
# File 'lib/sequel_core/sql.rb', line 492 def initialize(conditions, default, expression = nil) raise(Sequel::Error, 'CaseExpression conditions must be an array with all_two_pairs') unless Array === conditions and conditions.all_two_pairs? @conditions, @default, @expression = conditions, default, 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.
482 483 484 |
# File 'lib/sequel_core/sql.rb', line 482 def conditions @conditions end |
#default ⇒ Object (readonly)
The default value if no conditions are true
485 486 487 |
# File 'lib/sequel_core/sql.rb', line 485 def default @default end |
#expression ⇒ Object (readonly)
The expression to test the conditions against
488 489 490 |
# File 'lib/sequel_core/sql.rb', line 488 def expression @expression end |
Instance Method Details
#to_s(ds) ⇒ Object
Delegate the creation of the resulting SQL to the given dataset, since it may be database dependent.
499 500 501 |
# File 'lib/sequel_core/sql.rb', line 499 def to_s(ds) ds.case_expression_sql(self) end |