pragma 2.2.0 → 2.3.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: 33831eebb49b3b8bbe97ad98221f1a2c17c0bca329c60f4d0eea66c260a5b82a
4
- data.tar.gz: e726495b25a7f62cdbdf6e15025963a358ff6e1732ddf45cc7b0a79d34d7f613
3
+ metadata.gz: 3011120ae28ea10f9c9c287c23c6b3644d139bff0850ef7cb94d0353b01807fb
4
+ data.tar.gz: d2bf641611df5b41a3f57264872e30e4e45d28c17b3fe7978693d412fa2c7e47
5
5
  SHA512:
6
- metadata.gz: f821889bd9e24a5aaea95039508655f3170a85317b6cb9ee34676fcec99c9e9482dd294667847351ae3768ceccd4f2ad0ce56b68e4ac525662d527e1aea170f6
7
- data.tar.gz: f4166fb8b737b3aa26fed21a5b3717a026339b465b4a29d628ef162890a94e1c70a26c597a97f5a5af1e481992dc37c6a4cd3727e0ce20ceb4987e229c84ba88
6
+ metadata.gz: e8c89a042285a28cf7abb1c79bf1f7d083b0b306badfb50d536944b246c6402f19459bcbe9962f35e9197c709f211fae0913a52578b2e29421f8e8e9a440990b
7
+ data.tar.gz: 6eaf14f5241b3dd29bc96c6a4de261f10f45899f8a5a79361e30b3e847eb50c27cd8fbfc7abd973f62e7208f0ee31401f8af13d667dce0135f352df43ff6c05b
@@ -5,7 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [Unreleased]
8
+ ## [2.3.0]
9
+
10
+ ### Added
11
+
12
+ - Add support for Kaminari in `Pagination` macro
13
+
14
+ ### Changed
15
+
16
+ - Dropped runtime dependency on will_paginate
17
+
18
+ ### Fixed
19
+
20
+ - Fixed constant loading in Ruby 2.5
9
21
 
10
22
  ## [2.2.0]
11
23
 
@@ -50,7 +62,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
50
62
 
51
63
  First Pragma 2 release.
52
64
 
53
- [Unreleased]: https://github.com/pragmarb/pragma/compare/v2.2.0...HEAD
65
+ [Unreleased]: https://github.com/pragmarb/pragma/compare/v2.3.0...HEAD
66
+ [2.3.0]: https://github.com/pragmarb/pragma/compare/v2.2.0...v2.3.0
54
67
  [2.2.0]: https://github.com/pragmarb/pragma/compare/v2.1.1...v2.2.0
55
68
  [2.1.1]: https://github.com/pragmarb/pragma/compare/v2.1.0...v2.1.1
56
69
  [2.1.0]: https://github.com/pragmarb/pragma/compare/v2.0.0...v2.1.0
@@ -5,9 +5,6 @@ require 'pragma/policy'
5
5
  require 'pragma/contract'
6
6
  require 'pragma/decorator'
7
7
 
8
- require 'will_paginate'
9
- require 'will_paginate/array'
10
-
11
8
  require 'pragma/version'
12
9
 
13
10
  require 'pragma/decorator/error'
@@ -26,13 +26,13 @@ module Pragma
26
26
  rescue NameError => e
27
27
  # We check the error message to avoid silently ignoring other NameErrors
28
28
  # thrown while initializing the constant.
29
- if e.message.start_with?('uninitialized constant')
30
- # Required instead of a simple equality check because loading
31
- # API::V1::Post::Contract::Index might throw "uninitialized constant
32
- # API::V1::Post::Contract" if the resource has no contracts at all.
33
- error_constant = e.message.split.last
34
- raise e unless value.sub(/\A::/, '').start_with?(error_constant)
35
- end
29
+ raise e unless e.message.start_with?('uninitialized constant')
30
+
31
+ # Required instead of a simple equality check because loading
32
+ # API::V1::Post::Contract::Index might throw "uninitialized constant
33
+ # API::V1::Post::Contract" if the resource has no contracts at all.
34
+ error_constant = e.message.scan(/uninitialized constant ([^\s]+)/).first.first
35
+ raise e unless value.sub(/\A::/, '').start_with?(error_constant)
36
36
  end
37
37
 
38
38
  options[key] = (Object.const_get(value) if Object.const_defined?(value))
@@ -18,10 +18,18 @@ module Pragma
18
18
  return false
19
19
  end
20
20
 
21
- options['model'] = options['model'].paginate(
21
+ pagination_options = {
22
22
  page: page(options, **options),
23
23
  per_page: per_page(options, **options)
24
- )
24
+ }
25
+
26
+ options['model'] = if defined?(Kaminari)
27
+ options['model'].page(pagination_options[:page]).per(pagination_options[:per_page])
28
+ elsif defined?(WillPaginate)
29
+ options['model'].paginate(pagination_options)
30
+ else
31
+ fail 'Cannot find a supported pagination adapter (tried Kaminari, will_paginate)!'
32
+ end
25
33
  end
26
34
 
27
35
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pragma
4
- VERSION = '2.2.0'
4
+ VERSION = '2.3.0'
5
5
  end
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency 'pragma-operation', '~> 2.0'
27
27
  spec.add_dependency 'pragma-policy', '~> 2.0'
28
28
  spec.add_dependency 'trailblazer', '~> 2.0'
29
- spec.add_dependency 'will_paginate', '~> 3.1'
30
29
 
31
30
  spec.add_development_dependency 'bundler'
32
31
  spec.add_development_dependency 'coveralls'
@@ -34,4 +33,5 @@ Gem::Specification.new do |spec|
34
33
  spec.add_development_dependency 'rspec'
35
34
  spec.add_development_dependency 'rubocop'
36
35
  spec.add_development_dependency 'rubocop-rspec'
36
+ spec.add_development_dependency 'will_paginate'
37
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pragma
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Desantis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-14 00:00:00.000000000 Z
11
+ date: 2018-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pragma-contract
@@ -81,21 +81,21 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: will_paginate
84
+ name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '3.1'
90
- type: :runtime
89
+ version: '0'
90
+ type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '3.1'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: bundler
98
+ name: coveralls
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: coveralls
112
+ name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rake
126
+ name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rspec
140
+ name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: rubocop
154
+ name: rubocop-rspec
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -165,7 +165,7 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: rubocop-rspec
168
+ name: will_paginate
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="