middleman-paginate 0.1.1 → 0.1.2
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 +4 -4
- data/lib/middleman/paginate/extension.rb +27 -35
- data/lib/middleman/paginate/version.rb +1 -1
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8d9716b324b38651350e48cea10659bf384b198
|
4
|
+
data.tar.gz: 152b81f96508e9e3528a0667c18d62d6fe3e11e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1f573e86cc015a549fa87015a91b0facbb9a0700f91bd4aab9a260082947d3e7bf3f9cc2e04b880f9e79072d7b2fa7caa98a53f64ff4790a1e9fc1fdb6f86cd
|
7
|
+
data.tar.gz: b1ea5c1f61f0418f822068e67f173fae91bd7acf6342e93f311bf0311a6bcb0938323f3a4de8a87d806153a101053e07b0cf5e03290612c1d99bf7b9fae1bdc2
|
@@ -8,17 +8,6 @@ module Middleman
|
|
8
8
|
|
9
9
|
expose_to_config paginate: :paginate
|
10
10
|
|
11
|
-
class Helper
|
12
|
-
attr_reader :page, :total_pages, :base_path, :suffix
|
13
|
-
|
14
|
-
def initialize(page, total_pages, base_path, suffix)
|
15
|
-
@page = page
|
16
|
-
@total_pages = total_pages
|
17
|
-
@base_path = base_path
|
18
|
-
@suffix = suffix
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
11
|
class CollectionDescriptor
|
23
12
|
attr_reader :descriptors
|
24
13
|
|
@@ -33,42 +22,45 @@ module Middleman
|
|
33
22
|
end
|
34
23
|
end
|
35
24
|
|
25
|
+
class Pager
|
26
|
+
attr_reader :current_page, :total_pages, :per_page
|
27
|
+
|
28
|
+
def initialize(base_path, suffix, current_page, total_pages, per_page)
|
29
|
+
@base_path = base_path
|
30
|
+
@suffix = suffix
|
31
|
+
@current_page = current_page
|
32
|
+
@total_pages = total_pages
|
33
|
+
@per_page = per_page
|
34
|
+
end
|
35
|
+
|
36
|
+
def next_page
|
37
|
+
current_page < total_pages && current_page + 1
|
38
|
+
end
|
39
|
+
|
40
|
+
def previous_page
|
41
|
+
current_page > 1 && current_page - 1
|
42
|
+
end
|
43
|
+
|
44
|
+
def page_path(page = current_page)
|
45
|
+
"#{@base_path}#{page == 1 ? '' : @suffix.gsub(/:num/, page.to_s)}.html"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
36
49
|
def paginate(collection, base_path, template, per_page: 20, suffix: "/page/:num", locals: {}, data: {})
|
37
50
|
pages = collection.each_slice(per_page).to_a
|
38
|
-
num_pages = pages.size
|
39
51
|
|
40
52
|
descriptors = []
|
41
53
|
|
42
|
-
path_builder = ->(page) {
|
43
|
-
"#{base_path}#{page == 1 ? '' : suffix.gsub(/:num/, page.to_s)}.html"
|
44
|
-
}
|
45
|
-
|
46
54
|
pages.each_with_index do |page_collection, i|
|
47
|
-
|
48
|
-
next_page_num = page_num < num_pages && page_num + 1
|
49
|
-
previous_page_num = page_num > 1 && page_num - 1
|
50
|
-
|
51
|
-
page_path = path_builder.call(page_num)
|
52
|
-
next_page_path = next_page_num && path_builder.call(next_page_num)
|
53
|
-
previous_page_path = previous_page_num && path_builder.call(previous_page_num)
|
54
|
-
|
55
|
-
meta = ::Middleman::Util.recursively_enhance(
|
56
|
-
page_number: page_num,
|
57
|
-
num_pages: num_pages,
|
58
|
-
per_page: per_page,
|
59
|
-
next_page_num: next_page_num,
|
60
|
-
next_page_path: next_page_path,
|
61
|
-
previous_page_num: previous_page_num,
|
62
|
-
previous_page_path: previous_page_path
|
63
|
-
)
|
55
|
+
pager = Pager.new(base_path, suffix, i + 1, pages.size, per_page)
|
64
56
|
|
65
57
|
opts = {
|
66
|
-
locals: locals.merge(items: page_collection, pager:
|
58
|
+
locals: locals.merge(items: page_collection, pager: pager),
|
67
59
|
data: data
|
68
60
|
}
|
69
61
|
|
70
62
|
descriptors << Middleman::Sitemap::Extensions::ProxyDescriptor.new(
|
71
|
-
Middleman::Util.normalize_path(page_path),
|
63
|
+
Middleman::Util.normalize_path(pager.page_path),
|
72
64
|
Middleman::Util.normalize_path(template),
|
73
65
|
opts
|
74
66
|
)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-paginate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,4 +113,3 @@ signing_key:
|
|
113
113
|
specification_version: 4
|
114
114
|
summary: A simple helper to generate custom paginated content with Middleman
|
115
115
|
test_files: []
|
116
|
-
has_rdoc:
|