Module: Rack::RespondTo::Helpers

Extended by:
Helpers
Included in:
Helpers
Defined in:
lib/rack/respond_to.rb

Overview

Helper methods, kept in a seperate namespace to avoid pollution.

Instance Method Summary collapse

Instance Method Details

#match(media_types, format) ⇒ Object

TODO refactor



171
172
173
174
175
176
177
178
179
180
181
# File 'lib/rack/respond_to.rb', line 171

def match(media_types, format)
  selected = []
  accepted_types = media_types.map {|type| Regexp.escape(type).gsub(/\\\*/,'.*') }
  accepted_types.each do |at|
    format.each do |ht, handler|
      (selected = [ht, handler]) and break if ht.match(at)
    end
    break unless selected.empty?
  end
  selected
end