class None

Represents an empty value

Public Class Methods

new(inst_method = nil, parent_stack = []) click to toggle source
# File lib/possibly.rb, line 146
def initialize(inst_method = nil, parent_stack = [])
  @inst_method = inst_method || ["None.new", []]
  @parent_stack = parent_stack
end

Public Instance Methods

get() click to toggle source
# File lib/possibly.rb, line 151
def get
  msg ||= "`get` called to None. A value was expected."
  raise ValueExpectedException.new(print_error(msg))
end
is_none?() click to toggle source
# File lib/possibly.rb, line 195
def is_none?
  true
end
is_some?() click to toggle source

rubocop:disable PredicateName

# File lib/possibly.rb, line 191
def is_some?
  false
end
method_missing(method_sym, *args, &block) click to toggle source

rubocop:enable PredicateName

# File lib/possibly.rb, line 200
def method_missing(method_sym, *args, &block)
  None([method_sym, args, block], self.stack)
end
or_else(els = nil) { |: els| ... } click to toggle source
# File lib/possibly.rb, line 156
def or_else(els = nil)
  block_given? ? yield : els
end
or_nil() click to toggle source
# File lib/possibly.rb, line 186
def or_nil
  nil
end
or_raise(*args) click to toggle source
# File lib/possibly.rb, line 160
def or_raise(*args)
  opts, args = extract_opts(args)
  msg_or_exception, msg = args
  default_message = "`or_raise` called to None. A value was expected."

  exception_object =
    if msg_or_exception.respond_to? :exception
      if msg
        msg_or_exception.exception(msg)
      else
        msg_or_exception.exception
      end
    else
      ValueExpectedException.new(msg_or_exception || default_message)
    end

  exception_and_stack =
    if opts[:print_stack] == false
      exception_object
    else
      exception_object.exception(print_error(exception_object.message))
    end

  raise exception_and_stack
end
to_s() click to toggle source
# File lib/possibly.rb, line 204
def to_s
  "None"
end

Private Instance Methods

__enumerable_value() click to toggle source
# File lib/possibly.rb, line 210
def __enumerable_value
  []
end
extract_opts(args) click to toggle source
# File lib/possibly.rb, line 214
def extract_opts(args)
  *initial, last = *args

  if last.is_a?(::Hash)
    [last, initial]
  else
    [{}, args]
  end
end