class PBRT::Signature
Constants
- TYPES
Public Class Methods
new(names_and_types)
click to toggle source
# File lib/pbrt/signature.rb, line 9 def initialize(names_and_types) @names_and_types = names_and_types check_for_known_types end
Public Instance Methods
check(params)
click to toggle source
# File lib/pbrt/signature.rb, line 15 def check(params) check_for_surplus(params) end
Private Instance Methods
check_for_known_types()
click to toggle source
# File lib/pbrt/signature.rb, line 21 def check_for_known_types unknown = @names_and_types.values - TYPES if unknown.any? raise ArgumentError, "unknown types: #{unknown.join(", ")}" end end
check_for_surplus(params)
click to toggle source
# File lib/pbrt/signature.rb, line 29 def check_for_surplus(params) surplus = params.keys - @names_and_types.keys if surplus.size == 1 raise ArgumentError, "(unknown keyword: #{surplus.first})" elsif surplus.size > 1 raise ArgumentError, "(unknown keywords: #{surplus.join(", ")})" end end