The :header_matchers plugin adds hash matchers for matching on less-common HTTP headers.
plugin :header_matchersIt adds a :header matcher for matching on arbitrary headers, which matches if the header is present:
r.on(header: 'X-App-Token') do |header_value|
# perform route action
endIt adds a :host matcher for matching by the host of the request:
r.on(host: 'foo.example.com') do
end
r.on(host: /\A\w+.example.com/) do
endIt adds a :user_agent matcher for matching on a user agent patterns, which yields the regexp captures to the block:
r.on(user_agent: /Chrome\/([.\d]+)/) do |chrome_version|
endIt adds an :accept matcher for matching based on the Accept header:
r.on(accept: 'text/csv') do
endNote! that the accept matcher is very simple and cannot handle wildcards, priorities, or anything but a simple comma separated list of mime types.