Sha256: bcc3b601c08f3d7a0f8b146fec28893e6682772f5ec7610151a9cc6bfafa2aa0

Contents?: true

Size: 836 Bytes

Versions: 5

Compression:

Stored size: 836 Bytes

Contents

# See the Pagy documentation: https://ddnexus.github.io/pagy/extras/trim
# frozen_string_literal: true

class Pagy

  VARS[:enable_trim_extra] = true

  module UseTrimExtra

    def pagy_link_proc(pagy, deprecated_link_extra=nil, link_extra: '')
      link_extra = Pagy.deprecated_arg(:link_extra, deprecated_link_extra, :link_extra, link_extra) if deprecated_link_extra
      link_proc = super(pagy, link_extra: link_extra)
      return link_proc unless pagy.vars[:enable_trim_extra]
      lambda do |num, text=num, extra=''|
        link = +link_proc.call(num, text, extra)
        return link unless num == 1
        pagy_trim(pagy, link)
      end
    end

    def pagy_trim(pagy, link)
      link.sub!(/[?&]#{pagy.vars[:page_param]}=1\b(?!&)|\b#{pagy.vars[:page_param]}=1&/, '')
    end

  end
  Frontend.prepend UseTrimExtra

end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/pagy-4.11.0/lib/pagy/extras/trim.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/pagy-4.11.0/lib/pagy/extras/trim.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/pagy-4.11.0/lib/pagy/extras/trim.rb
pagy-4.11.0 lib/pagy/extras/trim.rb
pagy-4.10.2 lib/pagy/extras/trim.rb