Module: RParsec::TypeChecker
Overview
To type check method parameters.
Instance Method Summary collapse
- #check_arg_array_type(elem_type, arg, mtd, n = 0) ⇒ Object
- #check_arg_type(expected, obj, mtd, n = 0) ⇒ Object
- #check_vararg_type(expected, args, mtd, n = 0) ⇒ Object
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 |