Class: Philiprehberger::Maybe::None

Inherits:
Object
  • Object
show all
Includes:
Enumerable, Singleton
Defined in:
lib/philiprehberger/maybe.rb

Overview

Represents an absent value

Instance Method Summary collapse

Instance Method Details

#==(other) ⇒ Boolean

Returns equality check.

Returns:

  • (Boolean)

    equality check



301
302
303
# File 'lib/philiprehberger/maybe.rb', line 301

def ==(other)
  other.is_a?(None)
end

#[](_key) ⇒ None

Access a single key (shorthand for dig)

Parameters:

  • _key (Object)

    the key to access

Returns:



266
267
268
# File 'lib/philiprehberger/maybe.rb', line 266

def [](_key)
  self
end

#deconstruct_keys(_keys) ⇒ Hash

Pattern matching support

Parameters:

  • keys (Array<Symbol>, nil)

    the keys to deconstruct

Returns:

  • (Hash)

    the deconstructed hash



274
275
276
# File 'lib/philiprehberger/maybe.rb', line 274

def deconstruct_keys(_keys)
  { value: nil, some: false, none: true }
end

#digNone

Dig always returns None

Returns:



258
259
260
# File 'lib/philiprehberger/maybe.rb', line 258

def dig(*)
  self
end

#each(&block) ⇒ Enumerator, self

Yield nothing for Enumerable support

Returns:

  • (Enumerator, self)


194
195
196
197
198
# File 'lib/philiprehberger/maybe.rb', line 194

def each(&block)
  return to_enum(:each) unless block

  self
end

#filterNone

No-op filter

Returns:



232
233
234
# File 'lib/philiprehberger/maybe.rb', line 232

def filter
  self
end

#flat_mapNone

No-op transformation

Returns:



225
226
227
# File 'lib/philiprehberger/maybe.rb', line 225

def flat_map
  self
end

#inspectString Also known as: to_s

Returns string representation.

Returns:

  • (String)

    string representation



306
307
308
# File 'lib/philiprehberger/maybe.rb', line 306

def inspect
  'None'
end

#mapNone

No-op transformation

Returns:



218
219
220
# File 'lib/philiprehberger/maybe.rb', line 218

def map
  self
end

#none?Boolean

Returns true.

Returns:

  • (Boolean)

    true



211
212
213
# File 'lib/philiprehberger/maybe.rb', line 211

def none?
  true
end

#or_else(default = nil) { ... } ⇒ Some, None

Return the default value

Parameters:

  • default (Object) (defaults to: nil)

    the default value

Yields:

  • optional block providing default

Returns:

  • (Some, None)

    the default wrapped in Maybe



241
242
243
244
# File 'lib/philiprehberger/maybe.rb', line 241

def or_else(default = nil, &block)
  value = block ? block.call : default
  Maybe.wrap(value)
end

#or_raise(error_class = Error, message = 'value is absent') ⇒ Object

Raise an error since value is absent

Parameters:

  • error_class (Class) (defaults to: Error)

    the error class to raise

  • message (String) (defaults to: 'value is absent')

    the error message

Raises:

  • (Error)

    always raises



251
252
253
# File 'lib/philiprehberger/maybe.rb', line 251

def or_raise(error_class = Error, message = 'value is absent')
  raise error_class, message
end

#recover { ... } ⇒ Some, None

Convert None to Some via a block

Yields:

  • the block providing a recovery value

Returns:



282
283
284
# File 'lib/philiprehberger/maybe.rb', line 282

def recover(&block)
  Maybe.wrap(block.call)
end

#some?Boolean

Returns false.

Returns:

  • (Boolean)

    false



206
207
208
# File 'lib/philiprehberger/maybe.rb', line 206

def some?
  false
end

#tapNone

No-op tap, returns self

Returns:



296
297
298
# File 'lib/philiprehberger/maybe.rb', line 296

def tap
  self
end

#valuenil

Returns always nil.

Returns:

  • (nil)

    always nil



201
202
203
# File 'lib/philiprehberger/maybe.rb', line 201

def value
  nil
end

#zipNone

Combine with other Maybes — always returns None

Returns:



289
290
291
# File 'lib/philiprehberger/maybe.rb', line 289

def zip(*)
  self
end