module Tchae::PI

Public Instance Methods

create_result_or_error_method(methodname, wrapper= Tchae::NilWrapper, &proc) click to toggle source
# File lib/tchae/core.rb, line 361
def create_result_or_error_method(methodname, 
                                  wrapper= Tchae::NilWrapper, 
                                  &proc)
  if block_given?
    tea_methodsymb = "__tea_#{methodname}".to_sym
    define_method "__tea_#{methodname}", proc
    define_method(methodname) do |*params, **kwparms|
      Tchae.do_validation_result_or_error(self, wrapper,
                                          tea_methodsymb, proc,
                                          params, kwparms)
    end
  else
    define_method(methodname) {}
  end                                
end
create_return_wrapper_method(methodname, wrapper = Tchae::NilWrapper, &proc) click to toggle source
# File lib/tchae/core.rb, line 377
def create_return_wrapper_method(methodname,
                                  wrapper = Tchae::NilWrapper,
                                  &proc)
  if block_given?
    tea_methodsymb = "__tea_#{methodname}".to_sym
    define_method "__tea_#{methodname}", proc
    define_method(methodname) do |*params, **kwparms|
      Tchae.do_validation_return_wrapper(self,
                                    wrapper,
                                    tea_methodsymb,
                                    proc,
                                    params,
                                    kwparms)
    end
  else
    define_method(methodname) {}
  end
end
create_valid_or_raise_method(methodname, wrapper = Tchae::NilWrapper, &proc) click to toggle source
# File lib/tchae/core.rb, line 346
def create_valid_or_raise_method(methodname,
                                 wrapper = Tchae::NilWrapper, &proc)
  if block_given?
    tea_methodsymb = "__tea_#{methodname}".to_sym
    define_method "__tea_#{methodname}", proc
    define_method(methodname) do |*params, **kwparms|
      Tchae.do_validation_raise(self, wrapper,
                                   tea_methodsymb, proc,
                                   params, kwparms)
    end
  else
    define_method(methodname) {}
  end
end
create_validated_method(methodname, wrapper = Tchae::NilWrapper, lambda: nil, &proc) click to toggle source
# File lib/tchae/core.rb, line 324
def create_validated_method(methodname,
                            wrapper = Tchae::NilWrapper,
                            lambda: nil,
                            &proc)
  proclmbda = if lambda.nil?
                proc
              else
                raise ArgumentError, 'Please provide a block or the :lambda parameter but not both' if block_given?

                lambda
              end

  case wrapper.handling 
  when ::Tchae::Handling::RETURN_WRAPPER
    create_return_wrapper_method(methodname, wrapper, &proclmbda)
  when ::Tchae::Handling::RETURN_RESULT_OR_ERROR
    create_result_or_error_method(methodname, wrapper, &proclmbda)
  else # RAISE
    create_valid_or_raise_method(methodname, wrapper, &proclmbda)
  end
end