Module: RParsec::TypeChecker

Extended by:
TypeChecker
Included in:
TypeChecker
Defined in:
lib/rparsec/misc.rb

Overview

To type check method parameters.

Instance Method Summary collapse

Instance Method Details

#check_arg_array_type(elem_type, arg, mtd, n = 0) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/rparsec/misc.rb', line 46

def check_arg_array_type elem_type, arg, mtd, n = 0
  check_arg_type Array, arg, mtd, n
  arg.each_with_index do |x, i|
    unless x.kind_of? elem_type
      raise ArgumentError,
        "#{x.class} assigned to #{elem_type} for the #{nth i} element of the #{nth n} argument of #{mtd}."
    end
  end
end

#check_arg_type(expected, obj, mtd, n = 0) ⇒ Object



39
40
41
42
43
44
# File 'lib/rparsec/misc.rb', line 39

def check_arg_type expected, obj, mtd, n = 0
  unless obj.kind_of? expected
    raise ArgumentError,
      "#{obj.class} assigned to #{expected} for the #{nth n} argument of #{mtd}."
  end
end

#check_vararg_type(expected, args, mtd, n = 0) ⇒ Object



56
57
58
59
60
# File 'lib/rparsec/misc.rb', line 56

def check_vararg_type expected, args, mtd, n = 0
  (n...args.length).each do |i|
    check_arg_type expected, args[i], mtd, i
  end
end