Class: MiniKraken::Core::Fail

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

Overview

A nullary relation that always returns a failure outcome.

Instance Attribute Summary

Attributes inherited from Specification

#arity, #name

Instance Method Summary collapse

Methods inherited from Specification

#check_arity, #inspect, #variadic?

Constructor Details

#initializeFail

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



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

def initialize
  super('fail')
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 signal a failure to the provided context.

Parameters:

  • _actuals (Array)

    MUST be empty array for nullary relation.

  • ctx (Core::Context)

    Runtime context

Returns:



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

def solver_for(_actuals, ctx)
  DuckFiber.new(-> { ctx.failed! })
end