module Kind::BasicObject

Public Instance Methods

[](value, label: nil) click to toggle source
# File lib/kind/objects/basic_object.rb, line 5
def [](value, label: nil)
  STRICT.object_is_a(self, value, label)
end
or(fallback, value = UNDEFINED) click to toggle source
# File lib/kind/objects/basic_object.rb, line 17
def or(fallback, value = UNDEFINED)
  return __or_func.(fallback) if UNDEFINED === value

  self === value ? value : fallback
end
or_nil(value) click to toggle source
# File lib/kind/objects/basic_object.rb, line 9
def or_nil(value)
  return value if self === value
end
or_undefined(value) click to toggle source
# File lib/kind/objects/basic_object.rb, line 13
def or_undefined(value)
  or_nil(value) || Undefined
end
value(arg, default:) click to toggle source
# File lib/kind/objects/basic_object.rb, line 29
def value(arg, default:)
  KIND.value(self, arg, self[default])
end
value?(value = UNDEFINED) click to toggle source
# File lib/kind/objects/basic_object.rb, line 23
def value?(value = UNDEFINED)
  return self === value if UNDEFINED != value

  @__is_value ||= ->(tc) { ->(arg) { tc === arg } }.(self)
end

Private Instance Methods

__or_func() click to toggle source
# File lib/kind/objects/basic_object.rb, line 39
def __or_func
  @__or_func ||= ->(tc, fb, value) { tc === value ? value : tc.or_null(fb) }.curry[self]
end