Module: Kaminari

Defined in:
lib/kaminari/engine.rb,
lib/kaminari.rb,
lib/kaminari/hooks.rb,
lib/kaminari/config.rb,
lib/kaminari/railtie.rb,
lib/kaminari/version.rb,
lib/kaminari/helpers/tags.rb,
lib/kaminari/helpers/paginator.rb,
lib/kaminari/models/array_extension.rb,
lib/kaminari/models/mongoid_extension.rb,
lib/kaminari/models/page_scope_methods.rb,
lib/generators/kaminari/views_generator.rb,
lib/generators/kaminari/config_generator.rb,
lib/kaminari/models/configuration_methods.rb,
lib/kaminari/models/data_mapper_extension.rb,
lib/kaminari/helpers/action_view_extension.rb,
lib/kaminari/models/mongo_mapper_extension.rb,
lib/kaminari/models/active_record_extension.rb,
lib/kaminari/models/plucky_criteria_methods.rb,
lib/kaminari/models/mongoid_criteria_methods.rb,
lib/kaminari/models/active_record_model_extension.rb,
lib/kaminari/models/active_record_relation_methods.rb,
lib/kaminari/models/data_mapper_collection_methods.rb

Overview

:nodoc:

Defined Under Namespace

Modules: ActionViewExtension, ActiveRecordExtension, ActiveRecordModelExtension, ActiveRecordRelationMethods, ConfigurationMethods, DataMapperCollectionMethods, DataMapperExtension, Generators, Helpers, MongoMapperExtension, MongoidCriteriaMethods, MongoidExtension, PageScopeMethods, PluckyCriteriaMethods Classes: Configuration, Engine, Hooks, PaginatableArray, Railtie

Constant Summary collapse

VERSION =
'0.13.0'

Class Method Summary collapse

Class Method Details

.configObject

Global settings for Kaminari



13
14
15
# File 'lib/kaminari/config.rb', line 13

def self.config
  @config
end

.configure {|@config ||= Kaminari::Configuration.new| ... } ⇒ Object

Configures global settings for Kaminari

Kaminari.configure do |config|
  config.default_per_page = 10
end

Yields:



8
9
10
# File 'lib/kaminari/config.rb', line 8

def self.configure(&block)
  yield @config ||= Kaminari::Configuration.new
end

.frameworksObject



2
3
4
5
6
7
8
9
# File 'lib/kaminari.rb', line 2

def self.frameworks
  frameworks = []
  case
    when rails?   then frameworks << 'rails'
    when sinatra? then frameworks << 'sinatra/base'
  end
  frameworks
end

.hook!Object



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/kaminari.rb', line 45

def self.hook!
  load_framework!
  load_kaminari!
  require 'kaminari/hooks'
  if rails?
    require 'kaminari/railtie'
    require 'kaminari/engine'
  elsif sinatra?
    require 'kaminari/sinatra'
  else
    Kaminari::Hooks.init!
  end
end

.load!Object



59
60
61
# File 'lib/kaminari.rb', line 59

def self.load!
  hook!
end

.load_framework!Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/kaminari.rb', line 11

def self.load_framework!
  show_warning if frameworks.empty?
  frameworks.each do |framework|
    begin
      require framework
    rescue NameError => e
      raise "Failed to load framework #{framework.inspect}. Have you added it to Gemfile?"
    end
  end
end

.load_kaminari!Object



37
38
39
40
41
42
43
# File 'lib/kaminari.rb', line 37

def self.load_kaminari!
  require 'kaminari/config'
  require 'kaminari/helpers/action_view_extension'
  require 'kaminari/helpers/paginator'
  require 'kaminari/models/page_scope_methods'
  require 'kaminari/models/configuration_methods'
end

.paginate_array(array, options = {}) ⇒ Object

Wrap an Array object to make it paginatable

Options

  • :limit - limit

  • :offset - offset

  • :total_count - total_count



57
58
59
# File 'lib/kaminari/models/array_extension.rb', line 57

def self.paginate_array(array, options = {})
  PaginatableArray.new array, options
end

.show_warningObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/kaminari.rb', line 22

def self.show_warning
  $stderr.puts <<-EOC
warning: no framework detected.
would you check out if your Gemfile appropriately configured?
---- e.g. ----
when Rails:
  gem 'rails'
  gem 'kaminari'

when Sinatra/Padrino:
  gem 'kaminari', :require => 'kaminari/sinatra'

  EOC
end