Sha256: 1f7c0ebe4e3d0bbe212f946e518a0d50b480148bc8d227a00b5de4b2ab9f394c
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true module Fear class Left include Either include RightBiased::Left include LeftPatternMatch.mixin EXTRACTOR = proc do |either| if Fear::Left === either Fear.some([either.left_value]) else Fear.none end end # @api private def left_value value end # @return [false] def right? false end alias success? right? # @return [true] def left? true end alias failure? left? # @return [Either] def select_or_else(*) self end # @return [Left] def select self end # @return [Left] def reject self end # @return [Right] value in `Right` def swap Right.new(value) end # @param reduce_left [Proc] # @return [any] def reduce(reduce_left, _reduce_right) reduce_left.(value) end # @return [self] def join_right self end # @return [Either] # @raise [TypeError] def join_left value.tap do |v| Utils.assert_type!(v, Either) end end # Used in case statement # @param other [any] # @return [Boolean] def ===(other) if other.is_a?(Left) value === other.value else super end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fear-1.1.0 | lib/fear/left.rb |