class ApiPagination::Configuration
Attributes
base_url[RW]
include_total[RW]
page_header[RW]
per_page_header[RW]
response_formats[RW]
total_header[RW]
Public Class Methods
new()
click to toggle source
# File lib/api-pagination/configuration.rb, line 19 def initialize @total_header = 'Total' @per_page_header = 'Per-Page' @page_header = nil @include_total = true @base_url = nil @response_formats = [:json, :xml] end
Public Instance Methods
configure() { |self| ... }
click to toggle source
# File lib/api-pagination/configuration.rb, line 15 def configure(&block) yield self end
paginator()
click to toggle source
# File lib/api-pagination/configuration.rb, line 55 def paginator if instance_variable_defined? :@paginator @paginator else set_paginator end end
paginator=(paginator)
click to toggle source
# File lib/api-pagination/configuration.rb, line 63 def paginator=(paginator) case paginator.to_sym when :pagy use_pagy when :kaminari use_kaminari when :will_paginate use_will_paginate else raise StandardError, "Unknown paginator: #{paginator}" end end
Private Instance Methods
first_page?()
click to toggle source
# File lib/api-pagination/configuration.rb, line 119 def first_page?() !previous_page end
last_page?()
click to toggle source
# File lib/api-pagination/configuration.rb, line 120 def last_page?() !next_page end
set_paginator()
click to toggle source
# File lib/api-pagination/configuration.rb, line 78 def set_paginator conditions = [defined?(Pagy), defined?(Kaminari), defined?(WillPaginate::CollectionMethods)] if conditions.compact.size > 1 Kernel.warn <<-WARNING Warning: api-pagination relies on Pagy, Kaminari, or WillPaginate, but more than one are currently active. If possible, you should remove one or the other. If you can't, you _must_ configure api-pagination on your own. For example: ApiPagination.configure do |config| config.paginator = :kaminari end You should also configure Kaminari to use a different `per_page` method name as using these gems together causes a conflict; some information can be found at https://github.com/activeadmin/activeadmin/wiki/How-to-work-with-will_paginate Kaminari.configure do |config| config.page_method_name = :per_page_kaminari end WARNING elsif defined?(Pagy) use_pagy elsif defined?(Kaminari) use_kaminari elsif defined?(WillPaginate::CollectionMethods) use_will_paginate end end
use_kaminari()
click to toggle source
# File lib/api-pagination/configuration.rb, line 112 def use_kaminari require 'kaminari/models/array_extension' @paginator = :kaminari end
use_pagy()
click to toggle source
# File lib/api-pagination/configuration.rb, line 108 def use_pagy @paginator = :pagy end
use_will_paginate()
click to toggle source
# File lib/api-pagination/configuration.rb, line 117 def use_will_paginate WillPaginate::CollectionMethods.module_eval do def first_page?() !previous_page end def last_page?() !next_page end end @paginator = :will_paginate end