Sha256: 8a04322aa4651775bc18b6fb1febbecd1ba8cb455003f62169cfb06eed6445d7

Contents?: true

Size: 818 Bytes

Versions: 2

Compression:

Stored size: 818 Bytes

Contents

# frozen_string_literal: true

module Fear
  module OptionApi
    # An +Option+ factory which creates +Some+ if the argument is
    # not +nil+, and +None+ if it is +nil+.
    # @param value [any]
    # @return [Fear::Some, Fear::None]
    #
    # @example
    #   Fear.option(nil) #=> #<Fear::None>
    #   Fear.option(17) #=> #<Fear::Some get=17>
    #
    def option(value)
      if value.nil?
        none
      else
        some(value)
      end
    end

    # @return [Fear::None]
    # @example
    #   Fear.none #=> #<Fear::None>
    #
    def none
      Fear::None
    end

    # @param value [any]
    # @return [Fear::Some]
    # @example
    #   Fear.some(17) #=> #<Fear::Some get=17>
    #   Fear.some(nil) #=> #<Fear::Some get=nil>
    #
    def some(value)
      Fear::Some.new(value)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fear-1.2.0 lib/fear/option_api.rb
fear-1.1.0 lib/fear/option_api.rb