Class: Sequel::SQL::DelayedEvaluation
- Inherits:
-
GenericExpression
- Object
- Expression
- GenericExpression
- Sequel::SQL::DelayedEvaluation
- Defined in:
- lib/sequel/sql.rb
Overview
Represents a delayed evaluation, encapsulating a callable object which returns the value to use when called.
Instance Attribute Summary collapse
-
#callable ⇒ Object
readonly
A callable object that returns the value of the evaluation when called.
Instance Method Summary collapse
-
#call(ds) ⇒ Object
Call the underlying callable and return the result.
-
#initialize(callable) ⇒ DelayedEvaluation
constructor
Set the callable object.
Methods included from Postgres::HStoreOpMethods
Methods included from Postgres::RangeOpMethods
Methods included from Postgres::ArrayOpMethods
Methods included from Postgres::JSONOpMethods
Methods included from Postgres::PGRowOp::ExpressionMethods
Methods included from SubscriptMethods
Methods included from StringMethods
Methods included from OrderMethods
Methods included from NumericMethods
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, #eql?, #hash, inherited, #inspect, #lit, #sql_literal
Constructor Details
#initialize(callable) ⇒ DelayedEvaluation
Set the callable object
1219 1220 1221 |
# File 'lib/sequel/sql.rb', line 1219 def initialize(callable) @callable = callable end |
Instance Attribute Details
#callable ⇒ Object (readonly)
A callable object that returns the value of the evaluation when called.
1216 1217 1218 |
# File 'lib/sequel/sql.rb', line 1216 def callable @callable end |
Instance Method Details
#call(ds) ⇒ Object
Call the underlying callable and return the result. If the underlying callable only accepts a single argument, call it with the given dataset.
1226 1227 1228 1229 1230 1231 1232 |
# File 'lib/sequel/sql.rb', line 1226 def call(ds) if @callable.respond_to?(:arity) && @callable.arity == 1 @callable.call(ds) else @callable.call end end |