class AePageObjects::ApplicationRouter::Recognizer::Base
Constants
- ResolvedRoute
Public Instance Methods
generate_path(named_route, *args)
click to toggle source
# File lib/ae_page_objects/rails/application_router.rb, line 9 def generate_path(named_route, *args) if routes.respond_to?("#{named_route}_path") routes.send("#{named_route}_path", *args) end end
recognizes?(named_route, url)
click to toggle source
# File lib/ae_page_objects/rails/application_router.rb, line 15 def recognizes?(named_route, url) url = normalize_url(url) resolved_named_route = resolve_named_route(named_route) [:get, :post, :put, :delete, :patch].each do |method| resolved_route_from_url = resolve_url(url, method) # The first resolved route matching named route is returned as # Rails' routes are in priority order. if resolved_named_route == resolved_route_from_url return true end end false end
Private Instance Methods
normalize_url(url)
click to toggle source
# File lib/ae_page_objects/rails/application_router.rb, line 39 def normalize_url(url) raise NotImplementedError, "You must implement normalize_url" end
resolve_named_route(named_route)
click to toggle source
# File lib/ae_page_objects/rails/application_router.rb, line 47 def resolve_named_route(named_route) requirements = router.named_routes[named_route].requirements ResolvedRoute.new(requirements[:controller], requirements[:action]) end
resolve_url(url, method)
click to toggle source
# File lib/ae_page_objects/rails/application_router.rb, line 52 def resolve_url(url, method) recognized_path = router.recognize_path(url, {:method => method}) ResolvedRoute.new(recognized_path[:controller], recognized_path[:action]) rescue ActionController::RoutingError, ActionController::MethodNotAllowed end
router()
click to toggle source
# File lib/ae_page_objects/rails/application_router.rb, line 43 def router raise NotImplementedError, "You must implement router" end
routes()
click to toggle source
# File lib/ae_page_objects/rails/application_router.rb, line 35 def routes raise NotImplementedError, "You must implement routes" end