class WithParameters
Represents a constraint on method parameters.
Definitions
def initialize(parameters)
Initialize a new WithParameters constraint.
Signature
-
parameter
parametersArray(Symbol) List of method parameters in the expected order, must include at least all required parameters but can also list optional parameters.
Implementation
def initialize(parameters)
@parameters = parameters
end
def call(assertions, subject)
Evaluate this constraint against method parameters.
Signature
-
parameter
assertionsAssertions The assertions instance to use.
-
parameter
subjectArray The method parameters to check.
Implementation
def call(assertions, subject)
parameters = @parameters.dup
assertions.nested(self) do |assertions|
subject.each do |type, name|
expected_name = parameters.shift
case type
when :req
assertions.assert(name == expected_name, "parameter #{expected_name} is required, but was #{name}")
when :opt
break if expected_name.nil?
assertions.assert(name == expected_name, "parameter #{expected_name} is specified, but was #{name}")
else
break
end
end
end
end