Module: Fear::For::Mixin

Included in:
Mixin
Defined in:
lib/fear/for.rb

Overview

Include this mixin to access convenient factory method for For.

Examples:

include Fear::For::Mixin

For(Some(2), Some(3)) { |a, b| a * b } #=> Some(6)
For(Some(2), None()) { |a, b| a * b }  #=> None()

For(proc { Some(2) }, proc { Some(3) }) do |a, b|
  a * b
end #=> Some(6)

For(proc { None() }, proc { raise }) do |a, b|
  a * b
end #=> None()

For(Right(2), Right(3)) { |a, b| a * b } #=> Right(6)
For(Right(2), Left(3)) { |a, b| a * b }  #=> Left(3)

For(Success(2), Success(3)) { |a| a * b } #=> Success(3)
For(Success(2), Failure(...)) { |a, b| a * b }  #=> Failure(...)

Instance Method Summary collapse

Instance Method Details

#For(*monads, &block) ⇒ {#map, #flat_map}

Parameters:

  • monads (Hash{Symbol => {#map, #flat_map}})

Returns:

  • ({#map, #flat_map})


119
120
121
# File 'lib/fear/for.rb', line 119

def For(*monads, &block)
  For.call(monads, &block)
end