lib/scrivito/link_parser.rb in scrivito_sdk-1.0.0 vs lib/scrivito/link_parser.rb in scrivito_sdk-1.1.0.rc1
- old
+ new
@@ -61,24 +61,29 @@
uri.host == @host
end
end
def find_obj(uri)
- return nil unless application_uri?(uri) && application_route?(uri)
+ return nil unless application_uri?(uri)
- route_params = route(uri)
+ route_params = obj_route_params(uri)
if id = route_params[:id]
Obj.find(id)
elsif permalink = route_params[:permalink]
Obj.find_by_permalink(permalink)
end
rescue Scrivito::ResourceNotFound
end
- def application_route?(uri)
- route_params = route(uri)
- route_params && route_params[:controller] == 'scrivito/cms_dispatch'
+ def obj_route_params(uri)
+ dispatch_route_for(sdk_route(uri)) || dispatch_route_for(route(uri)) || {}
+ end
+
+ def dispatch_route_for(route_params)
+ if route_params && route_params[:controller] == 'scrivito/cms_dispatch'
+ route_params
+ end
end
def sdk_route(uri)
Scrivito::SdkEngine.routes.recognize_path(uri.to_s, method: :get)
rescue ActionController::RoutingError