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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hash_filterer.rb +8 -6
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88b16e967ac547bb374efd926508512b2a70f190
4
- data.tar.gz: c92a94191b24be0c3d730d9f1914e99b9683116b
3
+ metadata.gz: b73f855d2613cf4befad0bc43006a558ee637e94
4
+ data.tar.gz: ba97c1e194debdc1d5cebf8d85c851cc5e6454ee
5
5
  SHA512:
6
- metadata.gz: d99e14984852beb06f6f3892106665f3fd35bd3dc89741f2add6c0bd8b0ab4a9519ed0f055d003683c25d84da9c518d5c727ae7e1f5fe7952b21d4bbf80a9d7e
7
- data.tar.gz: 180ef9fae1d5ed498e1c2b7d101a8493d53dc406ddd3acdee4b2851e90f9cd3c0f78c0b2a20c2b795158e04f7e0e64c986202a61c8ab15155e2ae772d0cb2191
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
- @preprocessor = preprocessor
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 unless @preprocessor
67
- val.public_send @preprocessor
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 unless @preprocessor
86
- fail InvalidPreprocessor unless self.class.allowed_preprocessors.include? @preprocessor
87
+ return if @preprocessors.all? { |prep| self.class.allowed_preprocessors.include? prep }
88
+ fail InvalidPreprocessor, @preprocessors
87
89
  end
88
90
  end
89
91
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hash_filterer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillaume Leseur