Module: Roda::RodaPlugins::ParamMatchers
- Defined in:
- lib/roda/plugins/param_matchers.rb
Overview
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 |foo|
# 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 |foo|
# 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 |foo, baz|
# Matches '?foo=bar&baz=quuz', '?foo=&baz='
# Doesn't match '?foo=bar', '?baz='
end
r.on params!: ['foo', 'baz'] do |foo, baz|
# Matches '?foo=bar&baz=quuz'
# Doesn't match '?foo=bar', '?baz=', '?foo=&baz=', '?foo=bar&baz='
end
Because users have some control over the types of submitted parameters, it is recommended that you explicitly force the correct type for values yielded by the block:
r.get(:param=>'foo') do |foo|
foo = foo.to_s
end
Defined Under Namespace
Modules: RequestMethods