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
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 |