Sha256: db762f63990ab8ac012a15b0d812a116008a6632b56a357730b2255b5ccb95a7

Contents?: true

Size: 990 Bytes

Versions: 17

Compression:

Stored size: 990 Bytes

Contents

# frozen_string_literal: true

module Ree::Args
  def check_arg(value, name, klass)
    if !value.is_a?(klass)
      raise Ree::Error.new(
        ":#{name} should be a #{klass}. Got #{value.class}: #{Ree::StringUtils.truncate(value.inspect)}",
        :invalid_arg
      )
    end
  end

  def check_bool(value, name)
    check_arg_any(value, name, [TrueClass, FalseClass])
  end

  def check_arg_array_of(value, name, klass)
    if !value.is_a?(Array) && value.detect { |_| !_.is_a?(Symbol)}
      raise Ree::Error.new(":#{name} should be array of #{klass.inspect}. Got #{value.class}: #{Ree::StringUtils.truncate(value.inspect)}", :invalid_arg)
    end
  end

  def check_arg_any(value, name, klasses)
    if !klasses.detect {|klass| value.is_a?(klass)}
      raise Ree::Error.new(":#{name} should be any of #{klasses.inspect}", :invalid_arg)
    end
  end

  def not_nil(value, name)
    if value.nil?
      raise Ree::Error(":#{name} should not be nil", :invalid_arg)
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
ree-1.1.1 lib/ree/args.rb
ree-1.1.0 lib/ree/args.rb
ree-1.0.47 lib/ree/args.rb
ree-1.0.46 lib/ree/args.rb
ree-1.0.45 lib/ree/args.rb
ree-1.0.44 lib/ree/args.rb
ree-1.0.43 lib/ree/args.rb
ree-1.0.42 lib/ree/args.rb
ree-1.0.41 lib/ree/args.rb
ree-1.0.40 lib/ree/args.rb
ree-1.0.39 lib/ree/args.rb
ree-1.0.38 lib/ree/args.rb
ree-1.0.37 lib/ree/args.rb
ree-1.0.36 lib/ree/args.rb
ree-1.0.35 lib/ree/args.rb
ree-1.0.34 lib/ree/args.rb
ree-1.0.33 lib/ree/args.rb