Grape Syntax for Mustermann
This gem implements the grape pattern type for Mustermann.
Overview
Supported options:
capture, converters, except, greedy, ignore_unknown_options, params, space_matches_plus and uri_decode
require 'mustermann/grape'
Mustermann.new('/:id', type: :grape).params('/foo') # => { id: 'foo' }
# Providing params option
Mustermann.new('/:id', type: :grape, params: {"id"=>{:type=>"Integer"}}).params('/1') # => { id: '1'}
Mustermann.new('/:id', type: :grape, params: {"id"=>{:type=>"Integer"}}).params('/foo') # => nil
Mustermann.new('/:id', type: :grape, params: {"id"=>{:type=>"String"}}).params('/foo') # => { id: 'foo'}Syntax
| Syntax Element | Description |
|---|---|
| :name or {name} | Captures anything but a forward slash in a semi-greedy fashion. Capture is named name. Capture behavior can be modified with capture and greedy option. |
| *name or {+name} | Captures anything in a non-greedy fashion. Capture is named name. |
| * or {+splat} | Captures anything in a non-greedy fashion. Capture is named splat. It is always an array of captures, as you can use it more than once in a pattern. |
| (expression) | Enclosed expression is optional. |
| expression|expression|... | Will match anything matching the nested expressions. May contain any other syntax element, including captures. |
| x? | Makes x optional. For instance, (foo)? matches foo or an empty string. |
| / | Matches forward slash. Does not match URI encoded version of forward slash. |
| \x | Matches x or URI encoded version of x. For instance \* matches *. |
| any other character | Matches exactly that character or a URI encoded version of it. |