rest_framework 0.5.0 → 0.5.1

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: 9791b0cbb0a806afa00955abf151c7d04bd1820bdbe189f237badc9782f87d6b
4
- data.tar.gz: 69e29341f8804fac7894c0065b0f5535d88b0e8d60577bc77677fe13d633f2d5
3
+ metadata.gz: 4670a5de96eba75413576ebb961297e0e45d3a95bb7e979ebb9b1a13cdaed46b
4
+ data.tar.gz: 807edfa466079b3a4031feb738b43eeb10cffacb8821fa54d4b02145dc86ab4d
5
5
  SHA512:
6
- metadata.gz: f04bf8059e765db9e13a9729db43c2b26a914035063fe728e9ad0bcb1ab968bb8939a4d278e239a39f64b671d183bfdd7a2487248495cd7e5bd26b93ac49a103
7
- data.tar.gz: '0908d43c8b2188e4dde5920a84eb621c0dea2dc170891e314d77d95b823a32af6681ae9a6028277f32282b88be03f8e95da55ec310f75e3c89ec8c3a09934f09'
6
+ metadata.gz: b75d14784e343ea98af7048c4ac7deb975b2090ace55bfbebba46f7cb7b59149d99349296faff7d7c746a8e1db757343ea8cc70c5297425b3f7463c088c8c3ae
7
+ data.tar.gz: 8a80fa46d1f1f68781fd0b13ea5586d7053e7cb62f8829c496e031f66f6492a05053b0812e68c9bf27f2a1852dd77b4b0e4526298ca0d62d11be2cae851f1172
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
@@ -85,7 +85,7 @@ class RESTFramework::NativeSerializer < RESTFramework::BaseSerializer
85
85
 
86
86
  # Helper to filter (mutate) a single subconfig for specific keys.
87
87
  def self.filter_subconfig(subconfig, except, additive: false)
88
- return subconfig unless subconfig
88
+ return subconfig if !subconfig && !additive
89
89
 
90
90
  if subconfig.is_a?(Array)
91
91
  subconfig = subconfig.map(&:to_sym)
@@ -96,8 +96,19 @@ class RESTFramework::NativeSerializer < RESTFramework::BaseSerializer
96
96
  subconfig -= except
97
97
  end
98
98
  elsif subconfig.is_a?(Hash)
99
- subconfig.symbolize_keys!
100
- subconfig.reject! { |k, _v| k.in?(except) }
99
+ # Additive doesn't make sense in a hash context since we wouldn't know the values.
100
+ unless additive
101
+ subconfig.symbolize_keys!
102
+ subconfig.reject! { |k, _v| k.in?(except) }
103
+ end
104
+ elsif !subconfig
105
+ else # Subconfig is a single element (assume string/symbol).
106
+ subconfig = subconfig.to_sym
107
+ if subconfig.in?(except)
108
+ subconfig = [] unless additive
109
+ elsif additive
110
+ subconfig = [subconfig, *except]
111
+ end
101
112
  end
102
113
 
103
114
  return subconfig
@@ -108,7 +119,7 @@ class RESTFramework::NativeSerializer < RESTFramework::BaseSerializer
108
119
  return config unless @controller
109
120
 
110
121
  except_query_param = @controller.class.try(:native_serializer_except_query_param)
111
- if except = @controller.request.query_parameters[except_query_param]
122
+ if except = @controller.request.query_parameters[except_query_param].presence
112
123
  except = except.split(",").map(&:strip).map(&:to_sym)
113
124
 
114
125
  unless except.empty?
@@ -116,10 +127,10 @@ class RESTFramework::NativeSerializer < RESTFramework::BaseSerializer
116
127
  config = config.deep_dup
117
128
 
118
129
  # Filter `only`, `except` (additive), `include`, and `methods`.
119
- self.class.filter_subconfig(config[:only], except)
120
- self.class.filter_subconfig(config[:except], except, additive: true)
121
- self.class.filter_subconfig(config[:include], except)
122
- self.class.filter_subconfig(config[:methods], except)
130
+ config[:only] = self.class.filter_subconfig(config[:only], except)
131
+ config[:except] = self.class.filter_subconfig(config[:except], except, additive: true)
132
+ config[:include] = self.class.filter_subconfig(config[:include], except)
133
+ config[:methods] = self.class.filter_subconfig(config[:methods], except)
123
134
  end
124
135
  end
125
136
 
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.5.0
4
+ version: 0.5.1
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-03-05 00:00:00.000000000 Z
11
+ date: 2022-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails