From 7855e36d17272c2da3aebf88722c0919a426d804 Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 23 Feb 2020 01:12:28 -0600 Subject: [PATCH] application model: move pagination extension to concern. --- .../{ => concerns}/pagination_extension.rb | 7 +++++++ app/models/application_record.rb | 16 +--------------- 2 files changed, 8 insertions(+), 15 deletions(-) rename app/logical/{ => concerns}/pagination_extension.rb (91%) diff --git a/app/logical/pagination_extension.rb b/app/logical/concerns/pagination_extension.rb similarity index 91% rename from app/logical/pagination_extension.rb rename to app/logical/concerns/pagination_extension.rb index 27963ac5b..730dcde6a 100644 --- a/app/logical/pagination_extension.rb +++ b/app/logical/concerns/pagination_extension.rb @@ -3,6 +3,13 @@ module PaginationExtension attr_accessor :current_page, :records_per_page, :paginator_count, :paginator_mode + def paginated_search(params, defaults: {}, count_pages: params[:search].present?) + search_params = params.fetch(:search, {}).permit! + search_params = defaults.merge(search_params).with_indifferent_access + + search(search_params).paginate(params[:page], limit: params[:limit], search_count: count_pages) + end + def paginate(page, limit: nil, count: nil, search_count: nil) @records_per_page = limit || Danbooru.config.posts_per_page @records_per_page = @records_per_page.to_i.clamp(1, 1000) diff --git a/app/models/application_record.rb b/app/models/application_record.rb index 8f9f94579..b480a5b7e 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -4,21 +4,7 @@ class ApplicationRecord < ActiveRecord::Base include Mentionable extend HasBitFlags extend Searchable - - concerning :PaginationMethods do - class_methods do - def paginate(*args, **options) - extending(PaginationExtension).paginate(*args, **options) - end - - def paginated_search(params, defaults: {}, count_pages: params[:search].present?) - search_params = params.fetch(:search, {}).permit! - search_params = defaults.merge(search_params).with_indifferent_access - - search(search_params).paginate(params[:page], limit: params[:limit], search_count: count_pages) - end - end - end + extend PaginationExtension concerning :PrivilegeMethods do class_methods do