提交 f5ab6805 编写于 作者: A Aaron Patterson

delete unused code, pass path explicitly to journey

上级 d21e0e2a
module ActionDispatch
module Routing
class Route #:nodoc:
attr_reader :app, :conditions, :defaults, :name
attr_reader :path, :requirements, :set
attr_reader :conditions, :path
def initialize(set, app, conditions, requirements, defaults, name, anchor)
@set = set
@app = app
@defaults = defaults
@name = name
# FIXME: we should not be doing this much work in a constructor.
@requirements = requirements.merge(defaults)
@requirements.delete(:controller) if @requirements[:controller].is_a?(Regexp)
@requirements.delete_if { |k, v|
v == Regexp.compile("[^#{SEPARATORS.join}]+")
}
if path = conditions[:path_info]
@path = path
conditions[:path_info] = ::Rack::Mount::Strexp.compile(path, requirements, SEPARATORS, anchor)
end
path = ::Rack::Mount::Strexp.new(
conditions[:path_info], requirements, SEPARATORS, anchor)
@verbs = conditions[:request_method] || []
......@@ -32,9 +17,8 @@ def initialize(set, app, conditions, requirements, defaults, name, anchor)
#
# Here we munge values before they get sent on to rack-mount.
@conditions[:request_method] = %r[^#{verb}$] unless @verbs.empty?
@conditions[:path_info] = Rack::Mount::RegexpWithNamedGroups.new(@conditions[:path_info]) if @conditions[:path_info]
@conditions[:path_info] = Rack::Mount::RegexpWithNamedGroups.new(path)
@conditions.delete_if{ |k,v| k != :path_info && !valid_condition?(k) }
@requirements.delete_if{ |k,v| !valid_condition?(k) }
end
def verb
......@@ -45,15 +29,9 @@ def segment_keys
@segment_keys ||= conditions[:path_info].names.compact.map { |key| key.to_sym }
end
def to_s
@to_s ||= begin
"%-6s %-40s %s" % [(verb || :any).to_s.upcase, path, requirements.inspect]
end
end
private
def valid_condition?(method)
segment_keys.include?(method) || set.valid_conditions.include?(method)
segment_keys.include?(method) || @set.valid_conditions.include?(method)
end
end
end
......
......@@ -346,7 +346,8 @@ def empty?
def add_route(app, conditions = {}, requirements = {}, defaults = {}, name = nil, anchor = true)
raise ArgumentError, "Invalid route name: '#{name}'" unless name.blank? || name.to_s.match(/^[_a-z]\w*$/i)
route = Route.new(self, app, conditions, requirements, defaults, name, anchor)
route = @set.add_route(app, route.conditions, defaults, name)
path = route.conditions[:path_info]
route = @set.add_route(app, path, route.conditions, defaults, name)
named_routes[name] = route if name
route
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册