Class: MiniKraken::Core::Succeed

Inherits:
NullaryRelation show all
Includes:
Singleton
Defined in:
lib/mini_kraken/core/succeed.rb

Overview

A nullary relation that always returns success outcomes.

Instance Attribute Summary

Attributes inherited from Specification

#arity, #name

Instance Method Summary collapse

Methods inherited from Specification

#check_arity, #inspect, #variadic?

Constructor Details

#initializeSucceed

Constructor. Initialize the relation’s name & freeze it…



14
15
16
# File 'lib/mini_kraken/core/succeed.rb', line 14

def initialize
  super('succeed')
end

Instance Method Details

#solver_for(_actuals, ctx) ⇒ Core::DuckFiber

Returns a Fiber-like object (a DuckFiber). When that object receives the message resume, it will return a success context.

Parameters:

  • _actuals (Array)

    MUST be empty array for nullary relation.

  • ctx (Core::Context)

    Runtime context

Returns:



24
25
26
27
# File 'lib/mini_kraken/core/succeed.rb', line 24

def solver_for(_actuals, ctx)
  # Important: every `solver_for` call will result in a distinct Context.
  DuckFiber.new(-> { ctx.succeeded! })
end