jsonapi_actions 0.1.1 → 0.2.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: 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