Top Level Namespace

Defined Under Namespace

Modules: Bash, Tailog Classes: File, IRB, Integer, StringInputMethod

Constant Summary collapse

WATCH_METHOD_ERB =
<<-EOS
  unless instance_methods.include?(:<%= raw_method %>)
    alias_method :<%= raw_method %>, :<%= method %>
    def <%= method %> *args
      start = Time.now
      call_id = SecureRandom.uuid

      Tailog::WatchMethods.logger.info "[\#{call_id}] <%= target %> CALLED<% if options[:self] %>, self: \#{self.inspect}<% end %><% if options[:arguments] %>, arguments: \#{args.inspect}<% end %><% if options[:caller_backtrace] %>, backtrace: \#{caller.join(", ")}<% end %>."

      result = send :<%= raw_method %>, *args

      Tailog::WatchMethods.logger.info "[\#{call_id}] <%= target %> FINISHED in \#{(Time.now - start) * 1000} ms<% if options[:result] %>, result: \#{result.inspect}<% end %>."

      result
    rescue => error
      Tailog::WatchMethods.logger.error "[\#{call_id}] <%= target %> FAILED: \#{error.class}: \#{error.message}<% if options[:error_backtrace] %>, backtrace: \#{error.backtrace.join(", ")}<% end %>."

      raise error
    end
  else
    Tailog::WatchMethods.logger.error "Inject <%= target %> FAILED: already injected."
  end
EOS