pagy 0.3.0 → 0.4.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
2
  SHA256:
3
- metadata.gz: b23ad1b8bfd60d555fd55e0b5534c34b29055447c41116454f73892ffc7eef73
4
- data.tar.gz: 0a8d532508344459576ab5d3c89e772ef0ee626cd3671d56fa21b611815f8d11
3
+ metadata.gz: '0479a6de6806589108454c59ca39a6446ee0d339c5b111c19eddb69fcd9a4285'
4
+ data.tar.gz: 26bf5f952a06f4f874ec489adb337207b1b7664a3be70f95440656b55dcbb189
5
5
  SHA512:
6
- metadata.gz: d035e9a3319e63353dd743ef0da6c05b995f5f66c5effea233cdecb52bae17bee7f50730a18ed4ccda818b0e29b52ab79db48e37db9f7dfe9c719908c6ebd1b8
7
- data.tar.gz: d487d610feef6697c625677d4332b474a3f8876a434edfcefa321c371838ef6552ad7bc246cbcb0a5340dc55302d4d9f728032e823ce964c04cc09a577817a04
6
+ metadata.gz: d7cee6202f84b11adff3f04edffb9a367bb881f391a9f7635e191ebef9231d10d94628f98ef11cdda279a79808003e90689d47881158ea26443319745dac470e
7
+ data.tar.gz: 410ce77476e24ec9f8069b4723824f69ec1f8966ddcc0e2989a79acfc56def0a53ef7b20383c393fbdaad32d93c503d7136b819d8503587a242c387fd062d73a
data/lib/pagy.rb CHANGED
@@ -7,7 +7,7 @@ require 'ostruct'
7
7
  # Notice that it doesn't actually do any pagination, nor navigation... that is
8
8
  # done with a few helpers in the Pagy::Backend and Pagy::Frontend modules.
9
9
 
10
- class Pagy ; VERSION = '0.3.0'
10
+ class Pagy ; VERSION = '0.4.0'
11
11
 
12
12
  autoload :Backend, 'pagy/backend'
13
13
  autoload :Frontend, 'pagy/frontend'
data/lib/pagy/backend.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  class Pagy
2
2
  # Including this module (usually in your controller) is handy but totally optional.
3
- # It basically just encapsulates a couple of verbose statement in one single slick
3
+ # It basically just encapsulates a couple of verbose statements in one single slick
4
4
  # #pagy method, but it does not add any functionality on its own.
5
5
  #
6
6
  # Using the module allows you to have a predefined method and a few sub-methods
data/lib/pagy/frontend.rb CHANGED
@@ -6,7 +6,7 @@ class Pagy
6
6
  # allowing fancy routes, etc.)
7
7
  #
8
8
  # All the code has been optimized for speed and low memory usage.
9
- # In particular there are a couple of very specialized methods (pagy_t and pagy_linker_proc)
9
+ # In particular there are a couple of very specialized methods (pagy_t and pagy_link_proc)
10
10
  # that can be used in place of the equivalent (but general-purpose) framework helpers,
11
11
  # in order to dramatically boost speed and reduce memory usage.
12
12
  #
@@ -15,7 +15,7 @@ class Pagy
15
15
  # just to get you (almost) the same string repeated with just the page number replaced.
16
16
  # Since pagination is a very specialized process, it is possible to do the same by using
17
17
  # a one-line proc that uses just one single string interpolation. Compared to the general-purpose
18
- # link_to method, the pagy_linker_proc is tens of times faster and uses a very small fraction of the memory.
18
+ # link_to method, the pagy_link_proc benchmark gives a 20 times faster score and 12 times less memory.
19
19
  #
20
20
  # Notice: The code in this module may not look very pretty (as most code dealing with many long strings),
21
21
  # but its performance makes it very sexy! ;)
@@ -29,7 +29,7 @@ class Pagy
29
29
  # using the '%' method like in the following example:
30
30
  #
31
31
  # case item
32
- # when Integer; '<span class="page">%s</span>' % linker.call(item)
32
+ # when Integer; '<span class="page">%s</span>' % link.call(item)
33
33
  # when String ; '<span class="page active">%s</span>' % item
34
34
  # when :gap ; '<span class="page gap">%s</span>' % pagy_t('pagy.nav.gap')
35
35
  # end
@@ -44,18 +44,18 @@ class Pagy
44
44
 
45
45
  # Generic pagination: it returns the html with the series of links to the pages
46
46
  def pagy_nav(pagy, opts=nil)
47
- pagy.opts.merge!(opts) if opts ; linker = pagy_linker_proc(pagy) ; tags = [] # init all vars
47
+ pagy.opts.merge!(opts) if opts ; link = pagy_link_proc(pagy) ; tags = [] # init all vars
48
48
 
49
- tags << (pagy.prev ? %(<span class="page prev">#{linker.call pagy.prev, pagy_t('pagy.nav.prev'.freeze), 'aria-label="previous"'.freeze}</span>)
49
+ tags << (pagy.prev ? %(<span class="page prev">#{link.call pagy.prev, pagy_t('pagy.nav.prev'.freeze), 'aria-label="previous"'.freeze}</span>)
50
50
  : %(<span class="page prev disabled">#{pagy_t('pagy.nav.prev'.freeze)}</span>))
51
51
  pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
52
52
  tags << case item
53
- when Integer; %(<span class="page">#{linker.call item}</span>) # page link
53
+ when Integer; %(<span class="page">#{link.call item}</span>) # page link
54
54
  when String ; %(<span class="page active">#{item}</span>) # current page
55
55
  when :gap ; %(<span class="page gap">#{pagy_t('pagy.nav.gap'.freeze)}</span>) # page gap
56
56
  end
57
57
  end
58
- tags << (pagy.next ? %(<span class="page next">#{linker.call pagy.next, pagy_t('pagy.nav.next'.freeze), 'aria-label="next"'.freeze}</span>)
58
+ tags << (pagy.next ? %(<span class="page next">#{link.call pagy.next, pagy_t('pagy.nav.next'.freeze), 'aria-label="next"'.freeze}</span>)
59
59
  : %(<span class="page next disabled">#{pagy_t('pagy.nav.next'.freeze)}</span>))
60
60
  %(<nav class="#{pagy.opts[:class]||'pagination'.freeze}" role="navigation" aria-label="pager">#{tags.join(pagy.opts[:separator]||' '.freeze)}</nav>)
61
61
  end
@@ -63,18 +63,18 @@ class Pagy
63
63
 
64
64
  # Pagination for bootstrap: it returns the html with the series of links to the pages
65
65
  def pagy_nav_bootstrap(pagy, opts=nil)
66
- pagy.opts.merge!(opts) if opts ; linker = pagy_linker_proc(pagy) ; tags = [] # init all vars
66
+ pagy.opts.merge!(opts) if opts ; link = pagy_link_proc(pagy) ; tags = [] # init all vars
67
67
 
68
- tags << (pagy.prev ? %(<li class="page-item prev">#{linker.call pagy.prev, pagy_t('pagy.nav.prev'.freeze), 'class="page-link" aria-label="previous"'.freeze}</li>)
68
+ tags << (pagy.prev ? %(<li class="page-item prev">#{link.call pagy.prev, pagy_t('pagy.nav.prev'.freeze), 'class="page-link" aria-label="previous"'.freeze}</li>)
69
69
  : %(<li class="page-item prev disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.prev'.freeze)}</a></li>))
70
70
  pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
71
71
  tags << case item
72
- when Integer; %(<li class="page-item">#{linker.call item, item, 'class="page-link"'.freeze}</li>) # page link
73
- when String ; %(<li class="page-item active">#{linker.call item, item, 'class="page-link"'.freeze}</li>) # active page
72
+ when Integer; %(<li class="page-item">#{link.call item, item, 'class="page-link"'.freeze}</li>) # page link
73
+ when String ; %(<li class="page-item active">#{link.call item, item, 'class="page-link"'.freeze}</li>) # active page
74
74
  when :gap ; %(<li class="page-item gap disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.gap'.freeze)}</a></li>) # page gap
75
75
  end
76
76
  end
77
- tags << (pagy.next ? %(<li class="page-item next">#{linker.call pagy.next, pagy_t('pagy.nav.next'.freeze), 'class="page-link" aria-label="next"'.freeze}</li>)
77
+ tags << (pagy.next ? %(<li class="page-item next">#{link.call pagy.next, pagy_t('pagy.nav.next'.freeze), 'class="page-link" aria-label="next"'.freeze}</li>)
78
78
  : %(<li class="page-item next disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.next'.freeze)}</a></li>))
79
79
  %(<nav class="#{pagy.opts[:class]||'pagination'.freeze}" role="navigation" aria-label="pager"><ul class="pagination">#{tags.join}</ul></nav>)
80
80
  end
@@ -145,7 +145,7 @@ class Pagy
145
145
 
146
146
  MARKER = "-pagy-#{'pagy'.hash}-".freeze
147
147
 
148
- def pagy_linker_proc(pagy)
148
+ def pagy_link_proc(pagy)
149
149
  rel = { pagy.prev=>' rel="prev"'.freeze, pagy.next=>' rel="next"'.freeze }
150
150
  a, b = %(<a href="#{pagy_url_for(MARKER)}" #{pagy.opts[:link_extra]}).split(MARKER)
151
151
  -> (n, name=n.to_s, extra=''.freeze) { "#{a}#{n}#{b}#{rel[n]||''.freeze} #{extra}>#{name}</a>"}
@@ -0,0 +1,40 @@
1
+ <%#
2
+ This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
3
+ calls with the actual strings ("&lsaquo; Prev", "Next &rsaquo;", "&hellip;").
4
+
5
+ This template uses the pagy_link_proc helper for high speed (+20x) and low memory (-12x).
6
+ Usage: link.call(page_number[, label[,extra_attributes_string]])
7
+ -%>
8
+ <% link = pagy_link_proc(pagy) %>
9
+
10
+ <nav aria-label="pager" class="pagination" role="navigation">
11
+ <ul class="pagination">
12
+
13
+ <% if pagy.prev -%>
14
+ <li class="page-item prev"><%== link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'class="page-link" aria-label="previous"') %></li>
15
+ <% else -%>
16
+ <li class="page-item prev disabled"><a href="#" class="page-link"><%== pagy_t('pagy.nav.prev') %></a></li>
17
+ <% end -%>
18
+
19
+ <% pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36] -%>
20
+ <% case item
21
+ when Integer # page link -%>
22
+ <li class="page-item"><%== link.call(item, item, 'class="page-link"') %></li>
23
+
24
+ <% when String # current page -%>
25
+ <li class="page-item active"><%== link.call(item, item, 'class="page-link"') %></li>
26
+
27
+ <% when :gap # page gap -%>
28
+ <li class="page-item disabled gap"><a href="#" class="page-link"><%== pagy_t('pagy.nav.gap') %></a></li>
29
+
30
+ <% end -%>
31
+ <% end -%>
32
+
33
+ <% if pagy.next -%>
34
+ <li class="page-item next"><%== link.call(pagy.next, pagy_t('pagy.nav.next'), 'class="page-link" aria-label="next"') %></li>
35
+ <% else -%>
36
+ <li class="page-item next disabled"><a href="#" class="page-link"><%== pagy_t('pagy.nav.next') %></a></li>
37
+ <% end -%>
38
+
39
+ </ul>
40
+ </nav>
@@ -0,0 +1,35 @@
1
+ -# This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
2
+ -# calls with the actual strings ("&lsaquo; Prev", "Next &rsaquo;", "&hellip;").
3
+
4
+ -# This template uses the pagy_link_proc helper for high speed (+20x) and low memory (-12x).
5
+ -# Usage: link.call(page_number[, label[,extra_attributes_string]])
6
+
7
+ - link = pagy_link_proc(pagy)
8
+
9
+ %nav.pagination{"aria-label" => "pager", :role => "navigation"}
10
+
11
+ %ul.pagination
12
+
13
+ - if pagy.prev
14
+ %li.page-item.prev!= link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'class="page-link" aria-label="previous"')
15
+ - else
16
+ %li.page-item.prev.disabled
17
+ %a.page-link{:href => '#'}!= pagy_t('pagy.nav.prev')
18
+
19
+ - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
20
+ - case item
21
+ - when Integer # page link
22
+ %li.page-item!= link.call(item, item, 'class="page-link"')
23
+
24
+ - when String # current page
25
+ %li.page-item.active!= link.call(item, item, 'class="page-link"')
26
+
27
+ - when :gap # page gap
28
+ %li.page-item.disabled.gap
29
+ %a.page-link{:href => "#"}!= pagy_t('pagy.nav.gap')
30
+
31
+ - if pagy.next
32
+ %li.page-item.next!= link.call(pagy.next, pagy_t('pagy.nav.next'), 'class="page-link" aria-label="next"')
33
+ - else
34
+ %li.page-item.next.disabled
35
+ %a.page-link{:href => '#'}!= pagy_t('pagy.nav.next')
@@ -0,0 +1,36 @@
1
+ / This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
2
+ / calls with the actual strings ("&lsaquo; Prev", "Next &rsaquo;", "&hellip;").
3
+
4
+ / This template uses the pagy_link_proc helper for high speed (+20x) and low memory (-12x).
5
+ / Usage: link.call(page_number[, label[,extra_attributes_string]])
6
+
7
+ - link = pagy_link_proc(pagy)
8
+
9
+ nav.pagination role="navigation" aria-label="pager"
10
+
11
+ ul.pagination
12
+
13
+ - if pagy.prev
14
+ li.page-item.prev == link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'class="page-link" aria-label="previous"')
15
+ - else
16
+ li.page-item.prev.disabled
17
+ a.page-link href="#" == pagy_t('pagy.nav.prev')
18
+
19
+ - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
20
+ - case item
21
+
22
+ - when Integer # page link
23
+ li.page-item == link.call(item, item, 'class="page-link"')
24
+
25
+ - when String # current page
26
+ li.page-item.active == link.call(item, item, 'class="page-link"')
27
+
28
+ - when :gap # page gap
29
+ li.page-item.disabled.gap
30
+ a.page-link href="#" == pagy_t('pagy.nav.gap')
31
+
32
+ - if pagy.next
33
+ li.page-item.next == link.call(pagy.next, pagy_t('pagy.nav.next'), 'class="page-link" aria-label="next"')
34
+ - else
35
+ li.page-item.next.disabled
36
+ a.page-link href="#" == pagy_t('pagy.nav.next')
@@ -0,0 +1,39 @@
1
+ <%#
2
+ This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
3
+ calls with the actual strings ("&lsaquo; Prev", "Next &rsaquo;", "&hellip;").
4
+
5
+ This template uses the pagy_link_proc helper for high speed (+20x) and low memory (-12x).
6
+ Usage: link.call(page_number[, label[,extra_attributes_string]])
7
+ -%>
8
+ <% link = pagy_link_proc(pagy) -%>
9
+
10
+ <nav aria-label="pager" class="pagination" role="navigation">
11
+
12
+ <% if pagy.prev -%>
13
+ <span class="page prev"><%== link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"') %></span>
14
+ <% else -%>
15
+ <span class="page prev disabled"><%== pagy_t('pagy.nav.prev') %></span>
16
+ <% end -%>
17
+
18
+ <% pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36] -%>
19
+ <% case item
20
+
21
+ when Integer # page link -%>
22
+ <span class="page"><%== link.call(item) %></span>
23
+
24
+ <% when String # current page -%>
25
+ <span class="page current"><%= item %></span>
26
+
27
+ <% when :gap # page gap -%>
28
+ <span class="page gap"><%== pagy_t('pagy.nav.gap') %></span>
29
+
30
+ <% end -%>
31
+ <% end -%>
32
+
33
+ <% if pagy.next -%>
34
+ <span class="page next"><%== link.call(pagy.next, pagy_t('pagy.nav.next'), 'aria-label="next"') %></span>
35
+ <% else -%>
36
+ <span class="page next disabled"><%== pagy_t('pagy.nav.next') %></span>
37
+ <% end -%>
38
+
39
+ </nav>
@@ -0,0 +1,32 @@
1
+ -# This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
2
+ -# calls with the actual strings ("&lsaquo; Prev", "Next &rsaquo;", "&hellip;").
3
+
4
+ -# This template uses the pagy_link_proc helper for high speed (+20x) and low memory (-12x).
5
+ -# Usage: link.call(page_number[, label[,extra_attributes_string]])
6
+
7
+ - link = pagy_link_proc(pagy)
8
+
9
+ %nav.pagination{"aria-label" => "pager", :role => "navigation"}
10
+
11
+ - if pagy.prev
12
+ %span.page.prev!= link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"')
13
+ - else
14
+ %span.page.prev.disabled!= pagy_t('pagy.nav.prev')
15
+
16
+ - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
17
+ - case item
18
+
19
+ - when Integer # page link
20
+ %span.page
21
+ != link.call(item)
22
+
23
+ - when String # current page
24
+ %span.page.current= item
25
+
26
+ - when :gap # page gap
27
+ %span.page.gap!= pagy_t('pagy.nav.gap')
28
+
29
+ - if pagy.next
30
+ %span.page.next!= link.call(pagy.next, pagy_t('pagy.nav.next'), 'aria-label="next"')
31
+ - else
32
+ %span.page.next.disabled!= pagy_t('pagy.nav.next')
@@ -0,0 +1,30 @@
1
+ / This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
2
+ / calls with the actual strings ("&lsaquo; Prev", "Next &rsaquo;", "&hellip;").
3
+
4
+ / This template uses the pagy_link_proc helper for high speed (+20x) and low memory (-12x).
5
+ / Usage: link.call(page_number[, label[,extra_attributes_string]])
6
+
7
+ - link = pagy_link_proc(pagy)
8
+
9
+ nav.pagination role="navigation" aria-label="pager"
10
+
11
+ - if pagy.prev
12
+ span.page.prev ==> link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"')
13
+ - else
14
+ span.page.prev.disabled ==> pagy_t('pagy.nav.prev')
15
+
16
+ - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
17
+ - case item
18
+ - when Integer # page link
19
+ span.page ==> link.call(item)
20
+
21
+ - when String # current page
22
+ span.page.current ==> item
23
+
24
+ - when :gap # page gap
25
+ span.page.gap ==> pagy_t('pagy.nav.gap')
26
+
27
+ - if pagy.next
28
+ span.page.next == link.call(pagy.next, pagy_t('pagy.nav.next'), 'aria-label="next"')
29
+ - else
30
+ span.page.next.disabled == pagy_t('pagy.nav.next')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Domizio Demichelis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-12 00:00:00.000000000 Z
11
+ date: 2018-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -137,14 +137,12 @@ files:
137
137
  - lib/pagy.rb
138
138
  - lib/pagy/backend.rb
139
139
  - lib/pagy/frontend.rb
140
- - lib/templates/bootstrap-no-dep.html.haml
141
- - lib/templates/bootstrap-no-dep.html.slim
142
- - lib/templates/bootstrap-rails-dep.html.erb
143
- - lib/templates/default-no-dep.html.haml
144
- - lib/templates/default-no-dep.html.slim
145
- - lib/templates/default-rails-dep.html.erb
146
- - lib/templates/default-rails-dep.html.haml
147
- - lib/templates/default-rails-dep.html.slim
140
+ - lib/templates/bootstrap.html.erb
141
+ - lib/templates/bootstrap.html.haml
142
+ - lib/templates/bootstrap.html.slim
143
+ - lib/templates/default.html.erb
144
+ - lib/templates/default.html.haml
145
+ - lib/templates/default.html.slim
148
146
  - pagy.gemspec
149
147
  homepage: https://github.com/ddnexus/pagy
150
148
  licenses:
@@ -1,28 +0,0 @@
1
- -# This template uses only the pagy_url_for helper, no dependency on any framework
2
- -# No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
3
-
4
- - rel = { pagy.prev => 'prev', pagy.next => 'next' }
5
-
6
- %nav.pagination{"aria-label" => "pager", :role => "navigation"}
7
-
8
- %ul.pagination
9
-
10
- %li.page-item.prev{:class => ('disabled' unless pagy.prev)}
11
- %a.page-link{:href => (pagy.prev ? pagy_url_for(pagy.prev) : '#'), :rel => "prev", "aria-label"=>"previous"}!= pagy_t('pagy.nav.prev')
12
-
13
- - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
14
- - case item
15
- - when Integer # page link
16
- %li.page-item
17
- %a.page-link{:href => pagy_url_for(item), :rel => rel[item]}= item
18
-
19
- - when String # current page
20
- %li.page-item.active
21
- %a.page-link{:href => pagy_url_for(item)}= item
22
-
23
- - when :gap # page gap
24
- %li.page-item.disabled.gap
25
- %a.page-link{:href => "#"}!= pagy_t('pagy.nav.gap')
26
-
27
- %li.page-item.next{:class => ('disabled' unless pagy.next)}
28
- %a.page-link{:href => (pagy.next ? pagy_url_for(pagy.next) : '#'), :rel => "next", "aria-label"=>"next"}!= pagy_t('pagy.nav.next')
@@ -1,37 +0,0 @@
1
- / This template uses only the pagy_url_for helper, no dependency on any framework
2
- / No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
3
-
4
- - rel = { pagy.prev => 'prev', pagy.next => 'next' }
5
-
6
- nav.pagination role="navigation" aria-label="pager"
7
-
8
- ul.pagination
9
-
10
- - if pagy.prev
11
- li.page-item.prev
12
- a.page-link href=pagy_url_for(pagy.prev) rel="prev" aria-label="previous" == pagy_t('pagy.nav.prev')
13
- - else
14
- li.page-item.prev.disabled
15
- a.page-link href="#" == pagy_t('pagy.nav.prev')
16
-
17
- - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
18
- - case item
19
-
20
- - when Integer # page link
21
- li.page-item
22
- a.page-link href=(pagy_url_for(item)) rel=(rel[item]) == item
23
-
24
- - when String # current page
25
- li.page-item.active
26
- a.page-link href=(pagy_url_for(item)) == item
27
-
28
- - when :gap # page gap
29
- li.page-item.disabled.gap
30
- a.page-link href="#" == pagy_t('pagy.nav.gap')
31
-
32
- - if pagy.next
33
- li.page-item.next
34
- a.page-link href=pagy_url_for(pagy.next) rel="next" aria-label="next" == pagy_t('pagy.nav.next')
35
- - else
36
- li.page-item.next.disabled
37
- a.page-link href="#" == pagy_t('pagy.nav.next')
@@ -1,46 +0,0 @@
1
- <%#
2
- This template uses only the pagy_url_for helper from pagy and link_to from rails
3
- No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
4
- -%>
5
- <% rel = { pagy.prev => 'prev', pagy.next => 'next' } %>
6
-
7
- <nav aria-label="pager" class="pagination" role="navigation">
8
- <ul class="pagination">
9
-
10
- <% if pagy.prev -%>
11
- <li class="page-item prev">
12
- <%= link_to pagy_t('pagy.nav.prev').html_safe, pagy_url_for(pagy.prev), rel: 'prev', class: 'page-link', 'aria-label': "previous" %>
13
- </li>
14
- <% else -%>
15
- <li class="page-item prev disabled">
16
- <%= link_to pagy_t('pagy.nav.prev').html_safe, pagy_url_for('#'), class: 'page-link'%>
17
- </li>
18
- <% end -%>
19
-
20
-
21
- <% pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36] -%>
22
- <% case item
23
- when Integer -%>
24
- <li class="page-item"><%== link_to item, pagy_url_for(item), rel: rel[item], class: 'page-link' %></li>
25
-
26
- <% when String -%>
27
- <li class="page-item active"><%== link_to item, pagy_url_for(item), class: 'page-link'%></li>
28
-
29
- <% when :gap -%>
30
- <li class="page-item disabled gap"><%== link_to pagy_t('pagy.nav.gap').html_safe, '#', class: 'page-link'%></li>
31
-
32
- <% end -%>
33
- <% end -%>
34
-
35
- <% if pagy.next -%>
36
- <li class="page-item next">
37
- <%= link_to pagy_t('pagy.nav.next').html_safe, pagy_url_for(pagy.next), rel: 'next', class: 'page-link', 'aria-label': "next" %>
38
- </li>
39
- <% else -%>
40
- <li class="page-item next disabled">
41
- <%= link_to pagy_t('pagy.nav.next').html_safe, pagy_url_for('#'), class: 'page-link'%>
42
- </li>
43
- <% end -%>
44
-
45
- </ul>
46
- </nav>
@@ -1,31 +0,0 @@
1
- -# This template uses only the pagy_url_for helper, no dependency on any framework
2
- -# No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
3
-
4
- - rel = { pagy.prev => 'prev', pagy.next => 'next' }
5
-
6
- %nav.pagination{"aria-label" => "pager", :role => "navigation"}
7
-
8
- %span{:class => "page prev #{'disabled' unless pagy.prev}"}
9
- - if pagy.prev
10
- %a{:href => pagy_url_for(pagy.prev), :rel => "prev", "aria-label"=>"previous"}!= pagy_t('pagy.nav.prev')
11
- - else
12
- != pagy_t('pagy.nav.prev')
13
-
14
- - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
15
- - case item
16
-
17
- - when Integer # page link
18
- %span.page
19
- %a{:href => pagy_url_for(item), :rel => rel[item]}= item
20
-
21
- - when String # current page
22
- %span.page.current= item
23
-
24
- - when :gap # page gap
25
- %span.page.gap!= pagy_t('pagy.nav.gap')
26
-
27
- %span{:class => "page next #{'disabled' unless pagy.next}"}
28
- - if pagy.next
29
- %a{:href => pagy_url_for(pagy.next), :rel => "next", "aria-label"=>"next"}!= pagy_t('pagy.nav.next')
30
- - else
31
- != pagy_t('pagy.nav.next')
@@ -1,30 +0,0 @@
1
- / This template uses only the pagy_url_for helper, no dependency on any framework
2
- / No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
3
-
4
- - rel = { pagy.prev => 'prev', pagy.next => 'next' }
5
-
6
- nav.pagination role="navigation" aria-label="pager"
7
-
8
- span.page.prev> class=('disabled' unless pagy.prev)
9
- - if pagy.prev
10
- a href=(pagy_url_for(pagy.prev)) rel="prev" aria-label="previous" == pagy_t('pagy.nav.prev')
11
- - else
12
- == pagy_t('pagy.nav.prev')
13
-
14
- - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
15
- - case item
16
- - when Integer # page link
17
- span.page>
18
- a href=(pagy_url_for(item)) rel=(rel[item]) == item
19
-
20
- - when String # current page
21
- span.page.current ==> item
22
-
23
- - when :gap # page gap
24
- span.page.gap ==> pagy_t('pagy.nav.gap')
25
-
26
- span.page.next class=('disabled' unless pagy.next)
27
- - if pagy.next
28
- a href=(pagy_url_for(pagy.next)) rel="next" aria-label="next" == pagy_t('pagy.nav.next')
29
- - else
30
- == pagy_t('pagy.nav.next')
@@ -1,32 +0,0 @@
1
- <%#
2
- This template uses only the pagy_url_for helper from pagy and link_to/link_to_if from rails
3
- No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
4
- -%>
5
- <% rel = { pagy.prev => 'prev', pagy.next => 'next' } %>
6
-
7
- <nav aria-label="pager" class="pagination" role="navigation">
8
-
9
- <span class="page prev <%= 'disabled' unless pagy.prev %>">
10
- <%= link_to_if pagy.prev, pagy_t('pagy.nav.prev').html_safe, pagy_url_for(pagy.prev), rel: 'prev', 'aria-label': "previous" %>
11
- </span>
12
-
13
- <% pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36] -%>
14
- <% case item
15
-
16
- when Integer -%>
17
- <span class="page"><%= link_to item, pagy_url_for(item), rel: rel[item] %></span>
18
-
19
- <% when String -%>
20
- <span class="page current"><%= item %></span>
21
-
22
- <% when :gap -%>
23
- <span class="page gap"><%== pagy_t('pagy.nav.gap') %></span>
24
-
25
- <% end -%>
26
- <% end -%>
27
-
28
- <span class="page next <%= 'disabled' unless pagy.next %>">
29
- <%= link_to_if pagy.next, pagy_t('pagy.nav.next').html_safe, pagy_url_for(pagy.next), rel: 'next', 'aria-label': "next" %>
30
- </span>
31
-
32
- </nav>
@@ -1,24 +0,0 @@
1
- -# This template uses only the pagy_url_for helper from pagy and link_to/link_to_if from rails
2
- -# No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
3
-
4
- - rel = { pagy.prev => 'prev', pagy.next => 'next' }
5
-
6
- %nav.pagination{"aria-label" => "pager", :role => "navigation"}
7
-
8
- %span{:class => "page prev #{'disabled' unless pagy.prev}"}
9
- = link_to_if pagy.prev, pagy_t('pagy.nav.prev').html_safe, pagy_url_for(pagy.prev), rel: 'prev', 'aria-label': "previous"
10
-
11
- - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
12
- - case item
13
-
14
- - when Integer # page link
15
- %span.page= link_to item, pagy_url_for(item), rel: rel[item]
16
-
17
- - when String # current page
18
- %span.page.current= item
19
-
20
- - when :gap # page gap
21
- %span.page.gap!= pagy_t('pagy.nav.gap')
22
-
23
- %span{:class => "page next #{'disabled' unless pagy.next}"}
24
- = link_to_if pagy.next, pagy_t('pagy.nav.next').html_safe, pagy_url_for(pagy.next), rel: 'next', 'aria-label': "next"
@@ -1,23 +0,0 @@
1
- / This template uses only the pagy_url_for helper from pagy and link_to/link_to_if from rails
2
- / No special optimization for speed and memory. Use the pagy helpers if speed and memory are important.
3
-
4
- - rel = { pagy.prev => 'prev', pagy.next => 'next' }
5
-
6
- nav.pagination role="navigation" aria-label="pager"
7
-
8
- span.page.prev> class=('disabled' unless pagy.prev)
9
- == link_to_if pagy.prev, pagy_t('pagy.nav.prev').html_safe, pagy_url_for(pagy.prev), rel: 'prev', 'aria-label': "previous"
10
-
11
- - pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
12
- - case item
13
- - when Integer # page link
14
- span.page ==> link_to item, pagy_url_for(item), rel: rel[item]
15
-
16
- - when String # current page
17
- span.page.current ==> item
18
-
19
- - when :gap # page gap
20
- span.page.gap ==> pagy_t('pagy.nav.gap')
21
-
22
- span.page.next class=('disabled' unless pagy.next)
23
- == link_to_if pagy.next, pagy_t('pagy.nav.next').html_safe, pagy_url_for(pagy.next), rel: 'next', 'aria-label': "next"