module Roda::RodaPlugins::ParamMatchers

  1. lib/roda/plugins/param_matchers.rb

The param_matchers plugin adds hash matchers that operate on the request's params.

It adds a :param matcher for matching on any param with the same name, yielding the value of the param:

r.on :param => 'foo' do |value|
  # Matches '?foo=bar', '?foo='
  # Doesn't match '?bar=foo'
end

It adds a :param! matcher for matching on any non-empty param with the same name, yielding the value of the param:

r.on(:param! => 'foo') do |value|
  # Matches '?foo=bar'
  # Doesn't match '?foo=', '?bar=foo'
end

It also adds :params and :params! matchers, for matching multiple params at the same time:

r.on :params => ['foo', 'baz'] do |value|
  # Matches '?foo=bar&baz=quuz', '?foo=&baz='
  # Doesn't match '?foo=bar', '?baz='
end

r.on :params! => ['foo', 'baz'] do |value|
  # Matches '?foo=bar&baz=quuz'
  # Doesn't match '?foo=bar', '?baz=', '?foo=&baz=', '?foo=bar&baz='
end