module Fear::Utils

@private

Constants

EMPTY_ARRAY
EMPTY_HASH
EMPTY_STRING
IDENTITY
UNDEFINED

Public Class Methods

assert_arg_or_block!(method_name, *args) click to toggle source
# File lib/fear/utils.rb, line 22
def assert_arg_or_block!(method_name, *args)
  unless block_given? ^ !args.empty?
    raise ArgumentError, "##{method_name} accepts either one argument or block"
  end
end
assert_type!(value, *types) click to toggle source
# File lib/fear/utils.rb, line 36
def assert_type!(value, *types)
  if types.none? { |type| value.is_a?(type) }
    raise TypeError, "expected `#{value.inspect}` to be of #{types.join(", ")} class"
  end
end
return_or_call_proc(value) click to toggle source
# File lib/fear/utils.rb, line 42
def return_or_call_proc(value)
  if value.respond_to?(:call)
    value.()
  else
    value
  end
end
with_block_or_argument(method_name, arg = UNDEFINED, block = nil) { |block || arg| ... } click to toggle source
# File lib/fear/utils.rb, line 28
def with_block_or_argument(method_name, arg = UNDEFINED, block = nil)
  if block.nil? ^ arg.equal?(UNDEFINED)
    yield(block || arg)
  else
    raise ArgumentError, "#{method_name} accepts either block or partial function"
  end
end