hal_api-rails 0.3.7 → 0.4.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
- SHA1:
3
- metadata.gz: 55bafa6cf18127c04faa8b80bbfddd41bd2a1997
4
- data.tar.gz: dc1afcbab0da95248de064ca1eccd3fc05c451e8
2
+ SHA256:
3
+ metadata.gz: d68594ae3d9d3462393361b4e6786b9feffc6027f87ba0c2dab45b93b13d2a42
4
+ data.tar.gz: 822071d21ec62886a92db335aa33a04b18098640e6a06df5fc0fc5061056b9b4
5
5
  SHA512:
6
- metadata.gz: 5ca1e1d019bc0423f27a07e0f62a1aa4985c8004b169c56d006cc4467d224ad804e5c3547ed3d5f1d3a6b02d758c12b3a79ddfd2034475614437b6b2a376953b
7
- data.tar.gz: ab611560379b1bb403478c5e8213a7ed2159ea58fab45e8cb0d4265cbf2ca38d5c04a2a4128a855c49ea1e6462112c05dab1bb7961499aba5f80ce15c4b62571
6
+ metadata.gz: 57eec1594b15f83ded10dc34e521057ba29d894df67086cbabc1bdca786b77475ae95d23ed1ee8d68a79837a9a3ebda815cdfd80fe122baa8aaf3af78e9fd749
7
+ data.tar.gz: 6c80c27f1e4a9c6e8dc464901224cc1de2a7b95bb65f37045d67e55c44930c3c22dd22144342d9e928be63614e69a286dbb644e02891c70ea77c7fcfebf17a48
@@ -1,3 +1,3 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.4.9
3
+ - 2.2.2
@@ -21,15 +21,15 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_dependency "activemodel", ">= 3.0.0"
23
23
  spec.add_dependency "actionpack", ">= 3.0.0"
24
- spec.add_dependency "rack-test", "~> 0.6.2"
24
+ spec.add_dependency "rack-test"
25
25
  spec.add_dependency "activesupport", ">= 3.0.0"
26
26
  spec.add_dependency "responders", "~> 2.0"
27
- spec.add_dependency "roar-rails", "~> 1.0.1"
27
+ spec.add_dependency "roar-rails", "~> 1.0.2"
28
28
  spec.add_dependency "multi_json"
29
29
 
30
30
  spec.add_development_dependency "bundler"
31
31
  spec.add_development_dependency "rake", "~> 10.0"
32
- spec.add_development_dependency "rails", "~> 4.2"
32
+ spec.add_development_dependency "rails", "~> 4.2.1"
33
33
  spec.add_development_dependency "pry-byebug"
34
34
  spec.add_development_dependency "minitest"
35
35
  spec.add_development_dependency "kaminari"
@@ -3,4 +3,8 @@ module HalApi
3
3
  require 'hal_api/errors'
4
4
  require 'hal_api/controller'
5
5
  require 'hal_api/represented_model'
6
+
7
+ def self.rails_major_version
8
+ ::Rails.version.split('.')[0].to_i
9
+ end
6
10
  end
@@ -27,6 +27,21 @@ module HalApi::Controller
27
27
  private
28
28
 
29
29
  def set_accepts
30
- request.format = :json if request.format == Mime::HTML
30
+ mime_comparator = case HalApi::rails_major_version
31
+ when 5
32
+ Mime[:html]
33
+ else
34
+ Mime::HTML
35
+ end
36
+ request.format = :json if request.format == mime_comparator
37
+ end
38
+
39
+ def env
40
+ case HalApi.rails_major_version
41
+ when 5
42
+ request.env
43
+ else
44
+ super
45
+ end
31
46
  end
32
47
  end
@@ -7,7 +7,13 @@ module HalApi::Controller::Exceptions
7
7
  extend ActiveSupport::Concern
8
8
 
9
9
  def respond_with_error(exception)
10
- wrapper = ::ActionDispatch::ExceptionWrapper.new(env, exception)
10
+ wrapper = case HalApi.rails_major_version
11
+ when 5
12
+ ::ActionDispatch::ExceptionWrapper.new(ActiveSupport::BacktraceCleaner.new, exception)
13
+ else
14
+ ::ActionDispatch::ExceptionWrapper.new(env, exception)
15
+ end
16
+
11
17
  log_error(env, wrapper)
12
18
 
13
19
  error = exception
@@ -98,11 +98,7 @@ module HalApi::Controller::Resources
98
98
  end
99
99
 
100
100
  def paged(arel)
101
- if params[:per].to_i <= 0
102
- arel.page(params[:page]).per(Kaminari.config.default_per_page)
103
- else
104
- arel.page(params[:page]).per(params[:per])
105
- end
101
+ arel.page(params[:page]).per(params[:per])
106
102
  end
107
103
 
108
104
  def scoped(res)
@@ -1,5 +1,5 @@
1
1
  module HalApi
2
2
  module Rails
3
- VERSION = "0.3.7"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
@@ -11,11 +11,11 @@ module HalApi::Representer::CollectionPaging
11
11
  embeds :items, decorator: lambda{|*| item_decorator }, class: lambda{|*| item_class }, zoom: :always
12
12
 
13
13
  link :prev do
14
- href_url_helper(params.merge(page: represented.prev_page)) if represented.prev_page
14
+ href_url_helper(params.merge(page: represented.prev_page)) unless represented.first_page?
15
15
  end
16
16
 
17
17
  link :next do
18
- href_url_helper(params.merge(page: represented.next_page)) if represented.next_page
18
+ href_url_helper(params.merge(page: represented.next_page)) unless represented.last_page?
19
19
  end
20
20
 
21
21
  link :first do
@@ -46,7 +46,6 @@ module HalApi::Representer::CollectionPaging
46
46
  # if it is a lambda, execute in the context against the represented.parent (if there is one) or represented
47
47
  def href_url_helper(options={})
48
48
  if represented_url.nil?
49
- options = options.except(:format)
50
49
  result = url_for(options.merge(only_path: true)) rescue nil
51
50
  if represented.parent
52
51
  result ||= polymorphic_path([:api, represented.parent, represented.item_class], options) rescue nil
@@ -77,9 +77,7 @@ module HalApi::Representer::Embeds
77
77
  options[:getter] ||= ->(*) do
78
78
  cnt = send(name).count
79
79
  per = getter_per == :all ? cnt : getter_per
80
- if cnt == 0
81
- items = send(name).page(1).per(Kaminari.config.default_per_page)
82
- elsif cnt <= per
80
+ if cnt <= per
83
81
  items = Kaminari.paginate_array(send(name)).page(1).per(per)
84
82
  else
85
83
  items = send(name).page(1).per(per)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hal_api-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Rhoden
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-06-10 00:00:00.000000000 Z
12
+ date: 2019-06-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -43,16 +43,16 @@ dependencies:
43
43
  name: rack-test
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 0.6.2
48
+ version: '0'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 0.6.2
55
+ version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: activesupport
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -87,14 +87,14 @@ dependencies:
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: 1.0.1
90
+ version: 1.0.2
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: 1.0.1
97
+ version: 1.0.2
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: multi_json
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -143,14 +143,14 @@ dependencies:
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '4.2'
146
+ version: 4.2.1
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: '4.2'
153
+ version: 4.2.1
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: pry-byebug
156
156
  requirement: !ruby/object:Gem::Requirement
@@ -202,7 +202,6 @@ extensions: []
202
202
  extra_rdoc_files: []
203
203
  files:
204
204
  - ".gitignore"
205
- - ".ruby-version"
206
205
  - ".travis.yml"
207
206
  - CODE_OF_CONDUCT.md
208
207
  - Gemfile
@@ -253,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
252
  version: '0'
254
253
  requirements: []
255
254
  rubyforge_project:
256
- rubygems_version: 2.6.14.4
255
+ rubygems_version: 2.7.6.2
257
256
  signing_key:
258
257
  specification_version: 4
259
258
  summary: JSON HAL APIs on Rails in the style of PRX
@@ -1 +0,0 @@
1
- 2.4.9