mirror of
https://github.com/kaminari/kaminari.git
synced 2022-11-09 13:44:37 -05:00
refs #41 general configuration options
make DEFAULT_PER_PAGE configurable via Kaminiar.configure method
This commit is contained in:
parent
74736637c8
commit
5a9303fe79
4 changed files with 48 additions and 2 deletions
27
lib/kaminari/config.rb
Normal file
27
lib/kaminari/config.rb
Normal file
|
@ -0,0 +1,27 @@
|
|||
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
|
||||
end
|
||||
|
||||
# this is ugly. why can't we pass the default value to config_accessor...?
|
||||
configure do |config|
|
||||
config.default_per_page = 25
|
||||
end
|
||||
end
|
|
@ -13,7 +13,7 @@ module Kaminari
|
|||
# This model's default per_page value
|
||||
# returns 25 unless explicitly overridden via <tt>paginates_per</tt>
|
||||
def default_per_page
|
||||
@_default_per_page || Kaminari::DEFAULT_PER_PAGE
|
||||
@_default_per_page || Kaminari.config.default_per_page
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,13 +2,13 @@ require 'rails'
|
|||
# ensure ORMs are loaded *before* initializing Kaminari
|
||||
begin; require 'mongoid'; rescue LoadError; end
|
||||
|
||||
require File.join(File.dirname(__FILE__), 'config')
|
||||
require File.join(File.dirname(__FILE__), 'helpers/action_view_extension')
|
||||
require File.join(File.dirname(__FILE__), 'helpers/paginator')
|
||||
require File.join(File.dirname(__FILE__), 'models/page_scope_methods')
|
||||
require File.join(File.dirname(__FILE__), 'models/configuration_methods')
|
||||
|
||||
module Kaminari
|
||||
DEFAULT_PER_PAGE = 25 unless defined? ::Kaminari::DEFAULT_PER_PAGE
|
||||
class Railtie < ::Rails::Railtie #:nodoc:
|
||||
initializer 'kaminari' do |app|
|
||||
ActiveSupport.on_load(:active_record) do
|
||||
|
|
19
spec/config/config_spec.rb
Normal file
19
spec/config/config_spec.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
require File.expand_path('../spec_helper', File.dirname(__FILE__))
|
||||
|
||||
describe Kaminari::Configuration do
|
||||
subject { Kaminari.config }
|
||||
describe 'default_per_page' do
|
||||
context 'by default' do
|
||||
its(:default_per_page) { should == 25 }
|
||||
end
|
||||
context 'configured via config block' do
|
||||
before do
|
||||
Kaminari.configure {|c| c.default_per_page = 17}
|
||||
end
|
||||
its(:default_per_page) { should == 17 }
|
||||
after do
|
||||
Kaminari.configure {|c| c.default_per_page = 25}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue