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
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