kaminari-core 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/views/kaminari/_paginator.html.erb +1 -1
- data/lib/generators/kaminari/views_generator.rb +2 -0
- data/lib/kaminari/config.rb +26 -14
- data/lib/kaminari/core/version.rb +1 -1
- data/lib/kaminari/helpers/helper_methods.rb +3 -1
- data/lib/kaminari/helpers/paginator.rb +2 -5
- data/lib/kaminari/helpers/tags.rb +27 -1
- data/lib/kaminari/models/configuration_methods.rb +4 -1
- data/lib/kaminari/models/page_scope_methods.rb +6 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 13bfdf7c93e9183a36d3e99699eee59895948472c66d31f97bbb99a768ec89d0
|
4
|
+
data.tar.gz: 44c167d6cfe80ecca307ee3a31ac3ebbd8766c09b259686442cf22d4968df9d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89492adf61154a7eeabd3eac4e4429dc82802596de85d04066f76523f5ca1b6a89d493814b30537dd29e245a2d92f88d263688fb0ed3ce7cdbb979d1ee2ccf71
|
7
|
+
data.tar.gz: 25cc4d4c811c80e15cd271f49dd0de85ba83749a44411f3ce64de441b32de01f1122448e7d939831eb42cb5ba3269e4953b021a4f8abb29a949e717ee098c67b
|
@@ -7,7 +7,7 @@
|
|
7
7
|
paginator: the paginator that renders the pagination tags inside
|
8
8
|
-%>
|
9
9
|
<%= paginator.render do -%>
|
10
|
-
<nav class="pagination">
|
10
|
+
<nav class="pagination" role="navigation" aria-label="pager">
|
11
11
|
<%= first_page_tag unless current_page.first? %>
|
12
12
|
<%= prev_page_tag unless current_page.first? %>
|
13
13
|
<% each_page do |page| -%>
|
@@ -110,6 +110,8 @@ BANNER
|
|
110
110
|
end
|
111
111
|
|
112
112
|
module GitHubApiHelper
|
113
|
+
require 'open-uri'
|
114
|
+
|
113
115
|
def get_files_in_master
|
114
116
|
master_tree_sha = open('https://api.github.com/repos/amatsuda/kaminari_themes/git/refs/heads/master') do |json|
|
115
117
|
ActiveSupport::JSON.decode(json.read)['object']['sha']
|
data/lib/kaminari/config.rb
CHANGED
@@ -1,28 +1,40 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'active_support/configurable'
|
3
2
|
|
4
3
|
module Kaminari
|
5
4
|
# Configures global settings for Kaminari
|
6
5
|
# Kaminari.configure do |config|
|
7
6
|
# config.default_per_page = 10
|
8
7
|
# end
|
9
|
-
|
8
|
+
class << self
|
9
|
+
def configure
|
10
|
+
yield config
|
11
|
+
end
|
12
|
+
|
13
|
+
def config
|
14
|
+
@_config ||= Config.new
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class Config
|
19
|
+
attr_accessor :default_per_page, :max_per_page, :window, :outer_window, :left, :right, :page_method_name, :max_pages, :params_on_first_page
|
20
|
+
attr_writer :param_name
|
10
21
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
+
def initialize
|
23
|
+
@default_per_page = 25
|
24
|
+
@max_per_page = nil
|
25
|
+
@window = 4
|
26
|
+
@outer_window = 0
|
27
|
+
@left = 0
|
28
|
+
@right = 0
|
29
|
+
@page_method_name = :page
|
30
|
+
@param_name = :page
|
31
|
+
@max_pages = nil
|
32
|
+
@params_on_first_page = false
|
33
|
+
end
|
22
34
|
|
23
35
|
# If param_name was given as a callable object, call it when returning
|
24
36
|
def param_name
|
25
|
-
|
37
|
+
@param_name.respond_to?(:call) ? @param_name.call : @param_name
|
26
38
|
end
|
27
39
|
end
|
28
40
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Kaminari
|
2
4
|
module Helpers
|
3
5
|
module HelperMethods
|
@@ -99,7 +101,7 @@ module Kaminari
|
|
99
101
|
# #-> Displaying items 6 - 10 of 26 in total
|
100
102
|
def page_entries_info(collection, entry_name: nil)
|
101
103
|
entry_name = if entry_name
|
102
|
-
entry_name.pluralize(collection.size)
|
104
|
+
entry_name.pluralize(collection.size, I18n.locale)
|
103
105
|
else
|
104
106
|
collection.entry_name(count: collection.size).downcase
|
105
107
|
end
|
@@ -6,11 +6,8 @@ module Kaminari
|
|
6
6
|
module Helpers
|
7
7
|
# The main container tag
|
8
8
|
class Paginator < Tag
|
9
|
-
def initialize(template, window: nil, outer_window:
|
10
|
-
outer_window
|
11
|
-
left ||= Kaminari.config.left
|
12
|
-
right ||= Kaminari.config.right
|
13
|
-
@window_options = {window: window || inner_window || Kaminari.config.window, left: left.zero? ? outer_window : left, right: right.zero? ? outer_window : right}
|
9
|
+
def initialize(template, window: nil, outer_window: Kaminari.config.outer_window, left: Kaminari.config.left, right: Kaminari.config.right, inner_window: Kaminari.config.window, **options) #:nodoc:
|
10
|
+
@window_options = {window: window || inner_window, left: left.zero? ? outer_window : left, right: right.zero? ? outer_window : right}
|
14
11
|
|
15
12
|
@template, @options, @theme, @views_prefix, @last = template, options, options[:theme], options[:views_prefix], nil
|
16
13
|
@window_options.merge! @options
|
@@ -24,7 +24,7 @@ module Kaminari
|
|
24
24
|
@params = @params.to_unsafe_h if @params.respond_to?(:to_unsafe_h)
|
25
25
|
@params = @params.with_indifferent_access
|
26
26
|
@params.except!(*PARAM_KEY_BLACKLIST)
|
27
|
-
@params.
|
27
|
+
@params.reverse_merge! params
|
28
28
|
end
|
29
29
|
|
30
30
|
def to_s(locals = {}) #:nodoc:
|
@@ -117,6 +117,19 @@ module Kaminari
|
|
117
117
|
# The "previous" page of the current page
|
118
118
|
class PrevPage < Tag
|
119
119
|
include Link
|
120
|
+
|
121
|
+
# TODO: Remove this initializer before 1.3.0.
|
122
|
+
def initialize(template, params: {}, param_name: nil, theme: nil, views_prefix: nil, **options) #:nodoc:
|
123
|
+
# params in Rails 5 may not be a Hash either,
|
124
|
+
# so it must be converted to a Hash to be merged into @params
|
125
|
+
if params && params.respond_to?(:to_unsafe_h)
|
126
|
+
ActiveSupport::Deprecation.warn 'Explicitly passing params to helpers could be omitted.'
|
127
|
+
params = params.to_unsafe_h
|
128
|
+
end
|
129
|
+
|
130
|
+
super(template, params: params, param_name: param_name, theme: theme, views_prefix: views_prefix, **options)
|
131
|
+
end
|
132
|
+
|
120
133
|
def page #:nodoc:
|
121
134
|
@options[:current_page] - 1
|
122
135
|
end
|
@@ -125,6 +138,19 @@ module Kaminari
|
|
125
138
|
# The "next" page of the current page
|
126
139
|
class NextPage < Tag
|
127
140
|
include Link
|
141
|
+
|
142
|
+
# TODO: Remove this initializer before 1.3.0.
|
143
|
+
def initialize(template, params: {}, param_name: nil, theme: nil, views_prefix: nil, **options) #:nodoc:
|
144
|
+
# params in Rails 5 may not be a Hash either,
|
145
|
+
# so it must be converted to a Hash to be merged into @params
|
146
|
+
if params && params.respond_to?(:to_unsafe_h)
|
147
|
+
ActiveSupport::Deprecation.warn 'Explicitly passing params to helpers could be omitted.'
|
148
|
+
params = params.to_unsafe_h
|
149
|
+
end
|
150
|
+
|
151
|
+
super(template, params: params, param_name: param_name, theme: theme, views_prefix: views_prefix, **options)
|
152
|
+
end
|
153
|
+
|
128
154
|
def page #:nodoc:
|
129
155
|
@options[:current_page] + 1
|
130
156
|
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module Kaminari
|
3
3
|
module ConfigurationMethods #:nodoc:
|
4
|
-
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
5
8
|
module ClassMethods #:nodoc:
|
6
9
|
# Overrides the default +per_page+ value per model
|
7
10
|
# class Article < ActiveRecord::Base
|
@@ -19,7 +19,7 @@ module Kaminari
|
|
19
19
|
|
20
20
|
def max_paginates_per(new_max_per_page)
|
21
21
|
@_max_per_page = new_max_per_page
|
22
|
-
per
|
22
|
+
per current_per_page, max_per_page: new_max_per_page
|
23
23
|
end
|
24
24
|
|
25
25
|
def padding(num)
|
@@ -52,6 +52,11 @@ module Kaminari
|
|
52
52
|
raise ZeroPerPageOperation, "Current page was incalculable. Perhaps you called .per(0)?"
|
53
53
|
end
|
54
54
|
|
55
|
+
# Current per-page number
|
56
|
+
def current_per_page
|
57
|
+
(defined?(@_per) && @_per) || default_per_page
|
58
|
+
end
|
59
|
+
|
55
60
|
# Next page number in the collection
|
56
61
|
def next_page
|
57
62
|
current_page + 1 unless last_page? || out_of_range?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kaminari-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.6.
|
110
|
+
rubygems_version: 2.6.14
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: Kaminari's core pagination library
|