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' => %(