class Fear::PartialFunction::Combined

Composite function produced by +PartialFunction#and_then+ method @api private

Attributes

f1[R]

@!attribute f1

@return [Fear::PartialFunction]

@!attribute f2

@return [Fear::PartialFunction]
f2[R]

@!attribute f1

@return [Fear::PartialFunction]

@!attribute f2

@return [Fear::PartialFunction]

Public Class Methods

new(f1, f2) click to toggle source

@param f1 [Fear::PartialFunction] @param f2 [Fear::PartialFunction]

# File lib/fear/partial_function/combined.rb, line 12
def initialize(f1, f2)
  @f1 = f1
  @f2 = f2
end

Public Instance Methods

===(arg)
Alias for: call
[](arg)
Alias for: call
call(arg) click to toggle source

@param arg [any] @return [any ]

# File lib/fear/partial_function/combined.rb, line 26
def call(arg)
  f2.(f1.(arg))
end
Also aliased as: ===, []
call_or_else(arg) { |arg| ... } click to toggle source

@param arg [any] @yieldparam arg [any] @return [any]

# File lib/fear/partial_function/combined.rb, line 36
def call_or_else(arg)
  result = f1.call_or_else(arg) { return yield(arg) }
  f2.call_or_else(result) { |_| return yield(arg) }
end
defined_at?(arg) click to toggle source

@param arg [any] @return [Boolean]

# File lib/fear/partial_function/combined.rb, line 43
def defined_at?(arg)
  result = f1.call_or_else(arg) do
    return false
  end
  f2.defined_at?(result)
end