Sha256: 5dc55d87115fb498db2d7fdd8457d6178ec4e969ce0341a7b7d3f48571564feb
Contents?: true
Size: 716 Bytes
Versions: 9
Compression:
Stored size: 716 Bytes
Contents
module Rack class API module Middleware class Format def initialize(app, default_format, formats) @app = app @default_format = default_format.to_s @formats = formats.collect {|f| f.to_s} end def call(env) request = Rack::Request.new(env) params = request.env["rack.routing_args"].merge(request.params) requested_format = params.fetch(:format, @default_format) if @formats.include?(requested_format) @app.call(env) else [406, {"Content-Type" => "text/plain"}, ["Invalid format. Accepts one of [#{@formats.join(", ")}]"]] end end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems