Sha256: b64a4b7427beebd3edd6576c9fd8d85cd1a0ba96e4c1c276f744a8672f0a2164
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
require 'sinatra/version' fail "no need to load the Mustermann extension for #{::Sinatra::VERSION}" if ::Sinatra::VERSION >= '2.0.0' require 'mustermann' module Mustermann # 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 module Extension 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 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) if defined? Template and path.is_a? Template condition { params.merge! path.params(request.path_info) } end end super(verb, path, block, options) end private :compile! end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mustermann-0.0.1 | lib/mustermann/extension.rb |