class JkoApi::Middleware

Public Class Methods

new(app, options={}) click to toggle source
# File lib/jko_api/middleware.rb, line 3
def initialize(app, options={})
  @app = app
  @only = options[:only]
end

Public Instance Methods

call(env) click to toggle source
# File lib/jko_api/middleware.rb, line 8
def call(env)
  if @only && @only.call(env)
    if version_number = extract_version_number(env)
      ::JkoApi.current_version_number = version_number
    else
      ::JkoApi.reset
    end
  end
  @app.call env
end

Private Instance Methods

extract_version_number(env) click to toggle source
# File lib/jko_api/middleware.rb, line 21
def extract_version_number(env)
  accept_header = env['HTTP_ACCEPT']
  return false unless accept_header
  accept_header[ACCEPT_HEADER_REGEX, 2] ||
  accept_header[ACCEPT_HEADER_REGEX] && ::JkoApi.max_version_number
end