aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing/route.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_dispatch/routing/route.rb')
-rw-r--r--actionpack/lib/action_dispatch/routing/route.rb32
1 files changed, 5 insertions, 27 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route.rb b/actionpack/lib/action_dispatch/routing/route.rb
index 10b3d38346..563adb02c4 100644
--- a/actionpack/lib/action_dispatch/routing/route.rb
+++ b/actionpack/lib/action_dispatch/routing/route.rb
@@ -1,27 +1,12 @@
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 @@ module ActionDispatch
#
# 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 @@ module ActionDispatch
@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