aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-29 15:16:40 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-05-29 15:16:40 -0700
commiteabe504cdfa11b580c614d6bd501eb7cc60f485d (patch)
treeea0895463e4c6b99e09640bfc5a6c69397744134 /actionpack/lib/action_dispatch
parent7da98d0a590d74027e6595da8a85ea3b4195c51c (diff)
downloadrails-eabe504cdfa11b580c614d6bd501eb7cc60f485d.tar.gz
rails-eabe504cdfa11b580c614d6bd501eb7cc60f485d.tar.bz2
rails-eabe504cdfa11b580c614d6bd501eb7cc60f485d.zip
ask the strexp for the ast
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r--actionpack/lib/action_dispatch/journey/path/pattern.rb5
-rw-r--r--actionpack/lib/action_dispatch/journey/router/strexp.rb5
2 files changed, 7 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/journey/path/pattern.rb b/actionpack/lib/action_dispatch/journey/path/pattern.rb
index cb0a02c298..da9d54cf6a 100644
--- a/actionpack/lib/action_dispatch/journey/path/pattern.rb
+++ b/actionpack/lib/action_dispatch/journey/path/pattern.rb
@@ -5,17 +5,16 @@ module ActionDispatch
attr_reader :spec, :requirements, :anchored
def initialize(strexp)
- parser = Journey::Parser.new
-
@anchored = true
case strexp
when String
+ parser = Journey::Parser.new
@spec = parser.parse(strexp)
@requirements = {}
@separators = "/.?"
when Router::Strexp
- @spec = parser.parse(strexp.path)
+ @spec = strexp.ast
@requirements = strexp.requirements
@separators = strexp.separators.join
@anchored = strexp.anchor
diff --git a/actionpack/lib/action_dispatch/journey/router/strexp.rb b/actionpack/lib/action_dispatch/journey/router/strexp.rb
index f97f1a223e..161b41d6b2 100644
--- a/actionpack/lib/action_dispatch/journey/router/strexp.rb
+++ b/actionpack/lib/action_dispatch/journey/router/strexp.rb
@@ -15,6 +15,11 @@ module ActionDispatch
@anchor = anchor
end
+ def ast
+ parser = Journey::Parser.new
+ parser.parse path
+ end
+
def names
@path.scan(/:\w+/).map { |s| s.tr(':', '') }
end