Method: Rack::Acceptable::Provides#initialize

Defined in:
lib/rack/acceptable/middleware/provides.rb

#initialize(app, provides, options = {}) ⇒ Provides

Parameters

app<#call>

Rack application.

provides<Array>

List of available MIME-Types.

options<Hash>

Additional options, like negotiate_by. See also the Rack::Acceptable::MIMETypes#detect_best_mime_type method.



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/rack/acceptable/middleware/provides.rb', line 33

def initialize(app, provides, options = {})
  raise "You should provide the list of available MIME-Types." if provides.empty?
  @app = app
  @provides = provides.map { |type| MIMETypes.parse_media_range(type) << type }
  @provides << (options[:negotiate_by] == :qvalue_only ? true : false)
  @lookup = {}
  @force_format = !!options[:force_format]
  if @force_format && options.key?(:default_format)
    ext = options[:default_format].to_s.strip
    @_extension = ext[0] == ?. ? ext : ".#{ext}" unless ext.empty?
  end
end