pragma 2.2.0 → 2.3.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: 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
  - - ">="