module Pagy::Backend
def pagy_metadata(pagy, deprecated_url=nil, absolute: nil)
def pagy_metadata(pagy, deprecated_url=nil, absolute: nil) absolute = Pagy.deprecated_arg(:url, deprecated_url, :absolute, absolute) if deprecated_url names = pagy.vars[:metadata] unknown = names - METADATA raise VariableError.new(pagy), "unknown metadata #{unknown.inspect}" \ unless unknown.empty? scaffold_url = pagy_url_for(pagy, PAGE_PLACEHOLDER, absolute: absolute) {}.tap do |metadata| names.each do |key| metadata[key] = case key when :scaffold_url then scaffold_url when :first_url then scaffold_url.sub(PAGE_PLACEHOLDER, 1.to_s) when :prev_url then scaffold_url.sub(PAGE_PLACEHOLDER, pagy.prev.to_s) when :page_url then scaffold_url.sub(PAGE_PLACEHOLDER, pagy.page.to_s) when :next_url then scaffold_url.sub(PAGE_PLACEHOLDER, pagy.next.to_s) when :last_url then scaffold_url.sub(PAGE_PLACEHOLDER, pagy.last.to_s) else pagy.send(key) end end end end