Sha256: 9e19a1f875f553431d67e93f96b4ac5938f43532636a4953701b24d7065fff6e

Contents?: true

Size: 545 Bytes

Versions: 4

Compression:

Stored size: 545 Bytes

Contents

module Monad
  module Maybe
    class Base
      attr_reader :value

      def <<(obj)
        to_list << obj
      end
  
      def maybe?
        true
      end
  
      def to_list
        List.new(to_a)
      end

      def to_maybe
        self
      end

      def maybe(&blk)
        bind(blk)
      end

      def then(fn)
        bind(->(x){ fn && fn.call })
        self
      end

      def and(&blk)
        self.then(blk)
      end
  
      private
      def initialize; end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
monad-maybe-0.9.8 lib/monad/maybe/base.rb
monad-maybe-0.9.7 lib/monad/maybe/base.rb
monad-maybe-0.9.5 lib/monad/maybe/base.rb
monad-maybe-0.9.4 lib/monad/maybe/base.rb