54 lines
1.5 KiB
Ruby
54 lines
1.5 KiB
Ruby
require 'active_support/configurable'
|
|
|
|
module Kaminari
|
|
# Configures global settings for Kaminari
|
|
# Kaminari.configure do |config|
|
|
# config.default_per_page = 10
|
|
# end
|
|
def self.configure(&block)
|
|
yield @config ||= Kaminari::Configuration.new
|
|
end
|
|
|
|
# Global settings for Kaminari
|
|
def self.config
|
|
@config
|
|
end
|
|
|
|
# need a Class for 3.0
|
|
class Configuration #:nodoc:
|
|
include ActiveSupport::Configurable
|
|
config_accessor :default_per_page
|
|
config_accessor :max_per_page
|
|
config_accessor :window
|
|
config_accessor :outer_window
|
|
config_accessor :left
|
|
config_accessor :right
|
|
config_accessor :page_method_name
|
|
config_accessor :max_pages
|
|
config_accessor :params_on_first_page
|
|
|
|
def param_name
|
|
config.param_name.respond_to?(:call) ? config.param_name.call : config.param_name
|
|
end
|
|
|
|
# define param_name writer (copied from AS::Configurable)
|
|
writer, line = 'def param_name=(value); config.param_name = value; end', __LINE__
|
|
singleton_class.class_eval writer, __FILE__, line
|
|
class_eval writer, __FILE__, line
|
|
end
|
|
|
|
# this is ugly. why can't we pass the default value to config_accessor...?
|
|
configure do |config|
|
|
config.default_per_page = 25
|
|
config.max_per_page = nil
|
|
config.window = 4
|
|
config.outer_window = 0
|
|
config.left = 0
|
|
config.right = 0
|
|
config.page_method_name = :page
|
|
config.param_name = :page
|
|
config.max_pages = nil
|
|
config.params_on_first_page = false
|
|
end
|
|
end
|