vereto-api/app/lib/api_version.rb
2018-02-21 12:09:22 +00:00

21 lines
No EOL
548 B
Ruby

class ApiVersion
attr_reader :version, :default
def initialize(version, default = false)
@version = version
@default = default
end
# check whether version is specified or is default
def matches?(request)
check_headers(request.headers) || default
end
private
def check_headers(headers)
# check version from Accept headers; expect custom media type `todos`
accept = headers[:accept]
accept && accept.include?("application/vnd.rails.#{version}+json") # header Accept: application/vnd.rails.v#+json
end
end