kaminari-core 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 71383288887542c1c6fa3f97848d7c8808c832e6
4
- data.tar.gz: 39eaef3145689f64c2d2811365f581d133891c7a
2
+ SHA256:
3
+ metadata.gz: 13bfdf7c93e9183a36d3e99699eee59895948472c66d31f97bbb99a768ec89d0
4
+ data.tar.gz: 44c167d6cfe80ecca307ee3a31ac3ebbd8766c09b259686442cf22d4968df9d3
5
5
  SHA512:
6
- metadata.gz: fd05edc2e7fe87e05f73837e6c299a9a944423a34e37972a790c448c490d3b3fdf749950174cbc7cbbbd832286015a5638df67c5c426fa5239903eff9e5540e1
7
- data.tar.gz: 376afd5167b074d3a73afa27b38b4a3d86b7eb1071ebf392e64508484a9708ad7103ed06f1870e6fef4d770c1a3ac2bbeed6538facf366acc675165ec5066c30
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']
@@ -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
- include ActiveSupport::Configurable
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
- config.instance_eval do
12
- self.default_per_page = 25
13
- self.max_per_page = nil
14
- self.window = 4
15
- self.outer_window = 0
16
- self.left = 0
17
- self.right = 0
18
- self.page_method_name = :page
19
- self.param_name = :page
20
- self.max_pages = nil
21
- self.params_on_first_page = false
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
- self[:param_name].respond_to?(:call) ? self[:param_name].call : self[:param_name]
37
+ @param_name.respond_to?(:call) ? @param_name.call : @param_name
26
38
  end
27
39
  end
28
40
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module Kaminari
3
3
  module Core
4
- VERSION = '1.0.1'
4
+ VERSION = '1.1.0'
5
5
  end
6
6
  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: nil, left: nil, right: nil, inner_window: nil, **options) #:nodoc:
10
- outer_window ||= Kaminari.config.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.merge! 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
- extend ActiveSupport::Concern
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 ((defined?(@_per) && @_per) || default_per_page), max_per_page: new_max_per_page
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.1
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-01-19 00:00:00.000000000 Z
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.8
110
+ rubygems_version: 2.6.14
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: Kaminari's core pagination library