class ApiConstraints

Determine if a router request matches an api version number

Constants

PREFIX

version prefix string

Public Class Methods

new(options) click to toggle source
  • Args : options

    • version -> number

      • Version number to match

    • default -> Boolean

      • If request does not identify a version, default to version

# File lib/api_constraints.rb, line 9
def initialize(options)
  @version = options[:version]
  @default = options[:default]
end

Public Instance Methods

matches?(request) click to toggle source

Determine whether a request matches an api version number

  • Args :

    • request -> router request

  • Returns : Boolean

    • :true - the request matches the api version

    • :false - the request does not match the api version

# File lib/api_constraints.rb, line 22
def matches?(request)
  accept = request.headers['Accept']
  if accept.nil?
    @default
  else
    if @default && !accept.include?(PREFIX)
      true
    else
      accept.include?("#{PREFIX}#{@version}")
    end
  end
end