mutations 0.9.1 → 0.9.2
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 +4 -4
- data/.github/workflows/ci.yml +35 -0
- data/CHANGELOG.md +4 -0
- data/lib/mutations/string_filter.rb +4 -1
- data/lib/mutations/version.rb +1 -1
- data/mutations.gemspec +1 -1
- data/spec/additional_filter_spec.rb +3 -3
- data/spec/array_filter_spec.rb +16 -16
- data/spec/boolean_filter_spec.rb +6 -6
- data/spec/command_spec.rb +3 -3
- data/spec/date_filter_spec.rb +18 -18
- data/spec/duck_filter_spec.rb +6 -6
- data/spec/file_filter_spec.rb +8 -8
- data/spec/float_filter_spec.rb +11 -11
- data/spec/hash_filter_spec.rb +17 -17
- data/spec/integer_filter_spec.rb +10 -10
- data/spec/model_filter_spec.rb +7 -7
- data/spec/spec_helper.rb +0 -1
- data/spec/string_filter_spec.rb +27 -27
- data/spec/symbol_filter_spec.rb +6 -6
- data/spec/time_filter_spec.rb +16 -16
- metadata +11 -11
- data/.travis.yml +0 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e8910273a1df86a4c215e9b4878698f4c74f88b1756f7df8145b116ebeff92e2
|
|
4
|
+
data.tar.gz: 8f8e311fe7f030469ba62e473e5bc63f45af913640e670b19d7255f8ed5f20f8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fc69d3c607ee357701a72293b9233d652017d3e9b65c3d7b59dc3c4290fafda020189e769c8dc70fbf32645e3141225f5395d05f91c9dda63f4ce10d09e5e1a3
|
|
7
|
+
data.tar.gz: 2e3f1114e8aaee8a264a68aa4ef90cca33bf14d5629d8b71864c238749b77c02a61d2e1651990b27e3d808e1e3808b90c2c107380a52df0988da7ed8b5b90a9c
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
test:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
strategy:
|
|
10
|
+
fail-fast: false
|
|
11
|
+
|
|
12
|
+
matrix:
|
|
13
|
+
ruby-version:
|
|
14
|
+
- 2.1
|
|
15
|
+
- 2.2
|
|
16
|
+
- 2.3
|
|
17
|
+
- 2.4
|
|
18
|
+
- 2.5
|
|
19
|
+
- 2.6
|
|
20
|
+
- 2.7
|
|
21
|
+
- '3.0'
|
|
22
|
+
- 3.1
|
|
23
|
+
- 3.2
|
|
24
|
+
- 3.3
|
|
25
|
+
- 3.4
|
|
26
|
+
- 4.0
|
|
27
|
+
- jruby
|
|
28
|
+
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v3
|
|
31
|
+
- uses: ruby/setup-ruby@v1
|
|
32
|
+
with:
|
|
33
|
+
ruby-version: ${{ matrix.ruby-version }}
|
|
34
|
+
bundler-cache: true
|
|
35
|
+
- run: bundle exec rake test
|
data/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,9 @@ module Mutations
|
|
|
14
14
|
:allow_control_characters => false # false removes control characters from the string
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
CONTROL_CHARS = ((0..31).map(&:chr) - ["\r", "\n", "\t"]).join.freeze
|
|
18
|
+
REPLACE = (" " * CONTROL_CHARS.bytesize).freeze
|
|
19
|
+
|
|
17
20
|
def filter(data)
|
|
18
21
|
# Handle nil case
|
|
19
22
|
if data.nil?
|
|
@@ -28,7 +31,7 @@ module Mutations
|
|
|
28
31
|
return [data, :string] unless data.is_a?(String)
|
|
29
32
|
|
|
30
33
|
# At this point, data is a string. Now remove control characters from the string:
|
|
31
|
-
data = data.
|
|
34
|
+
data = data.tr_s(CONTROL_CHARS, REPLACE) unless options[:allow_control_characters]
|
|
32
35
|
|
|
33
36
|
# Transform it using strip:
|
|
34
37
|
data = data.strip if options[:strip]
|
data/lib/mutations/version.rb
CHANGED
data/mutations.gemspec
CHANGED
|
@@ -39,7 +39,7 @@ describe "Mutations::AdditionalFilter" do
|
|
|
39
39
|
it "should recognize additional filters" do
|
|
40
40
|
outcome = TestCommandUsingAdditionalFilters.run(:first_name => "John", :last_name => "Doe")
|
|
41
41
|
assert outcome.success?
|
|
42
|
-
|
|
42
|
+
assert_nil outcome.errors
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
class TestCommandUsingAdditionalFiltersInHashes < Mutations::Command
|
|
@@ -60,7 +60,7 @@ describe "Mutations::AdditionalFilter" do
|
|
|
60
60
|
)
|
|
61
61
|
|
|
62
62
|
assert outcome.success?
|
|
63
|
-
|
|
63
|
+
assert_nil outcome.errors
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
class TestCommandUsingAdditionalFiltersInArrays < Mutations::Command
|
|
@@ -81,7 +81,7 @@ describe "Mutations::AdditionalFilter" do
|
|
|
81
81
|
)
|
|
82
82
|
|
|
83
83
|
assert outcome.success?
|
|
84
|
-
|
|
84
|
+
assert_nil outcome.errors
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
module Mutations
|
data/spec/array_filter_spec.rb
CHANGED
|
@@ -9,7 +9,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
9
9
|
f = Mutations::ArrayFilter.new(:arr)
|
|
10
10
|
filtered, errors = f.filter([1])
|
|
11
11
|
assert_equal [1], filtered
|
|
12
|
-
|
|
12
|
+
assert_nil errors
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
it "considers non-arrays to be invalid" do
|
|
@@ -23,7 +23,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
23
23
|
it "considers nil to be invalid" do
|
|
24
24
|
f = Mutations::ArrayFilter.new(:arr, :nils => false)
|
|
25
25
|
filtered, errors = f.filter(nil)
|
|
26
|
-
|
|
26
|
+
assert_nil filtered
|
|
27
27
|
assert_equal :nils, errors
|
|
28
28
|
end
|
|
29
29
|
|
|
@@ -31,20 +31,20 @@ describe "Mutations::ArrayFilter" do
|
|
|
31
31
|
f = Mutations::ArrayFilter.new(:arr, :nils => true)
|
|
32
32
|
_filtered, errors = f.filter(nil)
|
|
33
33
|
_filtered, errors = f.filter(nil)
|
|
34
|
-
|
|
34
|
+
assert_nil errors
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
it "lets you specify a class, and has valid elements" do
|
|
38
38
|
f = Mutations::ArrayFilter.new(:arr, :class => Integer)
|
|
39
39
|
filtered, errors = f.filter([1,2,3])
|
|
40
|
-
|
|
40
|
+
assert_nil errors
|
|
41
41
|
assert_equal [1,2,3], filtered
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it "lets you specify a class as a string, and has valid elements" do
|
|
45
45
|
f = Mutations::ArrayFilter.new(:arr, :class => 'Integer')
|
|
46
46
|
filtered, errors = f.filter([1,2,3])
|
|
47
|
-
|
|
47
|
+
assert_nil errors
|
|
48
48
|
assert_equal [1,2,3], filtered
|
|
49
49
|
end
|
|
50
50
|
|
|
@@ -125,7 +125,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
125
125
|
|
|
126
126
|
filtered, errors = f.filter([true, false, "1"])
|
|
127
127
|
assert_equal [true, false, true], filtered
|
|
128
|
-
|
|
128
|
+
assert_nil errors
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
it "lets you pass model in arrays" do
|
|
@@ -133,7 +133,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
133
133
|
|
|
134
134
|
filtered, errors = f.filter(["hey"])
|
|
135
135
|
assert_equal ["hey"], filtered
|
|
136
|
-
|
|
136
|
+
assert_nil errors
|
|
137
137
|
end
|
|
138
138
|
|
|
139
139
|
it "lets you pass hashes in arrays" do
|
|
@@ -153,8 +153,8 @@ describe "Mutations::ArrayFilter" do
|
|
|
153
153
|
filtered, errors = f.filter([{:foo => "f", :bar => 3, :baz => true}, {:foo => "f", :bar => 3}, {:foo => "f"}])
|
|
154
154
|
assert_equal [{:foo=>"f", :bar=>3, :baz=>true}, {:foo=>"f", :bar=>3}, {:foo=>"f"}], filtered
|
|
155
155
|
|
|
156
|
-
|
|
157
|
-
|
|
156
|
+
assert_nil errors[0]
|
|
157
|
+
assert_nil errors[1]
|
|
158
158
|
assert_equal({"bar"=>:required}, errors[2].symbolic)
|
|
159
159
|
end
|
|
160
160
|
|
|
@@ -167,7 +167,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
167
167
|
|
|
168
168
|
filtered, errors = f.filter([["h", "e"], ["l"], [], ["lo"]])
|
|
169
169
|
assert_equal filtered, [["h", "e"], ["l"], [], ["lo"]]
|
|
170
|
-
|
|
170
|
+
assert_nil errors
|
|
171
171
|
end
|
|
172
172
|
|
|
173
173
|
it "handles errors for arrays of arrays" do
|
|
@@ -189,14 +189,14 @@ describe "Mutations::ArrayFilter" do
|
|
|
189
189
|
end
|
|
190
190
|
filtered, errors = f.filter([1, "2", "three", "4", 5, [6]])
|
|
191
191
|
assert_equal [1,2,4,5], filtered
|
|
192
|
-
|
|
192
|
+
assert_nil errors
|
|
193
193
|
end
|
|
194
194
|
|
|
195
195
|
it "considers long arrays to be valid" do
|
|
196
196
|
f = Mutations::ArrayFilter.new(:arr, :min_length => 2)
|
|
197
197
|
filtered, errors = f.filter([1, 2])
|
|
198
198
|
assert_equal [1, 2], filtered
|
|
199
|
-
|
|
199
|
+
assert_nil errors
|
|
200
200
|
end
|
|
201
201
|
|
|
202
202
|
it "considers short arrays to be invalid" do
|
|
@@ -210,7 +210,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
210
210
|
f = Mutations::ArrayFilter.new(:arr, :max_length => 20)
|
|
211
211
|
filtered, errors = f.filter([1])
|
|
212
212
|
assert_equal [1], filtered
|
|
213
|
-
|
|
213
|
+
assert_nil errors
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
it "sets a max_length for the array of 2 with 5 as invalid" do
|
|
@@ -229,7 +229,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
229
229
|
m = SimpleModel.new
|
|
230
230
|
filtered, errors = f.filter([m])
|
|
231
231
|
assert_equal [m], filtered
|
|
232
|
-
|
|
232
|
+
assert_nil errors
|
|
233
233
|
|
|
234
234
|
Object.send(:remove_const, 'SimpleModel')
|
|
235
235
|
class SimpleModel; end
|
|
@@ -251,7 +251,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
251
251
|
m = SimpleModel.new
|
|
252
252
|
filtered, errors = f.filter([m])
|
|
253
253
|
assert_equal [m], filtered
|
|
254
|
-
|
|
254
|
+
assert_nil errors
|
|
255
255
|
|
|
256
256
|
Object.send(:remove_const, 'SimpleModel')
|
|
257
257
|
class SimpleModel; end
|
|
@@ -259,7 +259,7 @@ describe "Mutations::ArrayFilter" do
|
|
|
259
259
|
m = SimpleModel.new
|
|
260
260
|
filtered, errors = f.filter([m])
|
|
261
261
|
assert_equal [m], filtered
|
|
262
|
-
|
|
262
|
+
assert_nil errors
|
|
263
263
|
|
|
264
264
|
Mutations.cache_constants = was
|
|
265
265
|
end
|
data/spec/boolean_filter_spec.rb
CHANGED
|
@@ -6,11 +6,11 @@ describe "Mutations::BooleanFilter" do
|
|
|
6
6
|
f = Mutations::BooleanFilter.new
|
|
7
7
|
filtered, errors = f.filter(true)
|
|
8
8
|
assert_equal true, filtered
|
|
9
|
-
|
|
9
|
+
assert_nil errors
|
|
10
10
|
|
|
11
11
|
filtered, errors = f.filter(false)
|
|
12
12
|
assert_equal false, filtered
|
|
13
|
-
|
|
13
|
+
assert_nil errors
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
it "considers non-booleans to be invalid" do
|
|
@@ -24,15 +24,15 @@ describe "Mutations::BooleanFilter" do
|
|
|
24
24
|
it "considers nil to be invalid" do
|
|
25
25
|
f = Mutations::BooleanFilter.new(:nils => false)
|
|
26
26
|
filtered, errors = f.filter(nil)
|
|
27
|
-
|
|
27
|
+
assert_nil filtered
|
|
28
28
|
assert_equal :nils, errors
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
it "considers nil to be valid" do
|
|
32
32
|
f = Mutations::BooleanFilter.new(:nils => true)
|
|
33
33
|
filtered, errors = f.filter(nil)
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
assert_nil filtered
|
|
35
|
+
assert_nil errors
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
it "considers certain strings to be valid booleans" do
|
|
@@ -40,7 +40,7 @@ describe "Mutations::BooleanFilter" do
|
|
|
40
40
|
[["true", true], ["TRUE", true], ["TrUe", true], ["1", true], ["false", false], ["FALSE", false], ["FalSe", false], ["0", false], [0, false], [1, true]].each do |(str, v)|
|
|
41
41
|
filtered, errors = f.filter(str)
|
|
42
42
|
assert_equal v, filtered
|
|
43
|
-
|
|
43
|
+
assert_nil errors
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
|
data/spec/command_spec.rb
CHANGED
|
@@ -9,7 +9,7 @@ describe "Command" do
|
|
|
9
9
|
|
|
10
10
|
assert outcome.success?
|
|
11
11
|
assert_equal({:name => "John", :email => "john@gmail.com", :amount => 5}.stringify_keys, outcome.result)
|
|
12
|
-
|
|
12
|
+
assert_nil outcome.errors
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
it "should filter out spurious params" do
|
|
@@ -17,7 +17,7 @@ describe "Command" do
|
|
|
17
17
|
|
|
18
18
|
assert outcome.success?
|
|
19
19
|
assert_equal({:name => "John", :email => "john@gmail.com", :amount => 5}.stringify_keys, outcome.result)
|
|
20
|
-
|
|
20
|
+
assert_nil outcome.errors
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "should discover errors in inputs" do
|
|
@@ -70,7 +70,7 @@ describe "Command" do
|
|
|
70
70
|
|
|
71
71
|
assert !outcome.success?
|
|
72
72
|
assert_equal :max_length, outcome.errors.symbolic[:name]
|
|
73
|
-
|
|
73
|
+
assert_nil outcome.errors.symbolic[:email]
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
it "should merge multiple hashes" do
|
data/spec/date_filter_spec.rb
CHANGED
|
@@ -6,7 +6,7 @@ describe "Mutations::DateFilter" do
|
|
|
6
6
|
f = Mutations::DateFilter.new
|
|
7
7
|
filtered, errors = f.filter(date)
|
|
8
8
|
assert_equal date, filtered
|
|
9
|
-
|
|
9
|
+
assert_nil errors
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
it "takes a DateTime object" do
|
|
@@ -14,7 +14,7 @@ describe "Mutations::DateFilter" do
|
|
|
14
14
|
f = Mutations::DateFilter.new
|
|
15
15
|
filtered, errors = f.filter(date)
|
|
16
16
|
assert_equal date, filtered
|
|
17
|
-
|
|
17
|
+
assert_nil errors
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
it "takes a Time object and converts it to a date" do
|
|
@@ -22,7 +22,7 @@ describe "Mutations::DateFilter" do
|
|
|
22
22
|
f = Mutations::DateFilter.new
|
|
23
23
|
filtered, errors = f.filter(time)
|
|
24
24
|
assert_equal time.to_date, filtered
|
|
25
|
-
|
|
25
|
+
assert_nil errors
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
it "checks if the given date is after a certain date" do
|
|
@@ -32,7 +32,7 @@ describe "Mutations::DateFilter" do
|
|
|
32
32
|
filtered, errors = f.filter(date)
|
|
33
33
|
|
|
34
34
|
assert_equal date, filtered
|
|
35
|
-
|
|
35
|
+
assert_nil errors
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
it "gives errors when the given date is before the after date" do
|
|
@@ -41,7 +41,7 @@ describe "Mutations::DateFilter" do
|
|
|
41
41
|
f = Mutations::DateFilter.new(:after => after_date)
|
|
42
42
|
filtered, errors = f.filter(date)
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
assert_nil filtered
|
|
45
45
|
assert_equal :after, errors
|
|
46
46
|
end
|
|
47
47
|
|
|
@@ -52,7 +52,7 @@ describe "Mutations::DateFilter" do
|
|
|
52
52
|
filtered, errors = f.filter(date)
|
|
53
53
|
|
|
54
54
|
assert_equal date, filtered
|
|
55
|
-
|
|
55
|
+
assert_nil errors
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
it "gives errors when the given date is after the before date" do
|
|
@@ -61,7 +61,7 @@ describe "Mutations::DateFilter" do
|
|
|
61
61
|
f = Mutations::DateFilter.new(:before => before_date)
|
|
62
62
|
filtered, errors = f.filter(date)
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
assert_nil filtered
|
|
65
65
|
assert_equal :before, errors
|
|
66
66
|
end
|
|
67
67
|
|
|
@@ -73,7 +73,7 @@ describe "Mutations::DateFilter" do
|
|
|
73
73
|
filtered, errors = f.filter(date)
|
|
74
74
|
|
|
75
75
|
assert_equal date, filtered
|
|
76
|
-
|
|
76
|
+
assert_nil errors
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
it "should be able to parse a D-M-Y string to a date" do
|
|
@@ -83,7 +83,7 @@ describe "Mutations::DateFilter" do
|
|
|
83
83
|
filtered, errors = f.filter(date_string)
|
|
84
84
|
|
|
85
85
|
assert_equal date, filtered
|
|
86
|
-
|
|
86
|
+
assert_nil errors
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
it "should be able to parse a Y-M-D string to a date" do
|
|
@@ -93,7 +93,7 @@ describe "Mutations::DateFilter" do
|
|
|
93
93
|
filtered, errors = f.filter(date_string)
|
|
94
94
|
|
|
95
95
|
assert_equal date, filtered
|
|
96
|
-
|
|
96
|
+
assert_nil errors
|
|
97
97
|
end
|
|
98
98
|
|
|
99
99
|
it "should be able to handle date formatting" do
|
|
@@ -103,21 +103,21 @@ describe "Mutations::DateFilter" do
|
|
|
103
103
|
filtered, errors = f.filter(date_string)
|
|
104
104
|
|
|
105
105
|
assert_equal date, filtered
|
|
106
|
-
|
|
106
|
+
assert_nil errors
|
|
107
107
|
|
|
108
108
|
date_string = "1, 2, 2000"
|
|
109
109
|
f = Mutations::DateFilter.new(:format => '%m, %d, %Y')
|
|
110
110
|
filtered, errors = f.filter(date_string)
|
|
111
111
|
|
|
112
112
|
assert_equal date, filtered
|
|
113
|
-
|
|
113
|
+
assert_nil errors
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
it "considers nil to be invalid" do
|
|
117
117
|
f = Mutations::DateFilter.new
|
|
118
118
|
filtered, errors = f.filter(nil)
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
assert_nil filtered
|
|
121
121
|
assert_equal :nils, errors
|
|
122
122
|
end
|
|
123
123
|
|
|
@@ -132,8 +132,8 @@ describe "Mutations::DateFilter" do
|
|
|
132
132
|
f = Mutations::DateFilter.new(:nils => true)
|
|
133
133
|
filtered, errors = f.filter(nil)
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
assert_nil filtered
|
|
136
|
+
assert_nil errors
|
|
137
137
|
end
|
|
138
138
|
|
|
139
139
|
it "considers empty strings to be nil if empty_is_nil option is used" do
|
|
@@ -145,8 +145,8 @@ describe "Mutations::DateFilter" do
|
|
|
145
145
|
it "returns empty strings as nil if empty_is_nil option is used" do
|
|
146
146
|
f = Mutations::DateFilter.new(:empty_is_nil => true, :nils => true)
|
|
147
147
|
filtered, errors = f.filter("")
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
assert_nil filtered
|
|
149
|
+
assert_nil errors
|
|
150
150
|
end
|
|
151
151
|
|
|
152
152
|
it "doesn't allow non-existing dates" do
|
|
@@ -154,7 +154,7 @@ describe "Mutations::DateFilter" do
|
|
|
154
154
|
f = Mutations::DateFilter.new
|
|
155
155
|
filtered, errors = f.filter(date_string)
|
|
156
156
|
|
|
157
|
-
|
|
157
|
+
assert_nil filtered
|
|
158
158
|
assert_equal :date, errors
|
|
159
159
|
end
|
|
160
160
|
end
|
data/spec/duck_filter_spec.rb
CHANGED
|
@@ -6,11 +6,11 @@ describe "Mutations::DuckFilter" do
|
|
|
6
6
|
f = Mutations::DuckFilter.new(:methods => [:length])
|
|
7
7
|
filtered, errors = f.filter("test")
|
|
8
8
|
assert_equal "test", filtered
|
|
9
|
-
|
|
9
|
+
assert_nil errors
|
|
10
10
|
|
|
11
11
|
filtered, errors = f.filter([1, 2])
|
|
12
12
|
assert_equal [1, 2], filtered
|
|
13
|
-
|
|
13
|
+
assert_nil errors
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
it "doesn't allow objects that respond to a single specified method" do
|
|
@@ -27,15 +27,15 @@ describe "Mutations::DuckFilter" do
|
|
|
27
27
|
it "considers nil to be invalid" do
|
|
28
28
|
f = Mutations::DuckFilter.new(:nils => false)
|
|
29
29
|
filtered, errors = f.filter(nil)
|
|
30
|
-
|
|
30
|
+
assert_nil filtered
|
|
31
31
|
assert_equal :nils, errors
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
it "considers nil to be valid" do
|
|
35
35
|
f = Mutations::DuckFilter.new(:nils => true)
|
|
36
36
|
filtered, errors = f.filter(nil)
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
assert_nil filtered
|
|
38
|
+
assert_nil errors
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
it "Allows anything if no methods are specified" do
|
|
@@ -43,7 +43,7 @@ describe "Mutations::DuckFilter" do
|
|
|
43
43
|
[true, "hi", 1, [1, 2, 3]].each do |v|
|
|
44
44
|
filtered, errors = f.filter(v)
|
|
45
45
|
assert_equal v, filtered
|
|
46
|
-
|
|
46
|
+
assert_nil errors
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
end
|
data/spec/file_filter_spec.rb
CHANGED
|
@@ -13,7 +13,7 @@ describe "Mutations::FileFilter" do
|
|
|
13
13
|
f = Mutations::FileFilter.new
|
|
14
14
|
filtered, errors = f.filter(file)
|
|
15
15
|
assert_equal file, filtered
|
|
16
|
-
|
|
16
|
+
assert_nil errors
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it "allows files - stringio class" do
|
|
@@ -21,7 +21,7 @@ describe "Mutations::FileFilter" do
|
|
|
21
21
|
f = Mutations::FileFilter.new
|
|
22
22
|
filtered, errors = f.filter(file)
|
|
23
23
|
assert_equal file, filtered
|
|
24
|
-
|
|
24
|
+
assert_nil errors
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
it "allows files - tempfile" do
|
|
@@ -29,7 +29,7 @@ describe "Mutations::FileFilter" do
|
|
|
29
29
|
f = Mutations::FileFilter.new
|
|
30
30
|
filtered, errors = f.filter(file)
|
|
31
31
|
assert_equal file, filtered
|
|
32
|
-
|
|
32
|
+
assert_nil errors
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
it "doesn't allow non-files" do
|
|
@@ -46,15 +46,15 @@ describe "Mutations::FileFilter" do
|
|
|
46
46
|
it "considers nil to be invalid" do
|
|
47
47
|
f = Mutations::FileFilter.new(:nils => false)
|
|
48
48
|
filtered, errors = f.filter(nil)
|
|
49
|
-
|
|
49
|
+
assert_nil filtered
|
|
50
50
|
assert_equal :nils, errors
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
it "considers nil to be valid" do
|
|
54
54
|
f = Mutations::FileFilter.new(:nils => true)
|
|
55
55
|
filtered, errors = f.filter(nil)
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
assert_nil filtered
|
|
57
|
+
assert_nil errors
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
it "considers empty strings to be empty" do
|
|
@@ -68,7 +68,7 @@ describe "Mutations::FileFilter" do
|
|
|
68
68
|
f = Mutations::FileFilter.new(:size => 4)
|
|
69
69
|
filtered, errors = f.filter(file)
|
|
70
70
|
assert_equal file, filtered
|
|
71
|
-
|
|
71
|
+
assert_nil errors
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
it "shouldn't allow big files" do
|
|
@@ -84,7 +84,7 @@ describe "Mutations::FileFilter" do
|
|
|
84
84
|
f = Mutations::FileFilter.new(:upload => true)
|
|
85
85
|
filtered, errors = f.filter(file)
|
|
86
86
|
assert_equal file, filtered
|
|
87
|
-
|
|
87
|
+
assert_nil errors
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
it "should require extra methods if uploaded file: deny" do
|
data/spec/float_filter_spec.rb
CHANGED
|
@@ -6,42 +6,42 @@ describe "Mutations::FloatFilter" do
|
|
|
6
6
|
f = Mutations::FloatFilter.new
|
|
7
7
|
filtered, errors = f.filter(3.1415926)
|
|
8
8
|
assert_equal 3.1415926, filtered
|
|
9
|
-
|
|
9
|
+
assert_nil errors
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
it "allows strings that start with a digit" do
|
|
13
13
|
f = Mutations::FloatFilter.new
|
|
14
14
|
filtered, errors = f.filter("3")
|
|
15
15
|
assert_equal 3.0, filtered
|
|
16
|
-
|
|
16
|
+
assert_nil errors
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it "allows string representation of float" do
|
|
20
20
|
f = Mutations::FloatFilter.new
|
|
21
21
|
filtered, errors = f.filter("3.14")
|
|
22
22
|
assert_equal 3.14, filtered
|
|
23
|
-
|
|
23
|
+
assert_nil errors
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
it "allows string representation of float without a number before dot" do
|
|
27
27
|
f = Mutations::FloatFilter.new
|
|
28
28
|
filtered, errors = f.filter(".14")
|
|
29
29
|
assert_equal 0.14, filtered
|
|
30
|
-
|
|
30
|
+
assert_nil errors
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
it "allows negative strings" do
|
|
34
34
|
f = Mutations::FloatFilter.new
|
|
35
35
|
filtered, errors = f.filter("-.14")
|
|
36
36
|
assert_equal(-0.14, filtered)
|
|
37
|
-
|
|
37
|
+
assert_nil errors
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
it "allows strings with a positive sign" do
|
|
41
41
|
f = Mutations::FloatFilter.new
|
|
42
42
|
filtered, errors = f.filter("+.14")
|
|
43
43
|
assert_equal 0.14, filtered
|
|
44
|
-
|
|
44
|
+
assert_nil errors
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
it "doesnt't allow other strings, nor does it allow random objects or symbols" do
|
|
@@ -55,15 +55,15 @@ describe "Mutations::FloatFilter" do
|
|
|
55
55
|
it "considers nil to be invalid" do
|
|
56
56
|
f = Mutations::FloatFilter.new(:nils => false)
|
|
57
57
|
filtered, errors = f.filter(nil)
|
|
58
|
-
|
|
58
|
+
assert_nil filtered
|
|
59
59
|
assert_equal :nils, errors
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
it "considers nil to be valid" do
|
|
63
63
|
f = Mutations::FloatFilter.new(:nils => true)
|
|
64
64
|
filtered, errors = f.filter(nil)
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
assert_nil filtered
|
|
66
|
+
assert_nil errors
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
it "considers empty strings to be empty" do
|
|
@@ -83,7 +83,7 @@ describe "Mutations::FloatFilter" do
|
|
|
83
83
|
f = Mutations::FloatFilter.new(:min => 10)
|
|
84
84
|
filtered, errors = f.filter(31)
|
|
85
85
|
assert_equal 31, filtered
|
|
86
|
-
|
|
86
|
+
assert_nil errors
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
it "considers high numbers invalid" do
|
|
@@ -97,7 +97,7 @@ describe "Mutations::FloatFilter" do
|
|
|
97
97
|
f = Mutations::FloatFilter.new(:max => 10)
|
|
98
98
|
filtered, errors = f.filter(3)
|
|
99
99
|
assert_equal 3, filtered
|
|
100
|
-
|
|
100
|
+
assert_nil errors
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
end
|