module Tchae
Constants
- NilWrapper
- VERSION
Public Class Methods
Wrapper(handling = ::Tchae::Handling::RAISE)
click to toggle source
# File lib/tchae/core.rb, line 9 def self.Wrapper(handling = ::Tchae::Handling::RAISE) MethodValidator.new(handling) end
do_validation_raise(obj, wrapper, tea_methodsymb, proclmbda, params, kwparms)
click to toggle source
wrap method with validation, and on invalid, exit by raising exception
# File lib/tchae/core.rb, line 74 def self.do_validation_raise(obj, wrapper, tea_methodsymb, proclmbda, params, kwparms) wrapper.args.positional.valid_or_raise_exception(params) wrapper.args.keyword.valid_or_raise_exception(kwparms) unchecked_result = if proclmbda.arity.zero? obj.__send__(tea_methodsymb) elsif kwparms.empty? obj.__send__(tea_methodsymb, *params) elsif params.empty? obj.__send__(tea_methodsymb, **kwparms) else obj.__send__(tea_methodsymb, *params, **kwparms) end wrapper.result.valid_or_raise_exception unchecked_result end
do_validation_result_or_error(obj, wrapper, tea_methodsymb, proclmbda, params, kwparms)
click to toggle source
wrap method with validation, and on invalid, exit with control flow and retun a error object
on success return the valid result
# File lib/tchae/core.rb, line 45 def self.do_validation_result_or_error(obj, wrapper, tea_methodsymb, proclmbda, params, kwparms) unless params.empty? if (err = wrapper.args.positional.valid_or_return_error(params)) return err end end unless kwparms.empty? if (err = wrapper.args.keyword.valid_or_return_error(kwparms)) return err end end unchecked_result = if proclmbda.arity.zero? obj.__send__(tea_methodsymb) elsif kwparms.empty? obj.__send__(tea_methodsymb, *params) elsif params.empty? obj.__send__(tea_methodsymb, **kwparms) else obj.__send__(tea_methodsymb, *params, **kwparms) end wrapper.result.valid_or_return_error unchecked_result end
do_validation_return_wrapper(obj, wrapper, tea_methodsymb, proclmbda, params, kwparms)
click to toggle source
wrap method with validation, and on invalid, exit with control flow and retun a wrapped error object
on success return a wrapped return object
# File lib/tchae/core.rb, line 16 def self.do_validation_return_wrapper(obj, wrapper, tea_methodsymb, proclmbda, params, kwparms) unless params.empty? if (err = wrapper.args.positional.valid_or_return_error(params)) return Return(nil, err) end end unless kwparms.empty? if (err = wrapper.args.keyword.valid_or_return_error(kwparms)) return Return(nil, err) end end unchecked_result = if proclmbda.arity.zero? obj.__send__(tea_methodsymb) elsif kwparms.empty? obj.__send__(tea_methodsymb, *params) elsif params.empty? obj.__send__(tea_methodsymb, **kwparms) else obj.__send__(tea_methodsymb, *params, **kwparms) end wrapper.result.return_wrapper unchecked_result end