class RailsMiddlewareLog::Log

Public Class Methods

before_call(k_class, env) click to toggle source
# File lib/rails_middleware_log/log.rb, line 33
def before_call(k_class, env)
  if config_url_match?(env['PATH_INFO'])
    if block = RailsMiddlewareLog.config.before_middleware
      block.call(k_class, env)
    else
      Rails.logger.info "-------#{k_class.name}"
    end
  end
end
call(env) click to toggle source
# File lib/rails_middleware_log/log.rb, line 12
def call(env)
  RailsMiddlewareLog::Log.before_call(self.class, env)
  old_call(env)
end
config_url_match?(url) click to toggle source

check current request

# File lib/rails_middleware_log/log.rb, line 44
def config_url_match?(url)
  target_urls = RailsMiddlewareLog.config.target_urls
  case target_urls
  when true
    true
  when String
    target_urls == url
  when Array
    target_urls.include? url
  when Regexp
    target_urls === url
  else
    false
  end
end
init(middlewares) click to toggle source
# File lib/rails_middleware_log/log.rb, line 5
def init(middlewares)
  middlewares.each do |middleware|
    klass = middleware_class(middleware)
    if klass && klass.method_defined?(:call)
      klass.class_eval do
        alias_method :old_call, :call

        def call(env)
          RailsMiddlewareLog::Log.before_call(self.class, env)
          old_call(env)
        end
      end
    end
  end
end
middleware_class(middleware) click to toggle source

get the current middleware class

# File lib/rails_middleware_log/log.rb, line 22
def middleware_class(middleware)
  case middleware.klass
  when ActiveSupport::Cache::Strategy::LocalCache::Middleware
    middleware.klass.class
  when Class
    middleware.klass
  else
    nil
  end
end