def to_route
raise Error, "The route has already been committed." if @route
controller = @params[:controller]
if prefixes = @options[:controller_prefix]
controller ||= ":controller"
prefixes.reverse_each do |prefix|
break if controller =~ %r{^/(.*)} && controller = $1
controller = "#{prefix}/#{controller}"
end
end
@params.merge!(:controller => controller.to_s.gsub(%r{^/}, '')) if controller
identifiers = @identifiers.sort { |(first,_),(sec,_)| first <=> sec || 1 }
@route = Route.new(@conditions.dup,@params, @blocks, :defaults => @defaults.dup, :identifiers => identifiers)
if before = @options[:before] && @options[:before].last
@route.register_at(Router.routes.index(before))
else
@route.register
end
self
end