Module: MethodArgumentConstraints

Defined in:
lib/method_argument_constraints.rb

Defined Under Namespace

Classes: NoBindingError, RequirementsFailed, WrongDataTypeError

Instance Method Summary collapse

Instance Method Details

#method_constraints!(caller_binding, params) ⇒ Object

Raises:



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/method_argument_constraints.rb', line 6

def method_constraints!(caller_binding, params)
  raise NoBindingError.new("No binding passed for method using method_constraints!") unless caller_binding.is_a? Binding
  caller_method = caller_locations(1,1).first.label
  arguments = _method_attributes(caller_binding, caller_method, params)
  evaluations = []
  arguments.each do |param_name, param_details|
    evaluations << _validate_param(param_name, param_details)
  end
  evaluations.compact!
  return if evaluations.empty?
  raise RequirementsFailed.new(_build_failure_error(evaluations))
end