module Mustermann::Extension
Sinatra
1.x extension switching default pattern parsing over to Mustermann
.
@example With classic Sinatra
application
require 'sinatra' require 'mustermann' register Mustermann get('/:id', capture: /\d+/) { ... }
@example With modular Sinatra
application
require 'sinatra/base' require 'mustermann' class MyApp < Sinatra::Base register Mustermann get('/:id', capture: /\d+/) { ... } end
@see file:README.md#Sinatra_Integration “Sinatra Integration” in the README
Private Instance Methods
compile!(verb, path, block, except: nil, capture: nil, pattern: { }, **options)
click to toggle source
Calls superclass method
# File lib/mustermann/extension.rb, line 28 def compile!(verb, path, block, except: nil, capture: nil, pattern: { }, **options) if path.respond_to? :to_str pattern[:except] = except if except pattern[:capture] = capture if capture if settings.respond_to? :pattern and settings.pattern? pattern.merge! settings.pattern do |key, local, global| next local unless local.is_a? Hash next global.merge(local) if global.is_a? Hash Hash.new(global).merge! local end end path = Mustermann.new(path, **pattern) condition { params.merge! path.params(captures: Array(params[:captures]), offset: -1) } end super(verb, path, block, options) end