Object
path is a path constraint. constraints is a hash of constraints to be applied to this route.
# File lib/journey/route.rb, line 13 13: def initialize name, app, path, constraints, defaults = {} 14: constraints = constraints.dup 15: @name = name 16: @app = app 17: @path = path 18: @verb = constraints[:request_method] || // 19: @ip = constraints.delete(:ip) || // 20: 21: @constraints = constraints 22: @constraints.keep_if { |_,v| Regexp === v || String === v } 23: @defaults = defaults 24: @required_defaults = nil 25: @required_parts = nil 26: @parts = nil 27: @decorated_ast = nil 28: @precedence = 0 29: end
# File lib/journey/route.rb, line 31 31: def ast 32: return @decorated_ast if @decorated_ast 33: 34: @decorated_ast = path.ast 35: @decorated_ast.grep(Nodes::Terminal).each { |n| n.memo = self } 36: @decorated_ast 37: end
# File lib/journey/route.rb, line 69 69: def format path_options 70: (defaults.keys - required_parts).each do |key| 71: path_options.delete key if defaults[key].to_s == path_options[key].to_s 72: end 73: 74: formatter = Visitors::Formatter.new(path_options) 75: 76: formatted_path = formatter.accept(path.spec) 77: formatted_path.gsub(/\/\x00/, '') 78: end
# File lib/journey/route.rb, line 80 80: def optional_parts 81: path.optional_names.map { |n| n.to_sym } 82: end
# File lib/journey/route.rb, line 64 64: def parts 65: @parts ||= segments.map { |n| n.to_sym } 66: end
# File lib/journey/route.rb, line 88 88: def required_defaults 89: @required_defaults ||= begin 90: matches = parts 91: @defaults.dup.delete_if { |k,_| matches.include? k } 92: end 93: end
# File lib/journey/route.rb, line 50 50: def required_keys 51: path.required_names.map { |x| x.to_sym } + required_defaults.keys 52: end
# File lib/journey/route.rb, line 84 84: def required_parts 85: @required_parts ||= path.required_names.map { |n| n.to_sym } 86: end
# File lib/journey/route.rb, line 54 54: def score constraints 55: required_keys = path.required_names 56: supplied_keys = constraints.map { |k,v| v && k.to_s }.compact 57: 58: return 1 unless (required_keys - supplied_keys).empty? 59: 60: score = (supplied_keys & path.names).length 61: score + (required_defaults.length * 2) 62: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.