Sha256: c60bb82604a71308fc56ffb5a05b8a20dfac7011a095e8dd0ab6754879acd0e8

Contents?: true

Size: 942 Bytes

Versions: 1

Compression:

Stored size: 942 Bytes

Contents

# frozen_string_literal: true

module Kind
  module Maybe
    class Result
      attr_reader :value

      Value = ->(arg) { arg.kind_of?(::Kind::Maybe::Result) ? arg.value : arg } # :nodoc:

      def initialize(arg)
        @value = Value.(arg)
      end

      def value_or(method_name = UNDEFINED, &block)
        raise NotImplementedError
      end

      def none?
        raise NotImplementedError
      end

      def some?; !none?; end

      def map(&fn)
        raise NotImplementedError
      end

      alias_method :map!, :map
      alias_method :then, :map
      alias_method :then!, :map

      def check(&fn)
        raise NotImplementedError
      end

      def try(method_name = UNDEFINED, &block)
        raise NotImplementedError
      end

      alias_method :try!, :try

      def dig(*keys)
        raise NotImplementedError
      end

      def presence
        raise NotImplementedError
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kind-4.0.0 lib/kind/maybe/result.rb