def generate(params, defaults = {}) unless (v_controller = (params[:controller] || defaults[:controller]).to_s) =~ /^(?-mix:[^\/.,;?]+)$/ raise ArgumentError, "Condition cannot be generated with #{params.inspect}" end "/#{params.delete(:controller) ; v_controller}#{if (params[:action] || params[:id]) && (v_action = (params[:action] || defaults[:action]).to_s) =~ /^(?-mix:[^\/.,;?]+)$/ ; "/#{params.delete(:action) ; v_action}#{if (params[:id]) && (v_id = (params[:id] || defaults[:id]).to_s) =~ /^(?-mix:[^\/.,;?]+)$/ ; "/#{params.delete(:id) ; v_id}" ; end}" ; end}" end