module Rstructural::Option

Constants

None
Some

Public Class Methods

of(obj) click to toggle source
# File lib/rstructural/option.rb, line 14
def self.of(obj)
  obj.nil? ? None : Some.new(obj)
end

Public Instance Methods

flat_map(&f) click to toggle source
# File lib/rstructural/option.rb, line 28
def flat_map(&f)
  case self
  in Some[value]
    f.call(value)
  in None
    None
  end
end
flatten() click to toggle source
# File lib/rstructural/option.rb, line 50
def flatten
  case self
  in Some[value] if value.is_a?(Option)
    value.flatten
  in Some[value]
    Option.of(value)
  in None
    None
  end
end
get_or_else(default = nil) { || ... } click to toggle source
# File lib/rstructural/option.rb, line 37
def get_or_else(default = nil)
  case self
  in Some[value]
    value
  in None
    if block_given?
      yield
    else
      default
    end
  end
end
map(&f) click to toggle source
# File lib/rstructural/option.rb, line 19
def map(&f)
  case self
  in Some[value]
    Option.of(f.call(value))
  in None
    None
  end
end