method
new
rails latest stable - Class:
ActionDispatch::Routing::Mapper::Mapping
new(set:, ast:, controller:, default_action:, to:, formatted:, via:, options_constraints:, anchor:, scope_params:, options:)public
No documentation available.
# File actionpack/lib/action_dispatch/routing/mapper.rb, line 121
def initialize(set,, ast,, controller,, default_action,, to,, formatted,, via,, options_constraints,, anchor,, scope_params,, options))
@defaults = scope_params[:defaults]
@set = set
@to = intern(to)
@default_controller = intern(controller)
@default_action = intern(default_action)
@anchor = anchor
@via = via
@internal = options.delete(:internal)
@scope_options = scope_params[:options]
ast = Journey::Ast.new(ast, formatted)
options = ast.wildcard_options.merge!(options)
options = normalize_options!(options, ast.path_params, scope_params[:module])
split_options = constraints(options, ast.path_params)
constraints = scope_params[:constraints].merge Hash[split_options[:constraints] || []]
if options_constraints.is_a?(Hash)
@defaults = Hash[options_constraints.find_all { |key, default|
URL_OPTIONS.include?(key) && (String === default || Integer === default)
}].merge @defaults
@blocks = scope_params[:blocks]
constraints.merge! options_constraints
else
@blocks = blocks(options_constraints)
end
requirements, conditions = split_constraints ast.path_params, constraints
verify_regexp_requirements requirements, ast.wildcard_options
formats = normalize_format(formatted)
@requirements = formats[:requirements].merge Hash[requirements]
@conditions = Hash[conditions]
@defaults = formats[:defaults].merge(@defaults).merge(normalize_defaults(options))
if ast.path_params.include?(:action) && [email protected]?(:action)
@defaults[:action] ||= "index"
end
@required_defaults = (split_options[:required_defaults] || []).map(&:first)
ast.requirements = @requirements
@path = Journey::Path::Pattern.new(ast, @requirements, JOINED_SEPARATORS, @anchor)
end