class Some

Represents a non-empty value

Public Class Methods

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

Public Instance Methods

==(other) click to toggle source

rubocop:enable PredicateName

Calls superclass method Maybe#==
# File lib/possibly.rb, line 116
def ==(other)
  super && get == other.get
end
Also aliased as: eql?
===(other) click to toggle source
# File lib/possibly.rb, line 121
def ===(other)
  other && other.class == self.class && @value === other.get
end
eql?(other)
Alias for: ==
get() click to toggle source
# File lib/possibly.rb, line 90
def get
  @value
end
is_none?() click to toggle source
# File lib/possibly.rb, line 111
def is_none?
  false
end
is_some?() click to toggle source

rubocop:disable PredicateName

# File lib/possibly.rb, line 107
def is_some?
  true
end
method_missing(method_sym, *args, &block) click to toggle source
# File lib/possibly.rb, line 125
def method_missing(method_sym, *args, &block)
  @invocation ||= [method_sym, args, block]
  map { |value| value.send(method_sym, *args, &block) }
end
or_else(*) click to toggle source
# File lib/possibly.rb, line 94
def or_else(*)
  @value
end
or_nil() click to toggle source
# File lib/possibly.rb, line 102
def or_nil
  @value
end
or_raise(*) click to toggle source
# File lib/possibly.rb, line 98
def or_raise(*)
  @value
end
to_s() click to toggle source
# File lib/possibly.rb, line 130
def to_s
  "Some(#{@value})"
end

Private Instance Methods

__enumerable_value() click to toggle source
# File lib/possibly.rb, line 136
def __enumerable_value
  [@value]
end