yaqb 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c6f3df2bfa123895902a6cc6482f20097c9f9a85164c50c81a6ba8878eb9199
4
- data.tar.gz: 602dd55100b586b9716009085115f3d760ed0504fe157740ce1c04e75ea21835
3
+ metadata.gz: 52b5538714ede2b23c96104bb339eddac611bfdf8562c648bb29094840c409e7
4
+ data.tar.gz: 78c09abab32cf2a75b1533cde2937d28dbea1bd86c9918fcd5b362bccf3eb29b
5
5
  SHA512:
6
- metadata.gz: 4c2dc6e22a9891e8e48b0a7d488ae590a4bd17f93472f04dfec041c8e425fa9be3e61910a619e219744e3be1ef3dd578de8a73ecca43cb06f38dd9f26b722e3c
7
- data.tar.gz: 6fe88fe10f56aa19394e68df9ce4d17b335bc493349c965e7f3a918afe44beeb453e7d0c8eed5681f2e18999f7dc5a6520d4f107fc250729ecd4cff5e8ff323c
6
+ metadata.gz: b4a0aa3013b84a22f77b41e8b8d80a677cf96ded8e901635a8d683bc551d3c6b9a620a57e77e4c7df1b871b29046e4e2cb6b2dba2cb4ee82fc0fbf423f844d71
7
+ data.tar.gz: 7e1a4174fae0e07b22d5b601f57652fd8e2b0564af1422b7c488904b8c78c078a2ac44e3558f2177ed647a250fc31a4200c90a54e73cbe2b71e8080e21e29d83
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yaqb (0.4.0)
4
+ yaqb (0.5.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/lib/yaqb/hooks.rb CHANGED
@@ -2,13 +2,15 @@
2
2
 
3
3
  begin; require 'kaminari'; rescue LoadError; end
4
4
  begin; require 'will_paginate'; rescue LoadError; end
5
+ begin; require 'pagy'; rescue LoadError; end
5
6
 
6
- unless defined?(Kaminari) || defined?(WillPaginate::CollectionMethods)
7
+ unless defined?(Kaminari) || defined?(WillPaginate::CollectionMethods) || defined?(Pagy)
7
8
  Kernel.warn <<~HEREDOC
8
- Warning: Yaqb relies on Kaminari or WillPaginate. Please
9
+ Warning: Yaqb relies on Kaminari or WillPaginate or Pagy. Please
9
10
  install dependency by adding one of the following to your Gemfile:
10
11
  gem 'kaminari'
11
- gem 'will_paginate'\n
12
+ gem 'will_paginate'
13
+ gem 'pagy'\n
12
14
  HEREDOC
13
15
  end
14
16
 
@@ -19,6 +21,9 @@ begin
19
21
  elsif defined?(WillPaginate::CollectionMethods)
20
22
  require 'yaqb/query_builders/paginators/will_paginate_helper'
21
23
  Yaqb::QueryBuilders::Paginate.send(:include, Yaqb::QueryBuilders::Paginators::WillPaginateHelper)
24
+ elsif defined?(Pagy)
25
+ require 'yaqb/query_builders/paginators/pagy_helper'
26
+ Yaqb::QueryBuilders::Paginate.send(:include, Yaqb::QueryBuilders::Paginators::PagyHelper)
22
27
  else
23
28
  raise LoadError
24
29
  end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yaqb
4
+ module QueryBuilders
5
+ module Paginators
6
+ module PagyHelper
7
+ private
8
+
9
+ def paginate!(scope)
10
+ @pagy = Pagy.new(count: scope.count(:all), page: @page, items: @per)
11
+ scope.offset(@pagy.offset).limit(@pagy.items)
12
+ end
13
+
14
+ def show_first_link?
15
+ @pagy.pages > 1 && !!@pagy.prev
16
+ end
17
+
18
+ def show_previous_link?
19
+ !!@pagy.prev
20
+ end
21
+
22
+ def show_next_link?
23
+ !!@pagy.next
24
+ end
25
+
26
+ def show_last_link?
27
+ @pagy.pages > 1 && !!@pagy.next
28
+ end
29
+
30
+ def pages
31
+ @pages ||= {}.tap do |h|
32
+ h[:first] = 1 if show_first_link?
33
+ h[:prev] = @pagy.prev if show_previous_link?
34
+ h[:next] = @pagy.next if show_next_link?
35
+ h[:last] = @pagy.pages if show_last_link?
36
+ end
37
+ end
38
+
39
+ def default_per_page
40
+ Pagy::VARS[:items]
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
data/lib/yaqb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yaqb
4
- VERSION = '0.4.0'
4
+ VERSION = '0.5.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaqb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronald Chacon
@@ -93,6 +93,7 @@ files:
93
93
  - lib/yaqb/query_builders/filter.rb
94
94
  - lib/yaqb/query_builders/paginate.rb
95
95
  - lib/yaqb/query_builders/paginators/kaminari_helper.rb
96
+ - lib/yaqb/query_builders/paginators/pagy_helper.rb
96
97
  - lib/yaqb/query_builders/paginators/will_paginate_helper.rb
97
98
  - lib/yaqb/query_builders/query_orchestrator.rb
98
99
  - lib/yaqb/query_builders/sort.rb