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 IsDistinctFrom::Methods
Methods included from Sequel::SQLite::JSONOpMethods
#sqlite_json_op, #sqlite_jsonb_op
Methods included from Postgres::HStoreOpMethods
Methods included from Postgres::RangeOpMethods
Methods included from Postgres::ArrayOpMethods
Methods included from Postgres::JSONOpMethods
Methods included from Postgres::InetOpMethods
Methods included from Postgres::PGRowOp::ExpressionMethods
Methods included from SubscriptMethods
Methods included from StringMethods
#escaped_ilike, #escaped_like, #ilike, #like
Methods included from PatternMatchMethods
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, #clone, #eql?, #hash, inherited, #inspect
Constructor Details
#initialize(callable) ⇒ DelayedEvaluation
Set the callable object
1344 1345 1346 1347 |
# File 'lib/sequel/sql.rb', line 1344 def initialize(callable) @callable = callable freeze end |
Instance Attribute Details
#callable ⇒ Object (readonly)
A callable object that returns the value of the evaluation when called.
1341 1342 1343 |
# File 'lib/sequel/sql.rb', line 1341 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.
1352 1353 1354 1355 1356 1357 1358 |
# File 'lib/sequel/sql.rb', line 1352 def call(ds) if @callable.respond_to?(:arity) && @callable.arity == 1 @callable.call(ds) else @callable.call end end |