class Contracto::Contract::Request::PathToSinatraPathAdapter
Public Class Methods
new(path)
click to toggle source
# File lib/contracto/contract/request.rb, line 15 def initialize(path) @path = path end
Public Instance Methods
sinatra_path()
click to toggle source
# File lib/contracto/contract/request.rb, line 19 def sinatra_path parse_brackets! if path_with_brackets? @path end
Private Instance Methods
brackets_to_colons!()
click to toggle source
# File lib/contracto/contract/request.rb, line 34 def brackets_to_colons! @path.gsub!('{', ':') @path.gsub!('}', '') end
brackets_to_named_captures!()
click to toggle source
# File lib/contracto/contract/request.rb, line 44 def brackets_to_named_captures! matches = @path.scan(/(\{([^\/])*\})/).map(&:first) matches.each do |match| @path.gsub! match, "(?<#{match}>\\w*)" end @path.gsub!('{', '') @path.gsub!('}', '') end
fully_dynamic_route?()
click to toggle source
# File lib/contracto/contract/request.rb, line 53 def fully_dynamic_route? !@path.scan(/\}[^\/]/).empty? || !@path.scan(/[^\/]\{/).empty? end
parse_brackets!()
click to toggle source
# File lib/contracto/contract/request.rb, line 26 def parse_brackets! if fully_dynamic_route? path_to_regexp! else brackets_to_colons! end end
path_to_regexp!()
click to toggle source
# File lib/contracto/contract/request.rb, line 39 def path_to_regexp! brackets_to_named_captures! @path = Regexp.new(@path) end
path_with_brackets?()
click to toggle source
# File lib/contracto/contract/request.rb, line 57 def path_with_brackets? !!@path.match('{') end