praxis 2.0.pre.15 → 2.0.pre.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/praxis/extensions/attribute_filtering/filtering_params.rb +1 -2
- data/lib/praxis/mapper/resource.rb +2 -2
- data/lib/praxis/version.rb +1 -1
- data/spec/praxis/extensions/attribute_filtering/filtering_params_spec.rb +17 -2
- data/spec/praxis/mapper/resource_spec.rb +3 -3
- 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: 2fe1ba3515514e34ad80775b6b68b4fe046fd1806c40d2345c4fa945d34ed92a
|
4
|
+
data.tar.gz: 11934130d0c527d1bc52020f393f2a5167ba3f88c876e81deaf7eaa05c518eff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a32c98bd77159e59c5192390c2eb683b62930cb3f4b30cbe680b63db5b0c076199b0fb63e5a0a55abb772a92cadef19a8f05d7cedf7eb8218f585ce8b7a01acf
|
7
|
+
data.tar.gz: 2a086210825ac166730d63b9ea7e5baa2420cdeb1772e434028b95de356ce69778d983fededb1125825f5b036bc0a0c13fc9b61536d77a31cc63cd87f6a48c02
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
## next
|
4
4
|
|
5
|
+
## 2.0.pre.16
|
6
|
+
|
7
|
+
* Updated `Resource.property` signature to only accept known named arguments (`dependencies` and `though` at this time) to spare anyone else from going insane wondering why their `depednencies` aren't working.
|
8
|
+
* Fixed issue with Filtering Params, that occurred with using the ! or !! operators on String-typed fields.
|
9
|
+
|
5
10
|
## 2.0.pre.14
|
6
11
|
|
7
12
|
* More encoding/decoding robustness for filters.
|
@@ -222,8 +222,7 @@ module Praxis
|
|
222
222
|
value_type = attr_filters[:value_type]
|
223
223
|
next unless value_type == Attributor::String
|
224
224
|
|
225
|
-
|
226
|
-
unless value.empty?
|
225
|
+
if item[:value].presence
|
227
226
|
fuzzy_match = attr_filters[:fuzzy_match]
|
228
227
|
if item[:fuzzy] && !item[:fuzzy].empty? && !fuzzy_match
|
229
228
|
errors << "Fuzzy matching for #{attr_name} is not allowed (yet '*' was found in the value)"
|
@@ -46,8 +46,8 @@ module Praxis::Mapper
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
def self.property(name,
|
50
|
-
self.properties[name] =
|
49
|
+
def self.property(name, dependencies: nil, through: nil)
|
50
|
+
self.properties[name] = {dependencies: dependencies, through: through}
|
51
51
|
end
|
52
52
|
|
53
53
|
def self._finalize!
|
data/lib/praxis/version.rb
CHANGED
@@ -161,9 +161,9 @@ describe Praxis::Extensions::AttributeFiltering::FilteringParams do
|
|
161
161
|
# construct it propertly by applying the block. Seems easier than creating the type alone, and
|
162
162
|
# then manually apply the block
|
163
163
|
Attributor::Attribute.new(described_class.for(Post)) do
|
164
|
-
filter 'id', using: ['=', '!=']
|
164
|
+
filter 'id', using: ['=', '!=', '!']
|
165
165
|
filter 'title', using: ['=', '!='], fuzzy: true
|
166
|
-
filter 'content', using: ['=', '!=']
|
166
|
+
filter 'content', using: ['=', '!=', '!']
|
167
167
|
end.type
|
168
168
|
end
|
169
169
|
let(:loaded_params) { filtering_params_type.load(filters_string) }
|
@@ -194,6 +194,21 @@ describe Praxis::Extensions::AttributeFiltering::FilteringParams do
|
|
194
194
|
end
|
195
195
|
end
|
196
196
|
end
|
197
|
+
|
198
|
+
context 'non-valued operators' do
|
199
|
+
context 'for string typed fields' do
|
200
|
+
let(:filters_string) { 'content!'}
|
201
|
+
it 'validates properly' do
|
202
|
+
expect(subject).to be_empty
|
203
|
+
end
|
204
|
+
end
|
205
|
+
context 'for non-string typed fields' do
|
206
|
+
let(:filters_string) { 'id!'}
|
207
|
+
it 'validates properly' do
|
208
|
+
expect(subject).to be_empty
|
209
|
+
end
|
210
|
+
end
|
211
|
+
end
|
197
212
|
context 'fuzzy matches' do
|
198
213
|
context 'when allowed' do
|
199
214
|
context 'given a fuzzy string' do
|
@@ -14,15 +14,15 @@ describe Praxis::Mapper::Resource do
|
|
14
14
|
subject(:properties) { resource.properties }
|
15
15
|
|
16
16
|
it 'includes directly-set properties' do
|
17
|
-
expect(properties[:other_resource]).to eq(dependencies: [:other_model])
|
17
|
+
expect(properties[:other_resource]).to eq(dependencies: [:other_model], through: nil)
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'inherits from a superclass' do
|
21
|
-
expect(properties[:href]).to eq(dependencies: [:id])
|
21
|
+
expect(properties[:href]).to eq(dependencies: [:id], through: nil)
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'properly overrides a property from the parent' do
|
25
|
-
expect(properties[:name]).to eq(dependencies: [:simple_name])
|
25
|
+
expect(properties[:name]).to eq(dependencies: [:simple_name], through: nil)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: praxis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.pre.
|
4
|
+
version: 2.0.pre.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep M. Blanquer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-07-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|