Sha256: dcdfa91c1dfd0e5a25a1800ee16f2f1026e19715de8198600ff5a343ea05d3d5
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 KB
Contents
module Fear module PartialFunction # Composite function produced by +PartialFunction#and_then+ method # @api private class Combined include PartialFunction # @param f1 [Fear::PartialFunction] # @param f2 [Fear::PartialFunction] def initialize(f1, f2) @f1 = f1 @f2 = f2 end # @!attribute f1 # @return [Fear::PartialFunction] # @!attribute f2 # @return [Fear::PartialFunction] attr_reader :f1, :f2 private :f1 private :f2 # @param arg [any] # @return [any ] def call(arg) f2.call(f1.call(arg)) end alias === call alias [] call # @param arg [any] # @yieldparam arg [any] # @return [any] def call_or_else(arg) result = f1.call_or_else(arg) { return yield(arg) } f2.call_or_else(result) { |_| return yield(arg) } end # @param arg [any] # @return [Boolean] def defined_at?(arg) result = f1.call_or_else(arg) do return false end f2.defined_at?(result) end end private_constant :AndThen end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fear-1.0.0 | lib/fear/partial_function/combined.rb |
fear-0.11.0 | lib/fear/partial_function/combined.rb |