jsonapi_actions 0.1.1 → 0.2.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: b421e4b480c17d1e61acf863cab6da6a8ac8080a069d1c321e8288206d63a52e
4
- data.tar.gz: 60bd7c29ef8576b15607e0f72d6aa1f1391d9c1caa83fff0bc77f402d99064c7
3
+ metadata.gz: adf742b138dbab22fae3dce7055502194e04bc8817c0af104d974fc767a6bdf5
4
+ data.tar.gz: 2d6e39470f0d0c22ffbbcb742b8f0eae2aecc4eb7b90c94e9ac5f5cf6819bd01
5
5
  SHA512:
6
- metadata.gz: 5a2a641de70c22d7ac26840a355356317ed586a2b5a49dac3725d63918023eb6fd8ddca327d39d37a89d863f83d72af8938d7825f1d789f8d21aa51235527526
7
- data.tar.gz: 26960b0ae92aff0f3560d426bf3dceac29eedee4b1cfea15743b9ee541412723b861fb8da8ae61f39a750574f3b662af5a41509fe1e9441d16eccbe21ea53df7
6
+ metadata.gz: d65af3d4872162bd162df4894b454fe4f204488976bcf65e2bbc6dd3085ba0f46079e899352cdb32f5457d7298077784324a93e8288a30a549732c1bff5cfb56
7
+ data.tar.gz: 237490111ce9cda4f310bd90b6e9bfe092a6093a8403d3daf6fdfe54aab951d231deac03e29c8291c537233cc01b052d71f128f9a21c6899534d3fc798d55829
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jsonapi_actions (0.1.1)
4
+ jsonapi_actions (0.1.2)
5
5
  kaminari (>= 1.0, < 2.0)
6
6
  rails (>= 4.0, < 7.0)
7
7
 
@@ -99,7 +99,7 @@ GEM
99
99
  nio4r (2.5.2)
100
100
  nokogiri (1.10.5)
101
101
  mini_portile2 (~> 2.4.0)
102
- rack (2.0.7)
102
+ rack (2.0.8)
103
103
  rack-test (1.1.0)
104
104
  rack (>= 1.0, < 3)
105
105
  rails (6.0.1)
@@ -1,3 +1,3 @@
1
1
  module JsonapiActions
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -120,11 +120,11 @@ module JsonapiActions
120
120
 
121
121
  def page
122
122
  @page ||= begin
123
- page = {}
124
- page[:number] = (params.dig(:page, :number) || 1).to_i
125
- page[:size] = [[(params.dig(:page, :size) || 20).to_i, 1000].min, 1].max
126
- page
127
- end
123
+ page = {}
124
+ page[:number] = (params.dig(:page, :number) || 1).to_i
125
+ page[:size] = [[(params.dig(:page, :size) || 20).to_i, 1000].min, 1].max
126
+ page
127
+ end
128
128
  end
129
129
 
130
130
  def set_record
@@ -194,10 +194,27 @@ module JsonapiActions
194
194
  end
195
195
 
196
196
  def serializer(data = nil)
197
- self.class.serializer ||
198
- data.try(:serializer_class) ||
199
- data.try(:first).try(:serializer_class) ||
197
+ if self.class.serializer
198
+ self.class.serializer
199
+ else
200
200
  "#{model.name}Serializer".constantize
201
+ end
202
+
203
+ rescue NoMethodError, NameError
204
+ serializer_lookup(data)
205
+ end
206
+
207
+ def serializer_lookup(data)
208
+ serializer_classes = [
209
+ data.try(:serializer_class),
210
+ "#{data.class.try(:name)}Serializer".try(:constantize),
211
+ data.try(:first).try(:serializer_class),
212
+ "#{data.try(:first).class.try(:name)}Serializer".try(:constantize)
213
+ ].compact
214
+
215
+ raise 'Unknown serializer' if serializer_classes.empty?
216
+
217
+ serializer_classes.first
201
218
  end
202
219
 
203
220
  def eager_load(records)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonapi_actions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Pheasey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-05 00:00:00.000000000 Z
11
+ date: 2020-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -138,8 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  requirements: []
141
- rubyforge_project:
142
- rubygems_version: 2.7.8
141
+ rubygems_version: 3.0.8
143
142
  signing_key:
144
143
  specification_version: 4
145
144
  summary: Rails JSONAPI Controller Actions