rest_framework 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/rest_framework/controller_mixins/base.rb +9 -0
- data/lib/rest_framework/serializers.rb +3 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58fa867a9eed508be6ef78687d445cb5f3c0dc8cf0c004d8a8eab7f003f622cb
|
4
|
+
data.tar.gz: da285af9bf75273dcd864362d57ada399cc876e0e28767e546a89d1a8f280d28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 480e49357afb571538b0f5ec730eff04a0dc326ca4d9e93e9bbba7a60571c3dc2b09ddd3cbfa4ca2dec734e4de5de6faec542e5d06d5e9674e2c492575d2b450
|
7
|
+
data.tar.gz: 138e532ede2fdd207a557edf0cc8fd89f24eceb782b251adf107c3e445ad2e0a32d69fa66475d1215321f6085a953cce98f586284e39d207d453727e66f8a714
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.4
|
@@ -51,6 +51,10 @@ module RESTFramework::BaseControllerMixin
|
|
51
51
|
serialize_to_xml: true,
|
52
52
|
singleton_controller: nil,
|
53
53
|
skip_actions: nil,
|
54
|
+
|
55
|
+
# Helper to disable serializer adapters by default, mainly introduced because Active Model
|
56
|
+
# Serializers will do things like serialize `[]` into `{"":[]}`.
|
57
|
+
disable_adapters_by_default: true,
|
54
58
|
}.each do |a, default|
|
55
59
|
next if base.respond_to?(a)
|
56
60
|
|
@@ -138,6 +142,11 @@ module RESTFramework::BaseControllerMixin
|
|
138
142
|
json_kwargs = kwargs.delete(:json_kwargs) || {}
|
139
143
|
xml_kwargs = kwargs.delete(:xml_kwargs) || {}
|
140
144
|
|
145
|
+
# Do not use any adapters by default, if configured.
|
146
|
+
if self.class.disable_adapters_by_default && !kwargs.key?(:adapter)
|
147
|
+
kwargs[:adapter] = nil
|
148
|
+
end
|
149
|
+
|
141
150
|
# Raise helpful error if payload is nil. Usually this happens when a record is not found (e.g.,
|
142
151
|
# when passing something like `User.find_by(id: some_id)` to `api_response`). The caller should
|
143
152
|
# actually be calling `find_by!` to raise ActiveRecord::RecordNotFound and allowing the REST
|
@@ -177,14 +177,13 @@ class RESTFramework::NativeSerializer < RESTFramework::BaseSerializer
|
|
177
177
|
only = only.split(",").map(&:strip).map(&:to_sym)
|
178
178
|
|
179
179
|
unless only.empty?
|
180
|
-
# For the `except` part of the serializer, we need to append any columns not in `only`.
|
181
|
-
model = @controller.get_model
|
182
|
-
except_cols = model&.column_names&.map(&:to_sym)&.reject { |c| c.in?(only) }
|
183
|
-
|
184
180
|
# Filter `only`, `except` (additive), `include`, and `methods`.
|
185
181
|
if cfg[:only]
|
186
182
|
cfg[:only] = self.class.filter_subcfg(cfg[:only], fields: only, only: true)
|
187
183
|
elsif cfg[:except]
|
184
|
+
# For the `except` part of the serializer, we need to append any columns not in `only`.
|
185
|
+
model = @controller.get_model
|
186
|
+
except_cols = model&.column_names&.map(&:to_sym)&.reject { |c| c.in?(only) }
|
188
187
|
cfg[:except] = self.class.filter_subcfg(cfg[:except], fields: except_cols, add: true)
|
189
188
|
else
|
190
189
|
cfg[:only] = only
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest_framework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregory N. Schmit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|