class Grape::Router::Route
Attributes
app[R]
request_method[R]
Public Class Methods
new(method, pattern, **options)
click to toggle source
Calls superclass method
Grape::Router::BaseRoute::new
# File lib/grape/router/route.rb, line 12 def initialize(method, pattern, **options) @request_method = upcase_method(method) @pattern = Grape::Router::Pattern.new(pattern, **options) super(**options) end
Public Instance Methods
apply(app)
click to toggle source
# File lib/grape/router/route.rb, line 22 def apply(app) @app = app self end
exec(env)
click to toggle source
# File lib/grape/router/route.rb, line 18 def exec(env) @app.call(env) end
match?(input)
click to toggle source
# File lib/grape/router/route.rb, line 27 def match?(input) return false if input.blank? options[:forward_match] ? input.start_with?(pattern.origin) : pattern.match?(input) end
params(input = nil)
click to toggle source
# File lib/grape/router/route.rb, line 33 def params(input = nil) return params_without_input if input.blank? parsed = pattern.params(input) return {} unless parsed parsed.compact.symbolize_keys end
Private Instance Methods
params_without_input()
click to toggle source
# File lib/grape/router/route.rb, line 44 def params_without_input pattern.captures_default.merge(attributes.params) end
upcase_method(method)
click to toggle source
# File lib/grape/router/route.rb, line 48 def upcase_method(method) method_s = method.to_s Grape::Http::Headers::SUPPORTED_METHODS.detect { |m| m.casecmp(method_s).zero? } || method_s.upcase end