Module: Mona::Result

Defined in:
lib/mona/result.rb,
lib/mona/result/ok.rb,
lib/mona/result/err.rb,
lib/mona/result/dict.rb,
lib/mona/result/error.rb,
lib/mona/result/match.rb,
lib/mona/result/action.rb,
lib/mona/result/version.rb,
lib/mona/result/sequence.rb

Overview

Monadic result

Author:

  • Ian White

Since:

  • 0.1.0

Defined Under Namespace

Modules: Action Classes: Dict, Err, Error, Match, NoMatchError, OK, Sequence

Constant Summary collapse

VERSION =

Since:

  • 0.1.0

"0.1.3"

Class Method Summary collapse

Class Method Details

.[](obj) ⇒ Object

Since:

  • 0.1.0



19
# File 'lib/mona/result.rb', line 19

def self.[](obj) = obj.respond_to?(:to_result) ? obj.to_result : OK.new(obj)

.actionObject

Since:

  • 0.1.0



35
# File 'lib/mona/result.rb', line 35

def action(&) = Action::Ephemeral.new(&)

.dict(initial = {}) ⇒ Object

Since:

  • 0.1.0



33
# File 'lib/mona/result.rb', line 33

def dict(initial = {}, &) = Dict.new(initial, &)

.err(failure, reason = nil, **meta) ⇒ Object

Since:

  • 0.1.0



27
# File 'lib/mona/result.rb', line 27

def err(failure, reason = nil, **meta) = Err.new(failure, reason, **meta)

.ok(value) ⇒ Object

Since:

  • 0.1.0



25
# File 'lib/mona/result.rb', line 25

def ok(value) = OK.new(value)

.on_ok(result) ⇒ Object

Since:

  • 0.1.0



31
# File 'lib/mona/result.rb', line 31

def on_ok(result, &) = Match.call(result) { _1.ok(&) }

.on_result(result) ⇒ Object

Since:

  • 0.1.0



29
# File 'lib/mona/result.rb', line 29

def on_result(result, &) = Match.call(result, &)

.to_result(obj) ⇒ Object

Since:

  • 0.1.0



23
# File 'lib/mona/result.rb', line 23

def to_result(obj) = Result[obj]