From 64347f8984115e9a61ccdd87b68fbbf0d03440b3 Mon Sep 17 00:00:00 2001 From: Domizio Demichelis Date: Thu, 22 Apr 2021 16:46:56 +0700 Subject: [PATCH] changed the argument order from pagy_url_for(page, pagy) > pagy_url_for(pagy, page) for consistency with all the other helpers; deprecation warning and support for pagy < 5 --- lib/pagy.rb | 3 ++- lib/pagy/deprecation.rb | 20 ++++++++++++++++ lib/pagy/extras/bootstrap.rb | 4 ++-- lib/pagy/extras/bulma.rb | 4 ++-- lib/pagy/extras/foundation.rb | 4 ++-- lib/pagy/extras/headers.rb | 2 +- lib/pagy/extras/items.rb | 5 ++-- lib/pagy/extras/materialize.rb | 4 ++-- lib/pagy/extras/metadata.rb | 2 +- lib/pagy/extras/navs.rb | 4 ++-- lib/pagy/extras/semantic.rb | 4 ++-- lib/pagy/extras/support.rb | 20 ++++++++-------- lib/pagy/extras/uikit.rb | 4 ++-- lib/pagy/frontend.rb | 14 ++++-------- pagy.manifest | 1 + test/pagy/derecation_test.rb | 20 ++++++++++++++++ test/pagy/extras/items_countless_test.rb | 10 ++++---- test/pagy/extras/items_elasticsearch_test.rb | 10 ++++---- test/pagy/frontend_test.rb | 24 ++++++++------------ 19 files changed, 95 insertions(+), 64 deletions(-) create mode 100644 lib/pagy/deprecation.rb create mode 100644 test/pagy/derecation_test.rb diff --git a/lib/pagy.rb b/lib/pagy.rb index d9928b448..f64db7218 100644 --- a/lib/pagy.rb +++ b/lib/pagy.rb @@ -66,9 +66,10 @@ def series(size=@vars[:size]) series[series.index(@page)] = @page.to_s series end - + end +require 'pagy/deprecation' require 'pagy/backend' require 'pagy/frontend' require 'pagy/exceptions' diff --git a/lib/pagy/deprecation.rb b/lib/pagy/deprecation.rb new file mode 100644 index 000000000..27f99fb04 --- /dev/null +++ b/lib/pagy/deprecation.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true +class Pagy + class << self + + # deprecated pagy_url_for rgument order + def deprecated_order(pagy, page) + Warning.warn '[PAGY WARNING] inverted use of pagy/page in pagy_url_for will not be supported in 5.0! Use pagy_url_for(pagy, page) instead.' + [page, pagy] + end + + + # deprecated arguments to remove in 5.0 + def deprecated_arg(arg, val, new_key, new_val) + value = new_val || val # we use the new_val if present + Warning.warn %([PAGY WARNING] deprecated use of positional `#{arg}` arg will not be supported in 5.0! Use only the keyword arg `#{new_key}: #{value.inspect}` instead.) + value + end + + end +end diff --git a/lib/pagy/extras/bootstrap.rb b/lib/pagy/extras/bootstrap.rb index 12b20c897..3237ee6d0 100644 --- a/lib/pagy/extras/bootstrap.rb +++ b/lib/pagy/extras/bootstrap.rb @@ -26,7 +26,7 @@ def pagy_bootstrap_nav(pagy, pagy_id: nil, link_extra: '') # Javascript pagination for bootstrap: it returns a nav and a JSON tag used by the Pagy.nav javascript def pagy_bootstrap_nav_js(pagy, deprecated_id=nil, pagy_id: nil, link_extra: '', steps: nil) - pagy_id = pagy_deprecated_arg(:id, deprecated_id, :pagy_id, pagy_id) if deprecated_id + pagy_id = Pagy.deprecated_arg(:id, deprecated_id, :pagy_id, pagy_id) if deprecated_id p_id = %( id="#{pagy_id}") if pagy_id link = pagy_link_proc(pagy, %(class="page-link" #{link_extra})) tags = { 'before' => %(