hash_filterer 0.1.2 → 0.1.3
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/lib/hash_filterer.rb +8 -6
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b73f855d2613cf4befad0bc43006a558ee637e94
|
|
4
|
+
data.tar.gz: ba97c1e194debdc1d5cebf8d85c851cc5e6454ee
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8dbb1271b44672c273ac92bbf6b479fe37d2b67440d360b51ac2922ae219a75a13f724221d2ca704fe05b120448ec28d428f925f6f45d305d9bb305e1291cd0e
|
|
7
|
+
data.tar.gz: 8459f4e75fc2b8a9e9e0938d040f2304eab716ff264ef4304d8255454aabcf88e96f1e2a02abf3eb8634b4592495047226f26671cdb39f1fa14f886b9ee9bb13
|
data/lib/hash_filterer.rb
CHANGED
|
@@ -15,7 +15,7 @@ class HashFilterer
|
|
|
15
15
|
|
|
16
16
|
def self.allowed_preprocessors
|
|
17
17
|
# TODO: Make this a config / maybe just remove
|
|
18
|
-
['downcase', 'upcase', 'nil?', 'blank?', 'to_s', 'to_f', 'to_i']
|
|
18
|
+
['downcase', 'upcase', 'nil?', 'blank?', 'to_s', 'to_f', 'to_i', 'strip']
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
# nil_ok should be true or false to specify the behavior when the value is nil
|
|
@@ -24,7 +24,7 @@ class HashFilterer
|
|
|
24
24
|
@operator = operator
|
|
25
25
|
@value = value
|
|
26
26
|
@nil_ok = nil_ok || false
|
|
27
|
-
@
|
|
27
|
+
@preprocessors = Array.wrap preprocessor
|
|
28
28
|
@at_least_one = at_least_one || false
|
|
29
29
|
check_operator!
|
|
30
30
|
check_preprocessor!
|
|
@@ -63,8 +63,10 @@ class HashFilterer
|
|
|
63
63
|
|
|
64
64
|
def preprocess_value(val)
|
|
65
65
|
return nil if val.nil?
|
|
66
|
-
return val
|
|
67
|
-
val
|
|
66
|
+
return val if @preprocessors.empty?
|
|
67
|
+
@preprocessors.inject(val) do |memo, prep|
|
|
68
|
+
memo.public_send prep
|
|
69
|
+
end
|
|
68
70
|
end
|
|
69
71
|
|
|
70
72
|
def extract_values(hash, current_keys)
|
|
@@ -82,8 +84,8 @@ class HashFilterer
|
|
|
82
84
|
end
|
|
83
85
|
|
|
84
86
|
def check_preprocessor!
|
|
85
|
-
return
|
|
86
|
-
fail InvalidPreprocessor
|
|
87
|
+
return if @preprocessors.all? { |prep| self.class.allowed_preprocessors.include? prep }
|
|
88
|
+
fail InvalidPreprocessor, @preprocessors
|
|
87
89
|
end
|
|
88
90
|
end
|
|
89
91
|
|