diff --git a/kaminari-actionview/lib/kaminari/actionview/action_view_extension.rb b/kaminari-actionview/lib/kaminari/actionview/action_view_extension.rb
index 1f03fd5..7c30cc1 100644
--- a/kaminari-actionview/lib/kaminari/actionview/action_view_extension.rb
+++ b/kaminari-actionview/lib/kaminari/actionview/action_view_extension.rb
@@ -22,8 +22,9 @@ module Kaminari
# * :ANY_OTHER_VALUES - Any other hash key & values would be directly passed into each tag as :locals value.
def paginate(scope, paginator_class: Kaminari::Helpers::Paginator, **options)
options[:total_pages] ||= scope.total_pages
+ options.reverse_merge! current_page: scope.current_page, per_page: scope.limit_value, remote: false
- paginator = paginator_class.new(self, options.reverse_merge(current_page: scope.current_page, per_page: scope.limit_value, remote: false))
+ paginator = paginator_class.new self, options
paginator.to_s
end
@@ -44,10 +45,13 @@ module Kaminari
# <%= link_to_previous_page @users, 'Previous Page' do %>
# At the Beginning
# <% end %>
- def link_to_previous_page(scope, name, options = {})
+ def link_to_previous_page(scope, name, **options)
prev_page = path_to_prev_page(scope, options)
- link_to_if prev_page, name, prev_page, options.except(:params, :param_name).reverse_merge(rel: 'prev') do
+ options.except! :params, :param_name
+ options.reverse_merge! rel: 'prev'
+
+ link_to_if prev_page, name, prev_page, options do
yield if block_given?
end
end
@@ -69,10 +73,13 @@ module Kaminari
# <%= link_to_next_page @users, 'Next Page' do %>
# No More Pages
# <% end %>
- def link_to_next_page(scope, name, options = {})
+ def link_to_next_page(scope, name, **options)
next_page = path_to_next_page(scope, options)
- link_to_if next_page, name, next_page, options.except(:params, :param_name).reverse_merge(rel: 'next') do
+ options.except! :params, :param_name
+ options.reverse_merge! rel: 'next'
+
+ link_to_if next_page, name, next_page, options do
yield if block_given?
end
end
diff --git a/kaminari-core/lib/kaminari/helpers/paginator.rb b/kaminari-core/lib/kaminari/helpers/paginator.rb
index cf3b96a..edf410c 100644
--- a/kaminari-core/lib/kaminari/helpers/paginator.rb
+++ b/kaminari-core/lib/kaminari/helpers/paginator.rb
@@ -7,14 +7,14 @@ module Kaminari
# The main container tag
class Paginator < Tag
def initialize(template, window: nil, outer_window: nil, left: nil, right: nil, inner_window: nil, **options) #:nodoc:
- @window_options = {}.tap do |h|
- h[:window] = window || inner_window || Kaminari.config.window
- outer_window = outer_window || Kaminari.config.outer_window
- h[:left] = left || Kaminari.config.left
- h[:left] = outer_window if h[:left] == 0
- h[:right] = right || Kaminari.config.right
- h[:right] = outer_window if h[:right] == 0
- end
+ @window_options = {}
+ @window_options[:window] = window || inner_window || Kaminari.config.window
+ outer_window ||= Kaminari.config.outer_window
+ @window_options[:left] = left || Kaminari.config.left
+ @window_options[:left] = outer_window if @window_options[:left] == 0
+ @window_options[:right] = right || Kaminari.config.right
+ @window_options[:right] = outer_window if @window_options[:right] == 0
+
@template, @options = template, options
@theme = @options[:theme]
@views_prefix = @options[:views_prefix]
diff --git a/kaminari-core/lib/kaminari/helpers/tags.rb b/kaminari-core/lib/kaminari/helpers/tags.rb
index dd08c37..73b8ec9 100644
--- a/kaminari-core/lib/kaminari/helpers/tags.rb
+++ b/kaminari-core/lib/kaminari/helpers/tags.rb
@@ -22,7 +22,9 @@ module Kaminari
@params = template.params
# @params in Rails 5 no longer inherits from Hash
@params = @params.to_unsafe_h if @params.respond_to?(:to_unsafe_h)
- @params = @params.with_indifferent_access.except(*PARAM_KEY_BLACKLIST).merge(params)
+ @params = @params.with_indifferent_access
+ @params.except!(*PARAM_KEY_BLACKLIST)
+ @params.merge! params
end
def to_s(locals = {}) #:nodoc:
@@ -31,7 +33,9 @@ module Kaminari
end
def page_url_for(page)
- @template.url_for params_for(page).merge(only_path: true)
+ params = params_for(page)
+ params[:only_path] = true
+ @template.url_for params
end
private
@@ -76,7 +80,8 @@ module Kaminari
page_url_for page
end
def to_s(locals = {}) #:nodoc:
- super locals.merge(url: url)
+ locals[:url] = url
+ super locals
end
end
@@ -88,7 +93,8 @@ module Kaminari
@options[:page]
end
def to_s(locals = {}) #:nodoc:
- super locals.merge(page: page)
+ locals[:page] = page
+ super locals
end
end