Sha256: 046bec49fa7822b1b89ee89b6e2acba7a5b0d2707d6b8e03e708eedef6ff3600
Contents?: true
Size: 1.61 KB
Versions: 2
Compression:
Stored size: 1.61 KB
Contents
# See the Pagy documentation: https://ddnexus.github.io/pagy/extras/metadata # frozen_string_literal: true class Pagy # Add a specialized backend method for pagination metadata module Backend private METADATA = %i[ scaffold_url first_url prev_url page_url next_url last_url count page items vars pages last from to prev next series ].tap do |metadata| metadata << :sequels if VARS.key?(:steps) # :steps gets defined along with the #sequels method end.freeze VARS[:metadata] = METADATA.dup include Helpers def pagy_metadata(pagy, url=nil) names = pagy.vars[:metadata] unknown = names - METADATA raise VariableError.new(pagy), "unknown metadata #{unknown.inspect}" \ unless unknown.empty? scaffold_url = pagy_url_for(PAGE_PLACEHOLDER, pagy, url) {}.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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pagy-4.3.0 | lib/pagy/extras/metadata.rb |
pagy-4.2.0 | lib/pagy/extras/metadata.rb |