class ActionDispatch::Routing::RouteSet::NamedRouteCollection::UrlHelper::OptimizedUrlHelper
Experimental RBS support (using type sampling data from the type_fusion
project).
# sig/action_dispatch/routing/route_set.rbs class ActionDispatch::Routing::RouteSet::NamedRouteCollection::UrlHelper::OptimizedUrlHelper < ActionDispatch::Routing::RouteSet::NamedRouteCollection::UrlHelper::UrlHelper type ActionDispatch__Routing__RouteSet__NamedRouteCollection__UrlHelper__OptimizedUrlHelper_call_t = ConnectedAccountFolderItemComponent | #<Class:0x00000001151f19c0> | #<Class:0x0000000115550be8> | Module def call: (ActionDispatch__Routing__RouteSet__NamedRouteCollection__UrlHelper__OptimizedUrlHelper_call_t t, Symbol method_name, (Array[] | Array[Account]) args, Hash? inner_options, Proc url_strategy) -> untyped def optimize_routes_generation?: ((#<Class:0x000000010e05a820> | #<Class:0x00000001151f19c0>) t) -> untyped end
def call(t, method_name, args, inner_options, url_strategy)
Experimental RBS support (using type sampling data from the type_fusion
project).
type ActionDispatch__Routing__RouteSet__NamedRouteCollection__UrlHelper__OptimizedUrlHelper_call_t = ConnectedAccountFolderItemComponent | #<Class:0x00000001151f19c0> | #<Class:0x0000000115550be8> | Module type ActionDispatch__Routing__RouteSet__NamedRouteCollection__UrlHelper__OptimizedUrlHelper_call_inner_options = connected_account_id | ConnectedAccount | current_folder_id | String | parent_folder_id | NilClass | script_name | NilClass | nil | host | String | port | Integer | protocol | String | _recall | controller | String | action | String | script_name | String def call: (ActionDispatch__Routing__RouteSet__NamedRouteCollection__UrlHelper__OptimizedUrlHelper_call_t t, Symbol method_name, args, ActionDispatch__Routing__RouteSet__NamedRouteCollection__UrlHelper__OptimizedUrlHelper_call_inner_options inner_options, Proc url_strategy) -> untyped
This signature was generated using 5 samples from 1 application.
def call(t, method_name, args, inner_options, url_strategy) if args.size == arg_size && !inner_options && optimize_routes_generation?(t) options = t.url_options.merge @options path = optimized_helper(args) path << "/" if options[:trailing_slash] && !path.end_with?("/") options[:path] = path original_script_name = options.delete(:original_script_name) script_name = t._routes.find_script_name(options) if original_script_name script_name = original_script_name + script_name end options[:script_name] = script_name url_strategy.call options else super end end
def initialize(route, options, route_name)
def initialize(route, options, route_name) super @required_parts = @route.required_parts @arg_size = @required_parts.size end
def optimize_routes_generation?(t)
Experimental RBS support (using type sampling data from the type_fusion
project).
def optimize_routes_generation?: ((#<Class:0x000000010e05a820> | #<Class:0x00000001151f19c0>) t) -> untyped
This signature was generated using 3 samples from 1 application.
def optimize_routes_generation?(t) t.send(:optimize_routes_generation?) end
def optimized_helper(args)
def optimized_helper(args) params = parameterize_args(args) do raise_generation_error(args) end @route.format params end
def parameterize_args(args)
def parameterize_args(args) params = {} @arg_size.times { |i| key = @required_parts[i] value = args[i].to_param yield key if value.nil? || value.empty? params[key] = value } params end
def raise_generation_error(args)
def raise_generation_error(args) missing_keys = [] params = parameterize_args(args) { |missing_key| missing_keys << missing_key } constraints = Hash[@route.requirements.merge(params).sort_by { |k, v| k.to_s }] message = +"No route matches #{constraints.inspect}" message << ", missing required keys: #{missing_keys.sort.inspect}" raise ActionController::UrlGenerationError, message end