def recreate_method_with_advices(
      method,
      before_advices,
      after_advices,
      around_advice
    )
      aspect = @aspect
      logger = @logger
      interception = self
      orig_method = get_wrapped_method_of method

      code = MethodTemplate::TEMPLATE.result(binding)
      logger.debug 'generate-code', method, code
      context.class_eval code, __FILE__, __LINE__ + 4
    end
def recreate_method_with_advices(
      method,
      before_advices,
      after_advices,
      around_advice
    )
      aspect = @aspect
      logger = @logger
      interception = self
      orig_method = get_wrapped_method_of method

      code = MethodTemplate::TEMPLATE.result(binding)
      logger.debug 'generate-code', method, code
      context.class_eval code, __FILE__, __LINE__ + 4
    end
Recreates method with given advices. It applies the MethodTemplate::TEMPLATE
 @param method [String] method name of a method that we want to recreate
 @param before_advices [Array<Aspector::Advice>] before advices that should be applied
 @param after_advices [Array<Aspector::Advice>] after advices that should be applied
 @param around_advice [Aspector::Advice] single around advice
 @note We can recreate method only with single around advice at once - so we loop if we have
   more than a single around advice