Skip to content

Commit 6615c6e

Browse files
committed
tighten up corner cases with option validation
1 parent 6da66e8 commit 6615c6e

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

lib/msf/core/opt_base.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ def initialize(in_name, attrs = [],
3636
self.required = required
3737
self.desc = attrs.is_a?(String) ? attrs : desc
3838
self.enums = [ *(enums) ].map { |x| x.to_s }
39-
if default.nil? && enums.length > 0
40-
self.default = enums[0]
41-
else
42-
self.default = default
43-
end
39+
self.default = default
4440
regex_temp = regex
4541
else
46-
self.required = attrs[0] || required
42+
if attrs[0].nil?
43+
self.required = required
44+
else
45+
self.required = attrs[0]
46+
end
4747
self.desc = attrs[1] || desc
4848
self.default = attrs[2] || default
4949
self.enums = attrs[3] || enums

lib/msf/core/opt_bool.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def type
1818

1919
def valid?(value, check_empty: true)
2020
return false if check_empty && empty_required_value?(value)
21+
return true if value.nil? && !required?
22+
2123
!(value.nil? ||
2224
value.to_s.empty? ||
2325
value.to_s.match(ANY_REGEX).nil?)

lib/msf/core/opt_enum.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def valid?(value = self.value, check_empty: true)
2121
return false if check_empty && empty_required_value?(value)
2222
return true if value.nil? && !required?
2323

24-
(value && enums.include?(value.to_s))
24+
!value.nil? && enums.include?(value.to_s)
2525
end
2626

2727
def normalize(value = self.value)

0 commit comments

Comments
 (0)