Sha256: da828b310126467ea1232bba60fbf0b1881362afc7492c714937d254655833b4
Contents?: true
Size: 1.18 KB
Versions: 5
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true module Fear module PartialFunction # Composite function produced by +PartialFunction#and_then+ method # @api private class AndThen include PartialFunction # @param partial_function [Fear::PartialFunction] # @param function [Proc] def initialize(partial_function, &function) @partial_function = partial_function @function = function end # @!attribute partial_function # @return [Fear::PartialFunction] # @!attribute function # @return [Proc] attr_reader :partial_function attr_reader :function private :partial_function private :function # @param arg [any] # @return [any ] def call(arg) function.(partial_function.(arg)) end # @param arg [any] # @return [Boolean] def defined_at?(arg) partial_function.defined_at?(arg) end # @param arg [any] # @yield [arg] # @return [any] def call_or_else(arg) result = partial_function.call_or_else(arg) do return yield(arg) end function.(result) end end private_constant :AndThen end end
Version data entries
5 entries across 5 versions & 1 rubygems