class RouteCounter::Middleware

Attributes

env[R]

Public Class Methods

new(app) click to toggle source
# File lib/route_counter/middleware.rb, line 4
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/route_counter/middleware.rb, line 8
def call(env)
  @env = env
  status, headers, body = @app.call(env)
  write_result! if RouteCounter.config.enabled?
  [status, headers, body]
end
write_result!() click to toggle source
# File lib/route_counter/middleware.rb, line 15
def write_result!
  result = env['action_dispatch.request.path_parameters']
  return unless result

  controller_name = result[:controller]
  action_name     = result[:action]

  return unless controller_name && action_name

  # TODO: case on config for types: file, redis, other
  # TODO: use env['REQUEST_METHOD'] ?
  RouteCounter::FileRecorder.action_visited(controller_name, action_name)
rescue Exception => e
  RouteCounter.config.error!("[RouteCleaner] #{e.message}\n#{e.backtrace.join("\n")}")
end