1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/actionpack/test/support/path_helper.rb
Daniel Colson 8eec6ee962
Move Path::Pattern factories into test helper
`Pattern#from_sting` was introduced in bb207ea7 to support creating
patterns from strings in tests (removing a conditional in the initialize
method that had been there only for the sake of those tests).

`Pattern#build` was introduced in 947ebe9a, and was similarly used only
in tests.

My understanding is that [`Mapping#path`][path] is the only place where
we initialize a `Path::Pattern` in library code.

Since these two methods appear to be used only in tests, this
commit moves them out of the class and into a test helper.

My reasoning for doing this is that I am doing some performance work
that may involve a modification to how `Path::Pattern`s get initialized,
and I will have more confidence in that work if I know for sure that
these methods are test helpers that can be modified freely.

[path]: https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/mapper.rb#L192-L194
2020-07-27 12:23:33 -04:00

22 lines
500 B
Ruby

# frozen_string_literal: true
module ActionDispatch
module Journey
module PathHelper
def path_from_string(string)
build_path(string, {}, "/.?", true)
end
def build_path(path, requirements, separators, anchored)
parser = ActionDispatch::Journey::Parser.new
ast = parser.parse path
ActionDispatch::Journey::Path::Pattern.new(
ast,
requirements,
separators,
anchored
)
end
end
end
end