pagy 9.3.5 → 43.0.0.rc2
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/apps/calendar.ru +547 -551
- data/apps/demo.ru +221 -178
- data/apps/index.rb +3 -1
- data/apps/keynav.ru +258 -0
- data/apps/{keyset_ar.ru → keyset.ru} +27 -32
- data/apps/{keyset_s.ru → keyset_sequel.ru} +24 -29
- data/apps/rails.ru +51 -48
- data/apps/repro.ru +46 -43
- data/bin/pagy +20 -21
- data/config/pagy.rb +35 -207
- data/javascripts/ai_widget.js +76 -0
- data/javascripts/pagy.js +151 -0
- data/javascripts/pagy.js.map +10 -0
- data/javascripts/pagy.min.js +1 -4
- data/javascripts/pagy.mjs +111 -63
- data/javascripts/wand.js +1166 -0
- data/lib/pagy/classes/calendar/calendar.rb +98 -0
- data/lib/pagy/{calendar → classes/calendar}/day.rb +7 -11
- data/lib/pagy/{calendar → classes/calendar}/month.rb +5 -10
- data/lib/pagy/{calendar → classes/calendar}/quarter.rb +10 -15
- data/lib/pagy/classes/calendar/unit.rb +92 -0
- data/lib/pagy/{calendar → classes/calendar}/week.rb +5 -9
- data/lib/pagy/{calendar → classes/calendar}/year.rb +5 -6
- data/lib/pagy/classes/exceptions.rb +33 -0
- data/lib/pagy/classes/keyset/active_record.rb +11 -0
- data/lib/pagy/classes/keyset/adapters/active_record.rb +50 -0
- data/lib/pagy/classes/keyset/adapters/sequel.rb +63 -0
- data/lib/pagy/classes/keyset/keynav/active_record.rb +13 -0
- data/lib/pagy/classes/keyset/keynav/sequel.rb +13 -0
- data/lib/pagy/classes/keyset/keynav.rb +77 -0
- data/lib/pagy/classes/keyset/keyset.rb +126 -0
- data/lib/pagy/classes/keyset/sequel.rb +11 -0
- data/lib/pagy/classes/offset/countless.rb +56 -0
- data/lib/pagy/classes/offset/offset.rb +54 -0
- data/lib/pagy/classes/offset/search.rb +38 -0
- data/lib/pagy/classes/request.rb +36 -0
- data/lib/pagy/modules/abilities/configurable.rb +36 -0
- data/lib/pagy/modules/abilities/linkable.rb +59 -0
- data/lib/pagy/modules/abilities/rangeable.rb +15 -0
- data/lib/pagy/modules/abilities/shiftable.rb +12 -0
- data/lib/pagy/{b64.rb → modules/b64.rb} +3 -7
- data/lib/pagy/modules/console.rb +38 -0
- data/lib/pagy/modules/i18n/i18n.rb +48 -0
- data/lib/pagy/modules/i18n/p11n/arabic.rb +29 -0
- data/lib/pagy/modules/i18n/p11n/east_slavic.rb +26 -0
- data/lib/pagy/modules/i18n/p11n/one_other.rb +15 -0
- data/lib/pagy/modules/i18n/p11n/one_upto_two_other.rb +15 -0
- data/lib/pagy/modules/i18n/p11n/other.rb +13 -0
- data/lib/pagy/modules/i18n/p11n/polish.rb +26 -0
- data/lib/pagy/modules/i18n/p11n/west_slavic.rb +22 -0
- data/lib/pagy/modules/i18n/p11n.rb +16 -0
- data/lib/pagy/modules/searcher.rb +20 -0
- data/lib/pagy/toolbox/helpers/anchor_tags.rb +25 -0
- data/lib/pagy/toolbox/helpers/bootstrap/input_nav_js.rb +24 -0
- data/lib/pagy/toolbox/helpers/bootstrap/previous_next_html.rb +18 -0
- data/lib/pagy/toolbox/helpers/bootstrap/series_nav.rb +29 -0
- data/lib/pagy/toolbox/helpers/bootstrap/series_nav_js.rb +21 -0
- data/lib/pagy/toolbox/helpers/bulma/input_nav_js.rb +21 -0
- data/lib/pagy/toolbox/helpers/bulma/previous_next_html.rb +19 -0
- data/lib/pagy/toolbox/helpers/bulma/series_nav.rb +28 -0
- data/lib/pagy/toolbox/helpers/bulma/series_nav_js.rb +20 -0
- data/lib/pagy/toolbox/helpers/data_hash.rb +26 -0
- data/lib/pagy/toolbox/helpers/headers_hash.rb +20 -0
- data/lib/pagy/toolbox/helpers/info_tag.rb +26 -0
- data/lib/pagy/toolbox/helpers/input_nav_js.rb +19 -0
- data/lib/pagy/toolbox/helpers/limit_tag_js.rb +23 -0
- data/lib/pagy/toolbox/helpers/loader.rb +33 -0
- data/lib/pagy/toolbox/helpers/page_url.rb +23 -0
- data/lib/pagy/toolbox/helpers/series_nav.rb +29 -0
- data/lib/pagy/toolbox/helpers/series_nav_js.rb +19 -0
- data/lib/pagy/toolbox/helpers/support/a_lambda.rb +34 -0
- data/lib/pagy/toolbox/helpers/support/data_pagy_attribute.rb +15 -0
- data/lib/pagy/toolbox/helpers/support/nav_aria_label_attribute.rb +12 -0
- data/lib/pagy/toolbox/helpers/support/series.rb +38 -0
- data/lib/pagy/toolbox/helpers/support/wrap_input_nav_js.rb +20 -0
- data/lib/pagy/toolbox/helpers/support/wrap_series_nav.rb +17 -0
- data/lib/pagy/toolbox/helpers/support/wrap_series_nav_js.rb +36 -0
- data/lib/pagy/toolbox/helpers/urls_hash.rb +13 -0
- data/lib/pagy/toolbox/paginators/calendar.rb +30 -0
- data/lib/pagy/toolbox/paginators/countless.rb +25 -0
- data/lib/pagy/toolbox/paginators/elasticsearch_rails.rb +32 -0
- data/lib/pagy/toolbox/paginators/keynav_js.rb +29 -0
- data/lib/pagy/toolbox/paginators/keyset.rb +18 -0
- data/lib/pagy/toolbox/paginators/meilisearch.rb +32 -0
- data/lib/pagy/toolbox/paginators/method.rb +26 -0
- data/lib/pagy/toolbox/paginators/offset.rb +33 -0
- data/lib/pagy/toolbox/paginators/searchkick.rb +32 -0
- data/lib/pagy.rb +59 -97
- data/locales/ar.yml +9 -6
- data/locales/be.yml +9 -6
- data/locales/bg.yml +9 -6
- data/locales/bs.yml +9 -6
- data/locales/ca.yml +9 -6
- data/locales/ckb.yml +8 -6
- data/locales/cs.yml +9 -6
- data/locales/da.yml +9 -6
- data/locales/de.yml +9 -6
- data/locales/dz.yml +9 -6
- data/locales/en.yml +9 -6
- data/locales/es.yml +9 -6
- data/locales/fr.yml +9 -6
- data/locales/hr.yml +9 -6
- data/locales/id.yml +9 -6
- data/locales/it.yml +9 -6
- data/locales/ja.yml +9 -6
- data/locales/km.yml +9 -6
- data/locales/ko.yml +9 -6
- data/locales/nb.yml +9 -6
- data/locales/nl.yml +9 -6
- data/locales/nn.yml +9 -6
- data/locales/pl.yml +9 -6
- data/locales/pt-BR.yml +10 -7
- data/locales/pt.yml +10 -7
- data/locales/ru.yml +9 -6
- data/locales/sk.yml +26 -0
- data/locales/sr.yml +9 -6
- data/locales/sv-SE.yml +9 -6
- data/locales/sv.yml +9 -6
- data/locales/sw.yml +12 -9
- data/locales/ta.yml +12 -13
- data/locales/tr.yml +9 -6
- data/locales/uk.yml +9 -6
- data/locales/vi.yml +9 -6
- data/locales/zh-CN.yml +9 -6
- data/locales/zh-HK.yml +9 -6
- data/locales/zh-TW.yml +9 -6
- data/stylesheets/pagy-tailwind.css +64 -0
- data/stylesheets/pagy.css +63 -27
- metadata +113 -51
- data/javascripts/pagy.min.js.map +0 -10
- data/lib/pagy/backend.rb +0 -44
- data/lib/pagy/calendar/unit.rb +0 -103
- data/lib/pagy/calendar.rb +0 -84
- data/lib/pagy/console.rb +0 -23
- data/lib/pagy/countless.rb +0 -38
- data/lib/pagy/exceptions.rb +0 -25
- data/lib/pagy/extras/arel.rb +0 -28
- data/lib/pagy/extras/array.rb +0 -19
- data/lib/pagy/extras/bootstrap.rb +0 -97
- data/lib/pagy/extras/bulma.rb +0 -93
- data/lib/pagy/extras/calendar.rb +0 -79
- data/lib/pagy/extras/countless.rb +0 -32
- data/lib/pagy/extras/elasticsearch_rails.rb +0 -71
- data/lib/pagy/extras/gearbox.rb +0 -55
- data/lib/pagy/extras/headers.rb +0 -54
- data/lib/pagy/extras/i18n.rb +0 -26
- data/lib/pagy/extras/js_tools.rb +0 -70
- data/lib/pagy/extras/jsonapi.rb +0 -88
- data/lib/pagy/extras/keyset.rb +0 -30
- data/lib/pagy/extras/limit.rb +0 -63
- data/lib/pagy/extras/meilisearch.rb +0 -57
- data/lib/pagy/extras/metadata.rb +0 -42
- data/lib/pagy/extras/overflow.rb +0 -81
- data/lib/pagy/extras/pagy.rb +0 -82
- data/lib/pagy/extras/searchkick.rb +0 -59
- data/lib/pagy/extras/size.rb +0 -40
- data/lib/pagy/extras/standalone.rb +0 -60
- data/lib/pagy/extras/trim.rb +0 -29
- data/lib/pagy/frontend.rb +0 -99
- data/lib/pagy/i18n.rb +0 -166
- data/lib/pagy/keyset/active_record.rb +0 -44
- data/lib/pagy/keyset/sequel.rb +0 -57
- data/lib/pagy/keyset.rb +0 -118
- data/lib/pagy/shared_methods.rb +0 -26
- data/lib/pagy/url_helpers.rb +0 -26
- data/stylesheets/pagy.scss +0 -48
- data/stylesheets/pagy.tailwind.css +0 -21
data/apps/rails.ru
CHANGED
@@ -4,25 +4,27 @@
|
|
4
4
|
# Reproduce rails related issues
|
5
5
|
#
|
6
6
|
# DOC
|
7
|
-
# https://ddnexus.github.io/pagy/playground/#
|
7
|
+
# https://ddnexus.github.io/pagy/playground/#rails-app
|
8
8
|
#
|
9
9
|
# BIN HELP
|
10
|
-
#
|
10
|
+
# pagy -h
|
11
11
|
#
|
12
12
|
# DEV USAGE
|
13
|
-
#
|
14
|
-
#
|
13
|
+
# pagy clone rails
|
14
|
+
# pagy ./rails.ru
|
15
15
|
#
|
16
16
|
# URL
|
17
|
-
# http://
|
17
|
+
# http://127.0.0.1:8000
|
18
18
|
|
19
|
-
VERSION = '
|
19
|
+
VERSION = '43.0.0.rc2'
|
20
20
|
|
21
|
-
|
21
|
+
if VERSION != Pagy::VERSION
|
22
|
+
Warning.warn("\n>>> WARNING! '#{File.basename(__FILE__)}-#{VERSION}' running with 'pagy-#{Pagy::VERSION}'! <<< \n\n")
|
23
|
+
end
|
24
|
+
|
25
|
+
# Bundle
|
22
26
|
require 'bundler/inline'
|
23
|
-
|
24
|
-
Bundler.configure
|
25
|
-
gemfile(ENV['PAGY_INSTALL_BUNDLE'] == 'true') do
|
27
|
+
gemfile(!Pagy::ROOT.join('pagy.gemspec').exist?) do
|
26
28
|
source 'https://rubygems.org'
|
27
29
|
gem 'oj'
|
28
30
|
gem 'puma'
|
@@ -52,21 +54,12 @@ class PagyRails < Rails::Application # :nodoc:
|
|
52
54
|
end
|
53
55
|
|
54
56
|
# AR config
|
55
|
-
dir = Rails.env.development? ? '.' : Dir.pwd
|
57
|
+
dir = Rails.env.development? ? '.' : Dir.pwd # app dir in dev or pwd otherwise
|
56
58
|
unless File.writable?(dir)
|
57
59
|
warn "ERROR: directory #{dir.inspect} is not writable (the pagy-rails-app needs to create DB files)"
|
58
60
|
exit 1
|
59
61
|
end
|
60
62
|
|
61
|
-
# Pagy initializer
|
62
|
-
require 'pagy/extras/pagy'
|
63
|
-
require 'pagy/extras/limit'
|
64
|
-
require 'pagy/extras/overflow'
|
65
|
-
require 'pagy/extras/headers'
|
66
|
-
Pagy::DEFAULT[:limit] = 10
|
67
|
-
Pagy::DEFAULT[:overflow] = :empty_page
|
68
|
-
Pagy::DEFAULT.freeze
|
69
|
-
|
70
63
|
# Activerecord initializer
|
71
64
|
ActiveRecord::Base.logger = Logger.new(OUTPUT)
|
72
65
|
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: "#{dir}/tmp/pagy-rails.sqlite3")
|
@@ -84,11 +77,15 @@ end
|
|
84
77
|
# Models
|
85
78
|
class Post < ActiveRecord::Base # :nodoc:
|
86
79
|
has_many :comments
|
87
|
-
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# :nodoc:
|
88
83
|
|
89
84
|
class Comment < ActiveRecord::Base # :nodoc:
|
90
85
|
belongs_to :post
|
91
|
-
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# :nodoc:
|
92
89
|
|
93
90
|
# Unused model, useful to test overriding conflicts
|
94
91
|
module Calendar
|
@@ -102,31 +99,27 @@ Post.all.each_with_index do |post, pi|
|
|
102
99
|
2.times { |ci| Comment.create(post:, body: "Comment #{ci + 1} to Post #{pi + 1}") }
|
103
100
|
end
|
104
101
|
|
105
|
-
# Helpers
|
106
|
-
module CommentsHelper
|
107
|
-
include Pagy::Frontend
|
108
|
-
end
|
109
|
-
|
110
102
|
# Controllers
|
111
103
|
class CommentsController < ActionController::Base # :nodoc:
|
112
104
|
include Rails.application.routes.url_helpers
|
113
|
-
include Pagy::
|
105
|
+
include Pagy::Method
|
114
106
|
|
115
107
|
def index
|
116
|
-
@pagy, @comments = pagy(Comment.all)
|
117
|
-
|
108
|
+
@pagy, @comments = pagy(:offset, Comment.all, limit: 10, client_max_limit: 100)
|
109
|
+
# Reload the page in the network tab of the Chrome Inspector to check
|
110
|
+
# response.headers.merge!(@pagy.headers_hash)
|
118
111
|
render inline: TEMPLATE
|
119
112
|
end
|
120
113
|
end
|
121
114
|
|
122
|
-
# You don't need this in real rails apps (see https://ddnexus.github.io/pagy/
|
115
|
+
# You don't need this in real rails apps (see https://ddnexus.github.io/pagy/resources/javascripts)
|
123
116
|
class PagyController < ActionController::Base
|
124
117
|
def javascripts
|
125
118
|
format = params[:file].split('.').last
|
126
119
|
if format == 'js'
|
127
|
-
render js: Pagy.
|
120
|
+
render js: Pagy::ROOT.join('javascripts', params[:file]).read
|
128
121
|
elsif format == 'map'
|
129
|
-
render json: Pagy.
|
122
|
+
render json: Pagy::ROOT.join('javascripts', params[:file]).read
|
130
123
|
end
|
131
124
|
end
|
132
125
|
end
|
@@ -139,7 +132,7 @@ TEMPLATE = <<~ERB
|
|
139
132
|
<html>
|
140
133
|
<head>
|
141
134
|
<title>Pagy Rails App</title>
|
142
|
-
<script src="/javascripts/pagy.
|
135
|
+
<script src="/javascripts/pagy.js"></script>
|
143
136
|
<script>
|
144
137
|
window.addEventListener("load", Pagy.init);
|
145
138
|
</script>
|
@@ -156,9 +149,15 @@ TEMPLATE = <<~ERB
|
|
156
149
|
margin: 0 !important;
|
157
150
|
font-family: sans-serif !important;
|
158
151
|
}
|
159
|
-
.content {
|
152
|
+
.main-content {
|
160
153
|
padding: 1rem 1.5rem 2rem !important;
|
161
154
|
}
|
155
|
+
.pagy, .pagy-bootstrap, .pagy-bulma {
|
156
|
+
padding: .5em;
|
157
|
+
margin: .3em 0;
|
158
|
+
width: fit-content;
|
159
|
+
box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.2);
|
160
|
+
}
|
162
161
|
|
163
162
|
/* Quick demo for overriding the element style attribute of certain pagy helpers
|
164
163
|
.pagy input[style] {
|
@@ -170,16 +169,16 @@ TEMPLATE = <<~ERB
|
|
170
169
|
If you want to customize the style,
|
171
170
|
please replace the line below with the actual file content
|
172
171
|
*/
|
173
|
-
<%== Pagy.
|
172
|
+
<%== Pagy::ROOT.join('stylesheets/pagy.css').read %>
|
174
173
|
</style>
|
175
174
|
</head>
|
176
175
|
|
177
176
|
<body>
|
178
177
|
|
179
|
-
<div class="content">
|
178
|
+
<div class="main-content">
|
180
179
|
<h1>Pagy Rails App</h1>
|
181
180
|
<p> Self-contained, standalone Rails app usable to easily reproduce any rails related pagy issue.</p>
|
182
|
-
|
181
|
+
|
183
182
|
<h2>Versions</h2>
|
184
183
|
<ul>
|
185
184
|
<li>Ruby: <%== RUBY_VERSION %></li>
|
@@ -194,22 +193,26 @@ TEMPLATE = <<~ERB
|
|
194
193
|
<p style="margin: 0;"><%= comment.body %></p>
|
195
194
|
<% end %>
|
196
195
|
</div>
|
196
|
+
|
197
197
|
<hr>
|
198
198
|
|
199
|
-
<h4
|
200
|
-
<%==
|
199
|
+
<h4>@pagy.series_nav</h4>
|
200
|
+
<%== @pagy.series_nav(id: 'series-nav',
|
201
|
+
aria_label: 'Pages nav') %>
|
201
202
|
|
202
|
-
<h4
|
203
|
-
<%==
|
203
|
+
<h4>@pagy.series_nav_js</h4>
|
204
|
+
<%== @pagy.series_nav_js(id: 'series-nav-js',
|
205
|
+
aria_label: 'Pages nav_js') %>
|
204
206
|
|
205
|
-
<h4
|
206
|
-
<%==
|
207
|
+
<h4>@pagy.input_nav_js</h4>
|
208
|
+
<%== @pagy.input_nav_js(id: 'input-nav-js',
|
209
|
+
aria_label: 'Pages input_nav_js') %>
|
207
210
|
|
208
|
-
<h4
|
209
|
-
<%==
|
211
|
+
<h4>@pagy.limit_tag_js</h4>
|
212
|
+
<%== @pagy.limit_tag_js(id: 'limit-tag-js') %>
|
210
213
|
|
211
|
-
<h4
|
212
|
-
<%==
|
214
|
+
<h4>@pagy.info_tag</h4>
|
215
|
+
<%== @pagy.info_tag(id: 'pagy-info') %>
|
213
216
|
</div>
|
214
217
|
|
215
218
|
</body>
|
data/apps/repro.ru
CHANGED
@@ -4,44 +4,43 @@
|
|
4
4
|
# Reproduce generic/simple issues
|
5
5
|
#
|
6
6
|
# DOC
|
7
|
-
# https://ddnexus.github.io/pagy/playground/#
|
7
|
+
# https://ddnexus.github.io/pagy/playground/#repro-app
|
8
8
|
#
|
9
9
|
# BIN HELP
|
10
|
-
#
|
10
|
+
# pagy -h
|
11
11
|
#
|
12
12
|
# DEV USAGE
|
13
|
-
#
|
14
|
-
#
|
13
|
+
# pagy clone repro
|
14
|
+
# pagy ./repro.ru
|
15
15
|
#
|
16
16
|
# URL
|
17
|
-
# http://
|
17
|
+
# http://127.0.0.1:8000
|
18
18
|
|
19
|
-
VERSION = '
|
19
|
+
VERSION = '43.0.0.rc2'
|
20
|
+
|
21
|
+
if VERSION != Pagy::VERSION
|
22
|
+
Warning.warn("\n>>> WARNING! '#{File.basename(__FILE__)}-#{VERSION}' running with 'pagy-#{Pagy::VERSION}'! <<< \n\n")
|
23
|
+
end
|
24
|
+
run_from_repo = Pagy::ROOT.join('pagy.gemspec').exist?
|
20
25
|
|
21
26
|
# Bundle
|
22
27
|
require 'bundler/inline'
|
23
|
-
|
24
|
-
Bundler.configure
|
25
|
-
gemfile(ENV['PAGY_INSTALL_BUNDLE'] == 'true') do
|
28
|
+
gemfile(!run_from_repo) do
|
26
29
|
source 'https://rubygems.org'
|
27
30
|
gem 'oj'
|
28
31
|
gem 'puma'
|
29
32
|
gem 'sinatra'
|
30
33
|
end
|
31
34
|
|
32
|
-
# Edit this section adding
|
33
|
-
#
|
34
|
-
|
35
|
-
require 'pagy/extras/limit'
|
36
|
-
require 'pagy/extras/overflow'
|
37
|
-
Pagy::DEFAULT[:overflow] = :empty_page
|
38
|
-
Pagy::DEFAULT.freeze
|
35
|
+
# Edit this section adding the legacy as needed
|
36
|
+
# Pagy initializer
|
37
|
+
Pagy.options[:client_max_limit] = 100
|
39
38
|
|
40
39
|
# Sinatra setup
|
41
40
|
require 'sinatra/base'
|
42
41
|
# Sinatra application
|
43
42
|
class PagyRepro < Sinatra::Base
|
44
|
-
include Pagy::
|
43
|
+
include Pagy::Method
|
45
44
|
|
46
45
|
get('/javascripts/:file') do
|
47
46
|
format = params[:file].split('.').last
|
@@ -50,21 +49,20 @@ class PagyRepro < Sinatra::Base
|
|
50
49
|
elsif format == 'map'
|
51
50
|
content_type 'application/json'
|
52
51
|
end
|
53
|
-
send_file Pagy.
|
52
|
+
send_file Pagy::ROOT.join('javascripts', params[:file])
|
54
53
|
end
|
55
54
|
|
56
55
|
# Edit this action as needed
|
57
56
|
get '/' do
|
58
57
|
collection = MockCollection.new
|
59
58
|
@pagy, @records = pagy(collection)
|
59
|
+
# @pagy, @records = pagy(:offset, collection, limit: 7, client_max_limit: 30)
|
60
|
+
# @pagy, @records = pagy(:countless, collection)
|
61
|
+
# @pagy, @records = pagy(Array(1..1000))
|
62
|
+
# response.headers.merge!(@pagy.headers_hash)
|
60
63
|
erb :main
|
61
64
|
end
|
62
65
|
|
63
|
-
# Edit this section adding your own helpers as needed
|
64
|
-
helpers do
|
65
|
-
include Pagy::Frontend
|
66
|
-
end
|
67
|
-
|
68
66
|
# Views
|
69
67
|
template :layout do
|
70
68
|
<<~ERB
|
@@ -73,7 +71,7 @@ class PagyRepro < Sinatra::Base
|
|
73
71
|
<html>
|
74
72
|
<head>
|
75
73
|
<title>Pagy Repro App</title>
|
76
|
-
<script src="javascripts/pagy.
|
74
|
+
<script src="javascripts/pagy.js"></script>
|
77
75
|
<script>
|
78
76
|
window.addEventListener("load", Pagy.init);
|
79
77
|
</script>
|
@@ -90,10 +88,15 @@ class PagyRepro < Sinatra::Base
|
|
90
88
|
margin: 0 !important;
|
91
89
|
font-family: sans-serif !important;
|
92
90
|
}
|
93
|
-
.content {
|
91
|
+
.main-content {
|
94
92
|
padding: 1rem 1.5rem 2rem !important;
|
95
93
|
}
|
96
|
-
|
94
|
+
.pagy, .pagy-bootstrap, .pagy-bulma {
|
95
|
+
padding: .5em;
|
96
|
+
margin: .3em 0;
|
97
|
+
width: fit-content;
|
98
|
+
box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.2);
|
99
|
+
}
|
97
100
|
/* Quick demo for overriding the element style attribute of certain pagy helpers
|
98
101
|
.pagy input[style] {
|
99
102
|
width: 5rem !important;
|
@@ -104,7 +107,7 @@ class PagyRepro < Sinatra::Base
|
|
104
107
|
If you want to customize the style,
|
105
108
|
please replace the line below with the actual file content
|
106
109
|
*/
|
107
|
-
<%= Pagy.
|
110
|
+
<%= Pagy::ROOT.join('stylesheets/pagy.css').read %>
|
108
111
|
</style>
|
109
112
|
</head>
|
110
113
|
<body>
|
@@ -116,10 +119,10 @@ class PagyRepro < Sinatra::Base
|
|
116
119
|
|
117
120
|
template :main do
|
118
121
|
<<~ERB
|
119
|
-
<div class="content">
|
122
|
+
<div class="main-content">
|
120
123
|
<h1>Pagy Repro App</h1>
|
121
124
|
<p> Self-contained, standalone app usable to easily reproduce any pagy issue.</p>
|
122
|
-
|
125
|
+
|
123
126
|
<h2>Versions</h4>
|
124
127
|
<ul>
|
125
128
|
<li>Ruby: <%= RUBY_VERSION %></li>
|
@@ -133,24 +136,24 @@ class PagyRepro < Sinatra::Base
|
|
133
136
|
|
134
137
|
<hr>
|
135
138
|
|
136
|
-
<h4
|
137
|
-
<%=
|
138
|
-
|
139
|
-
<h4>pagy_nav_js</h4>
|
140
|
-
<%= pagy_nav_js(@pagy, id: 'nav-js', aria_label: 'Pages nav_js') %>
|
139
|
+
<h4>@pagy.series_nav</h4>
|
140
|
+
<%= @pagy.series_nav(id: 'series-nav',
|
141
|
+
aria_label: 'Pages nav') %>
|
141
142
|
|
142
|
-
<h4
|
143
|
-
<%=
|
144
|
-
|
143
|
+
<h4>@pagy.series_nav_js (responsive)</h4>
|
144
|
+
<%= @pagy.series_nav_js(id: 'series-nav-js-responsive',
|
145
|
+
aria_label: 'Pages nav_js_responsove',
|
146
|
+
steps: { 0 => 5, 500 => 7, 600 => 9, 700 => 11 }) %>
|
145
147
|
|
146
|
-
<h4
|
147
|
-
<%=
|
148
|
+
<h4>@pagy.input_nav_js</h4>
|
149
|
+
<%= @pagy.input_nav_js(id: 'input-nav-js',
|
150
|
+
aria_label: 'Pages input_nav_js') %>
|
148
151
|
|
149
|
-
<h4
|
150
|
-
<%=
|
152
|
+
<h4>@pagy.limit_tag_js</h4>
|
153
|
+
<%= @pagy.limit_tag_js(id: 'limit-tag-js') %>
|
151
154
|
|
152
|
-
<h4
|
153
|
-
<%=
|
155
|
+
<h4>@pagy.info_tag</h4>
|
156
|
+
<%= @pagy.info_tag(id: 'pagy-info') %>
|
154
157
|
</div>
|
155
158
|
ERB
|
156
159
|
end
|
data/bin/pagy
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
VERSION = '
|
4
|
+
VERSION = '43.0.0.rc2'
|
5
5
|
LINUX = RbConfig::CONFIG['host_os'].include?('linux')
|
6
|
-
HOST = '
|
6
|
+
HOST = 'localhost'
|
7
7
|
PORT = '8000'
|
8
8
|
|
9
9
|
require_relative '../lib/optimist'
|
10
|
+
require_relative '../lib/pagy'
|
10
11
|
require_relative '../apps/index'
|
12
|
+
|
11
13
|
apps = PagyApps::INDEX
|
12
14
|
opts = Optimist.options do
|
13
15
|
text <<~HEAD
|
@@ -15,26 +17,24 @@ opts = Optimist.options do
|
|
15
17
|
Playground to showcase, clone and develop pagy APPs
|
16
18
|
APPs
|
17
19
|
#{ apps.map do |name, path|
|
18
|
-
" #{name}#{' ' * (
|
19
|
-
end.join("\n")
|
20
|
-
}
|
20
|
+
" #{name}#{' ' * (18 - name.length)}#{File.readlines(path)[3].sub('# ', '').strip}"
|
21
|
+
end.join("\n") }
|
21
22
|
USAGE
|
22
|
-
pagy APP [
|
23
|
-
pagy clone APP
|
24
|
-
pagy
|
23
|
+
pagy APP [opts] Showcase APP from the installed gem
|
24
|
+
pagy clone APP Clone APP to the current dir
|
25
|
+
pagy FILE [opts] Develop app FILE from local path
|
25
26
|
EXAMPLES
|
26
|
-
pagy demo
|
27
|
-
pagy clone repro
|
28
|
-
pagy ~/
|
27
|
+
pagy demo Showcase demo at http://#{HOST}:#{PORT}
|
28
|
+
pagy clone repro Clone repro to ./repro.ru (rename it)
|
29
|
+
pagy ~/myapp.ru Develop ~/myapp.ru at #{HOST}:#{PORT}
|
29
30
|
HEAD
|
30
31
|
text 'Rackup options'
|
31
|
-
opt :env, 'Environment',
|
32
|
-
opt :host, 'Host',
|
33
|
-
opt :port, 'Port',
|
34
|
-
opt :install, 'Install bundle for users', default: true
|
32
|
+
opt :env, 'Environment', default: 'development'
|
33
|
+
opt :host, 'Host', default: HOST, short: :o
|
34
|
+
opt :port, 'Port', default: PORT
|
35
35
|
if LINUX
|
36
36
|
text 'Rerun options'
|
37
|
-
opt :rerun, 'Enable rerun for development'
|
37
|
+
opt :rerun, 'Enable rerun for development'
|
38
38
|
opt :clear, 'Clear screen before each rerun'
|
39
39
|
end
|
40
40
|
text 'Other options'
|
@@ -43,14 +43,13 @@ opts = Optimist.options do
|
|
43
43
|
end
|
44
44
|
Optimist.educate if ARGV.empty?
|
45
45
|
|
46
|
-
run_from_repo =
|
46
|
+
run_from_repo = Pagy::ROOT.join('pagy.gemspec').exist?
|
47
47
|
|
48
48
|
# Bundle
|
49
49
|
require 'bundler/inline'
|
50
|
-
|
51
|
-
Bundler.configure
|
52
|
-
gemfile(opts[:install]) do
|
50
|
+
gemfile(!run_from_repo) do
|
53
51
|
source 'https://rubygems.org'
|
52
|
+
gem 'logger'
|
54
53
|
gem 'rackup'
|
55
54
|
gem 'rerun' if LINUX
|
56
55
|
end
|
@@ -94,5 +93,5 @@ else
|
|
94
93
|
rerun << ' -c' if opts[:clear]
|
95
94
|
rerun << " -- #{rackup}"
|
96
95
|
end
|
97
|
-
exec(
|
96
|
+
exec(rerun || rackup)
|
98
97
|
end
|