aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-08-17 15:28:23 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-08-17 15:28:23 -0700
commit8d7b883f33034732996f80f73f46d050c7dc9210 (patch)
tree03ab1b2c56e01ce94406c1000721d5b83d54bf99 /actionpack
parent56f734a3615ad522a1dbaafc7442f19e4651640b (diff)
downloadrails-8d7b883f33034732996f80f73f46d050c7dc9210.tar.gz
rails-8d7b883f33034732996f80f73f46d050c7dc9210.tar.bz2
rails-8d7b883f33034732996f80f73f46d050c7dc9210.zip
avoid is_a? checks
add another predicate method so we can avoid is_a checks
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/journey/nodes/node.rb2
-rw-r--r--actionpack/lib/action_dispatch/journey/path/pattern.rb4
2 files changed, 4 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/journey/nodes/node.rb b/actionpack/lib/action_dispatch/journey/nodes/node.rb
index a2de6ce1c8..2b57c368dc 100644
--- a/actionpack/lib/action_dispatch/journey/nodes/node.rb
+++ b/actionpack/lib/action_dispatch/journey/nodes/node.rb
@@ -40,6 +40,7 @@ module ActionDispatch
def symbol?; false; end
def literal?; false; end
def terminal?; false; end
+ def star?; false; end
end
class Terminal < Node # :nodoc:
@@ -94,6 +95,7 @@ module ActionDispatch
end
class Star < Unary # :nodoc:
+ def star?; true; end
def type; :STAR; end
def name
diff --git a/actionpack/lib/action_dispatch/journey/path/pattern.rb b/actionpack/lib/action_dispatch/journey/path/pattern.rb
index 2b384149f9..e93970046c 100644
--- a/actionpack/lib/action_dispatch/journey/path/pattern.rb
+++ b/actionpack/lib/action_dispatch/journey/path/pattern.rb
@@ -32,12 +32,12 @@ module ActionDispatch
end
def ast
- @spec.grep(Nodes::Symbol).each do |node|
+ @spec.find_all(&:symbol?).each do |node|
re = @requirements[node.to_sym]
node.regexp = re if re
end
- @spec.grep(Nodes::Star).each do |node|
+ @spec.find_all(&:star?).each do |node|
node = node.left
node.regexp = @requirements[node.to_sym] || /(.+)/
end