lib/darthjee/core_ext/object.rb
# frozen_string_literal: true
module Darthjee
module CoreExt
# @api public
module Object
# Checks if object is any of the given classes
#
# @param classes [::Array<::Class>] classes to be checked
# against
#
# @return [::TrueClass,::FalseClass]
#
# @example
# object = [1, 2, 3]
#
# object.is_any?(Hash, Class) # false
# object.is_any?(Hash, Array) # true
# object.is_any?(Enumerable, Class) # true
def is_any?(*classes)
classes.any? do |clazz|
is_a?(clazz)
end
end
# Checks if object is evaluated to true
#
# @return [::TrueClass,::FalseClass]
#
# @example
# nil.trueful? # returns false
# [].trueful? # returns true
# {}.trueful? # returns true
# "".trueful? # returns true
def trueful?
# rubocop: disable Style/DoubleNegation
!!self
# rubocop: enable Style/DoubleNegation
end
end
end
end
class Object
include Darthjee::CoreExt::Object
end