class Rack::Json::Api::Version
Constants
- VERSION
Public Class Methods
new(app, opts={})
click to toggle source
# File lib/rack/json/api/version.rb, line 9 def initialize(app, opts={}) @app = app @vendor = opts[:vendor] || raise('Vendor name required') end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/json/api/version.rb, line 14 def call(env) update(env) @app.call env end
extract_version(env)
click to toggle source
# File lib/rack/json/api/version.rb, line 19 def extract_version(env) env['HTTP_ACCEPT'].to_s[/^application\/vnd\.#{@vendor}\.v(.+)\+json/, 1] end
update(env)
click to toggle source
# File lib/rack/json/api/version.rb, line 23 def update(env) version = extract_version(env) env['api.version'] = version unless version.nil? env['ORIGINAL_HTTP_ACCEPT'] = env['HTTP_ACCEPT'] env['HTTP_ACCEPT'] = 'application/json' end end