Sha256: 90e313f477fb31e4358de290dd65a6fd32403026d6a85d9cb095c59e6d918c07

Contents?: true

Size: 403 Bytes

Versions: 3

Compression:

Stored size: 403 Bytes

Contents

# frozen_string_literal: true

module ReSorcery
  module ArgCheck
    def self.[](name, value, *types)
      return value if types.any? { |t| value.is_a?(t) }

      fn = caller_locations.first.label
      s = "`#{fn}` expected `#{name}` to be #{types.join(' or ')}; but got #{value.class}: #{value.inspect}"
      raise ReSorcery::Error::ArgumentError, s
    end
  end
  private_constant :ArgCheck
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
re_sorcery-0.3.0 lib/re_sorcery/arg_check.rb
re_sorcery-0.2.0 lib/re_sorcery/arg_check.rb
re_sorcery-0.1.0 lib/re_sorcery/arg_check.rb