Module: Mangrove::Option Abstract

Extended by:
T::Generic, T::Helpers, T::Sig
Includes:
Kernel
Included in:
None, Some
Defined in:
lib/mangrove/option.rb,
lib/mangrove/option/control_signal.rb

Overview

This module is abstract.

Subclasses must implement the ‘abstract` methods below.

Option is a type that represents either some value (‘Some`) or no value (`None`).

Defined Under Namespace

Classes: ControlSignal, None, Some

Constant Summary collapse

InnerType =
type_member

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_nilable(nilable) ⇒ Mangrove::Option[T.type_parameter(:InnerType)]

Parameters:

  • nilable (T.type_parameter(:InnerType), nil)

Returns:



25
26
27
28
29
30
31
32
# File 'lib/mangrove/option.rb', line 25

def from_nilable(nilable)
  case nilable
  when NilClass
    Mangrove::Option::None.new
  else
    Mangrove::Option::Some.new(nilable)
  end
end

Instance Method Details

#==(other) ⇒ Boolean

This method is abstract.

Parameters:

  • other (BasicObject)

Returns:

  • (Boolean)


181
# File 'lib/mangrove/option.rb', line 181

def ==(other); end

#expect!(message) ⇒ InnerType

This method is abstract.

Parameters:

  • message (String)

Returns:



190
# File 'lib/mangrove/option.rb', line 190

def expect!(message); end

#expect_with!(&block) ⇒ InnerType

This method is abstract.

Parameters:

  • block (T.proc.returns(T.untyped))

Returns:



193
# File 'lib/mangrove/option.rb', line 193

def expect_with!(&block); end

#map(&block) ⇒ ::Mangrove::Option[T.type_parameter(:NewInnerType)]

This method is abstract.

Parameters:

  • block (T.proc.params(inner: InnerType).returns(Option[T.type_parameter(:NewInnerType)]))

Returns:



202
# File 'lib/mangrove/option.rb', line 202

def map(&block); end

#none?Boolean

This method is abstract.

Returns:

  • (Boolean)


199
# File 'lib/mangrove/option.rb', line 199

def none?; end

#or(default) ⇒ Option[InnerType]

This method is abstract.

Parameters:

Returns:



205
# File 'lib/mangrove/option.rb', line 205

def or(default); end

#some?Boolean

This method is abstract.

Returns:

  • (Boolean)


196
# File 'lib/mangrove/option.rb', line 196

def some?; end

#transpose(err) ⇒ Mangrove::Result[InnerType, T.type_parameter(:ErrType)]

This method is abstract.

Parameters:

  • err (T.type_parameter(:ErrType))

Returns:



208
# File 'lib/mangrove/option.rb', line 208

def transpose(err); end

#unwrap!InnerType

This method is abstract.

Returns:



187
# File 'lib/mangrove/option.rb', line 187

def unwrap!; end

#unwrap_or(default) ⇒ InnerType

This method is abstract.

Parameters:

Returns:



184
# File 'lib/mangrove/option.rb', line 184

def unwrap_or(default); end