module Pagy::Helpers

def pagy_get_params(params) params end

Sub-method called only by #pagy_url_for: here for easy customization of params by overriding
def pagy_get_params(params) params end

def pagy_url_for(page, pagy, url=false)

This works with all Rack-based frameworks (Sinatra, Padrino, Rails, ...)
def pagy_url_for(page, pagy, url=false)
  p_vars = pagy.vars; params = request.GET.merge(p_vars[:params]); params[p_vars[:page_param].to_s] = page
  "#{request.base_url if url}#{request.path}?#{Rack::Utils.build_nested_query(pagy_get_params(params))}#{p_vars[:anchor]}"
end