class J8::Optional

Public Class Methods

empty() click to toggle source
# File lib/j8/optional.rb, line 11
def self.empty
  J8::Optional.new
end
new(value = nil) click to toggle source
# File lib/j8/optional.rb, line 7
def initialize(value = nil)
  @value = value
end
of(value) click to toggle source
# File lib/j8/optional.rb, line 15
def self.of(value)
  raise J8::NilException if value.nil?

  J8::Optional.new(value)
end
of_nilable(value) click to toggle source
# File lib/j8/optional.rb, line 21
def self.of_nilable(value)
  J8::Optional.new(value)
end

Public Instance Methods

==(object)
Alias for: equals?
empty?() click to toggle source
# File lib/j8/optional.rb, line 25
def empty?
  @value.nil?
end
equals?(object) click to toggle source
# File lib/j8/optional.rb, line 29
def equals?(object)
  @value == object
end
Also aliased as: ==
filter(predicate = nil, &block) click to toggle source
# File lib/j8/optional.rb, line 34
def filter(predicate = nil, &block)
  callable = from_callable_class(predicate, block, J8::Predicate)

  if present? && callable.test(@value)
    J8::Optional.new(@value)
  else
    J8::Optional.empty
  end
end
flat_map(function = nil, &block) click to toggle source
# File lib/j8/optional.rb, line 44
def flat_map(function = nil, &block)
  callable = from_callable_class(function, block, J8::Function)
  return J8::Optional.empty unless present?

  callable.apply(@value).tap do |result|
    raise J8::NilException if result.nil?
  end
end
get() click to toggle source
# File lib/j8/optional.rb, line 53
def get
  raise J8::NoSuchElementException unless present?

  @value
end
Also aliased as: value
if_present(consumer = nil, &block) click to toggle source
# File lib/j8/optional.rb, line 60
def if_present(consumer = nil, &block)
  callable = from_callable_class(consumer, block, J8::Consumer)
  return unless present?

  callable.accept(@value)
end
map(function = nil, &block) click to toggle source
# File lib/j8/optional.rb, line 71
def map(function = nil, &block)
  callable = from_callable_class(function, block, J8::Function)
  return J8::Optional.empty unless present?

  J8::Optional.new(callable.apply(@value))
end
or_else(value) click to toggle source
# File lib/j8/optional.rb, line 78
def or_else(value)
  if present?
    @value
  else
    value
  end
end
or_else_get(supplier = nil, &block) click to toggle source
# File lib/j8/optional.rb, line 86
def or_else_get(supplier = nil, &block)
  callable = from_callable_class(supplier, block, J8::Supplier)

  if present?
    @value
  else
    callable.get.tap do |result|
      raise J8::NilException if result.nil?
    end
  end
end
or_else_raise(supplier = nil, &block) click to toggle source
# File lib/j8/optional.rb, line 98
def or_else_raise(supplier = nil, &block)
  callable = from_callable_class(supplier, block, J8::Supplier)
  raise callable.get unless present?

  @value
end
present?() click to toggle source
# File lib/j8/optional.rb, line 67
def present?
  !@value.nil?
end
value()
Alias for: get