hal_api-rails 0.3.7 → 0.4.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
- 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