module Kind::Maybe::Wrapper

Public Instance Methods

from(&block) click to toggle source
# File lib/kind/maybe/wrapper.rb, line 24
def from(&block)
  wrap(&block)
end
wrap(arg = UNDEFINED) { || ... } click to toggle source
# File lib/kind/maybe/wrapper.rb, line 6
def wrap(arg = UNDEFINED)
  if block_given?
    begin
      return new(yield) if UNDEFINED == arg

      input = __call_before_expose_the_arg_in_a_block(arg)

      input.kind_of?(Maybe::None) ? input : new(yield(input))
    rescue StandardError => exception
      Maybe::None.new(exception)
    end
  else
    return new(arg) if UNDEFINED != arg

    Error.wrong_number_of_args!(given: 0, expected: 1)
  end
end

Private Instance Methods

__call_before_expose_the_arg_in_a_block(input) click to toggle source
# File lib/kind/maybe/wrapper.rb, line 30
def __call_before_expose_the_arg_in_a_block(input)
  input
end