class Monads::Eventually

Attributes

block[R]

Public Class Methods

from_value(value) click to toggle source
# File lib/monads/eventually.rb, line 31
def self.from_value(value)
  Eventually.new do |success|
    success.call(value)
  end
end
new(&block) click to toggle source
# File lib/monads/eventually.rb, line 9
def initialize(&block)
  @block = block
end

Public Instance Methods

and_then(&block) click to toggle source
# File lib/monads/eventually.rb, line 17
def and_then(&block)
  block = ensure_monadic_result(&block)

  Eventually.new do |success|
    run do |value|
      block.call(value).run(&success)
    end
  end
end
respond_to_missing?(method_name, include_private = false) click to toggle source
Calls superclass method
# File lib/monads/eventually.rb, line 27
def respond_to_missing?(method_name, include_private = false)
  super || run { |value| value.respond_to?(method_name, include_private) }
end
run(&success) click to toggle source
# File lib/monads/eventually.rb, line 13
def run(&success)
  block.call(success)
end